summaryrefslogtreecommitdiff
path: root/jps
diff options
context:
space:
mode:
Diffstat (limited to 'jps')
-rw-r--r--jps/jps-builders/src/org/jetbrains/jps/builders/impl/BuildRootIndexImpl.java3
-rw-r--r--jps/jps-builders/src/org/jetbrains/jps/incremental/artifacts/instructions/JarBasedArtifactRootDescriptor.java27
-rw-r--r--jps/jps-builders/testSrc/org/jetbrains/jps/incremental/artifacts/ArtifactBuilderTest.java12
-rw-r--r--jps/model-api/src/org/jetbrains/jps/model/java/JpsAnnotationRootType.java3
-rw-r--r--jps/model-api/src/org/jetbrains/jps/model/java/JpsJavaDependenciesEnumerator.java7
-rw-r--r--jps/model-api/src/org/jetbrains/jps/model/java/JpsJavaModuleExtension.java13
-rw-r--r--jps/model-impl/src/org/jetbrains/jps/model/java/impl/JpsJavaDependenciesEnumeratorImpl.java6
-rw-r--r--jps/model-impl/src/org/jetbrains/jps/model/java/impl/JpsJavaDependenciesRootsEnumeratorImpl.java12
-rw-r--r--jps/model-impl/src/org/jetbrains/jps/model/java/impl/JpsJavaModuleExtensionImpl.java2
-rw-r--r--jps/model-impl/testSrc/org/jetbrains/jps/model/JpsDependenciesEnumeratorTest.java118
10 files changed, 131 insertions, 72 deletions
diff --git a/jps/jps-builders/src/org/jetbrains/jps/builders/impl/BuildRootIndexImpl.java b/jps/jps-builders/src/org/jetbrains/jps/builders/impl/BuildRootIndexImpl.java
index 262f0e433def..078e1fbe331b 100644
--- a/jps/jps-builders/src/org/jetbrains/jps/builders/impl/BuildRootIndexImpl.java
+++ b/jps/jps-builders/src/org/jetbrains/jps/builders/impl/BuildRootIndexImpl.java
@@ -84,6 +84,9 @@ public class BuildRootIndexImpl implements BuildRootIndex {
for (BuildRootDescriptor descriptor : descriptors) {
registerDescriptor(descriptor);
}
+ if (descriptors instanceof ArrayList<?>) {
+ ((ArrayList)descriptors).trimToSize();
+ }
myRootsByTarget.put(target, descriptors);
}
diff --git a/jps/jps-builders/src/org/jetbrains/jps/incremental/artifacts/instructions/JarBasedArtifactRootDescriptor.java b/jps/jps-builders/src/org/jetbrains/jps/incremental/artifacts/instructions/JarBasedArtifactRootDescriptor.java
index 8485d28901c2..8c3f762238a0 100644
--- a/jps/jps-builders/src/org/jetbrains/jps/incremental/artifacts/instructions/JarBasedArtifactRootDescriptor.java
+++ b/jps/jps-builders/src/org/jetbrains/jps/incremental/artifacts/instructions/JarBasedArtifactRootDescriptor.java
@@ -50,27 +50,34 @@ public class JarBasedArtifactRootDescriptor extends ArtifactRootDescriptor {
}
public void processEntries(EntryProcessor processor) throws IOException {
+ if (!myRoot.isFile()) return;
+
String prefix = StringUtil.trimStart(myPathInJar, "/");
if (!StringUtil.endsWithChar(prefix, '/')) prefix += "/";
if (prefix.equals("/")) {
prefix = "";
}
- ZipFile zipFile = new ZipFile(myRoot);
try {
- final Enumeration<? extends ZipEntry> entries = zipFile.entries();
+ ZipFile zipFile = new ZipFile(myRoot);
+ try {
+ final Enumeration<? extends ZipEntry> entries = zipFile.entries();
- while (entries.hasMoreElements()) {
- ZipEntry entry = entries.nextElement();
- final String name = entry.getName();
- if (name.startsWith(prefix)) {
- String relativePath = name.substring(prefix.length());
- processor.process(entry.isDirectory() ? null : zipFile.getInputStream(entry), relativePath, entry);
+ while (entries.hasMoreElements()) {
+ ZipEntry entry = entries.nextElement();
+ final String name = entry.getName();
+ if (name.startsWith(prefix)) {
+ String relativePath = name.substring(prefix.length());
+ processor.process(entry.isDirectory() ? null : zipFile.getInputStream(entry), relativePath, entry);
+ }
}
}
+ finally {
+ zipFile.close();
+ }
}
- finally {
- zipFile.close();
+ catch (IOException e) {
+ throw new IOException("Error occurred during processing zip file " + myRoot + ": " + e.getMessage(), e);
}
}
diff --git a/jps/jps-builders/testSrc/org/jetbrains/jps/incremental/artifacts/ArtifactBuilderTest.java b/jps/jps-builders/testSrc/org/jetbrains/jps/incremental/artifacts/ArtifactBuilderTest.java
index 9179999c9000..10ea2438517c 100644
--- a/jps/jps-builders/testSrc/org/jetbrains/jps/incremental/artifacts/ArtifactBuilderTest.java
+++ b/jps/jps-builders/testSrc/org/jetbrains/jps/incremental/artifacts/ArtifactBuilderTest.java
@@ -405,6 +405,18 @@ public class ArtifactBuilderTest extends ArtifactBuilderTestCase {
assertEmptyOutput(a);
}
+ public void testExtractNonExistentJarFile() {
+ JpsArtifact a = addArtifact(root().extractedDir("this-file-does-not-exist.jar", "/"));
+ buildAll();
+ assertEmptyOutput(a);
+ }
+
+ public void testRepackNonExistentJarFile() {
+ JpsArtifact a = addArtifact(archive("a.jar").extractedDir("this-file-does-not-exist.jar", "/").fileCopy(createFile("a.txt")));
+ buildAll();
+ assertOutput(a, fs().archive("a.jar").file("a.txt"));
+ }
+
private static void createFileInArtifactOutput(JpsArtifact a, final String fileName) throws IOException {
assertTrue(new File(a.getOutputPath(), fileName).createNewFile());
}
diff --git a/jps/model-api/src/org/jetbrains/jps/model/java/JpsAnnotationRootType.java b/jps/model-api/src/org/jetbrains/jps/model/java/JpsAnnotationRootType.java
index 5253d7ccf28d..b62cc2cbf04a 100644
--- a/jps/model-api/src/org/jetbrains/jps/model/java/JpsAnnotationRootType.java
+++ b/jps/model-api/src/org/jetbrains/jps/model/java/JpsAnnotationRootType.java
@@ -22,4 +22,7 @@ import org.jetbrains.jps.model.library.JpsOrderRootType;
*/
public class JpsAnnotationRootType extends JpsOrderRootType {
public static final JpsAnnotationRootType INSTANCE = new JpsAnnotationRootType();
+
+ private JpsAnnotationRootType() {
+ }
}
diff --git a/jps/model-api/src/org/jetbrains/jps/model/java/JpsJavaDependenciesEnumerator.java b/jps/model-api/src/org/jetbrains/jps/model/java/JpsJavaDependenciesEnumerator.java
index 82cec24868b2..20d78bbd74e3 100644
--- a/jps/model-api/src/org/jetbrains/jps/model/java/JpsJavaDependenciesEnumerator.java
+++ b/jps/model-api/src/org/jetbrains/jps/model/java/JpsJavaDependenciesEnumerator.java
@@ -109,4 +109,11 @@ public interface JpsJavaDependenciesEnumerator extends JpsDependenciesEnumerator
*/
@NotNull
JpsJavaDependenciesRootsEnumerator sources();
+
+ /**
+ *
+ * @return enumerator for processing annotation roots of the dependencies
+ */
+ @NotNull
+ JpsJavaDependenciesRootsEnumerator annotations();
}
diff --git a/jps/model-api/src/org/jetbrains/jps/model/java/JpsJavaModuleExtension.java b/jps/model-api/src/org/jetbrains/jps/model/java/JpsJavaModuleExtension.java
index 725063f68ddb..94787454306e 100644
--- a/jps/model-api/src/org/jetbrains/jps/model/java/JpsJavaModuleExtension.java
+++ b/jps/model-api/src/org/jetbrains/jps/model/java/JpsJavaModuleExtension.java
@@ -15,6 +15,8 @@
*/
package org.jetbrains.jps.model.java;
+import org.jetbrains.annotations.NotNull;
+import org.jetbrains.annotations.Nullable;
import org.jetbrains.jps.model.JpsElement;
import org.jetbrains.jps.model.JpsUrlList;
@@ -22,21 +24,26 @@ import org.jetbrains.jps.model.JpsUrlList;
* @author nik
*/
public interface JpsJavaModuleExtension extends JpsElement {
+ @NotNull
JpsUrlList getJavadocRoots();
+ @NotNull
JpsUrlList getAnnotationRoots();
+ @Nullable
String getOutputUrl();
- void setOutputUrl(String outputUrl);
+ void setOutputUrl(@Nullable String outputUrl);
+ @Nullable
String getTestOutputUrl();
- void setTestOutputUrl(String testOutputUrl);
+ void setTestOutputUrl(@Nullable String testOutputUrl);
+ @Nullable
LanguageLevel getLanguageLevel();
- void setLanguageLevel(LanguageLevel languageLevel);
+ void setLanguageLevel(@Nullable LanguageLevel languageLevel);
boolean isInheritOutput();
diff --git a/jps/model-impl/src/org/jetbrains/jps/model/java/impl/JpsJavaDependenciesEnumeratorImpl.java b/jps/model-impl/src/org/jetbrains/jps/model/java/impl/JpsJavaDependenciesEnumeratorImpl.java
index c3ee73665f26..9f172a9881ff 100644
--- a/jps/model-impl/src/org/jetbrains/jps/model/java/impl/JpsJavaDependenciesEnumeratorImpl.java
+++ b/jps/model-impl/src/org/jetbrains/jps/model/java/impl/JpsJavaDependenciesEnumeratorImpl.java
@@ -103,6 +103,12 @@ public class JpsJavaDependenciesEnumeratorImpl extends JpsDependenciesEnumerator
return new JpsJavaDependenciesRootsEnumeratorImpl(this, JpsOrderRootType.SOURCES);
}
+ @NotNull
+ @Override
+ public JpsJavaDependenciesRootsEnumerator annotations() {
+ return new JpsJavaDependenciesRootsEnumeratorImpl(this, JpsAnnotationRootType.INSTANCE);
+ }
+
@Override
protected JpsJavaDependenciesEnumeratorImpl self() {
return this;
diff --git a/jps/model-impl/src/org/jetbrains/jps/model/java/impl/JpsJavaDependenciesRootsEnumeratorImpl.java b/jps/model-impl/src/org/jetbrains/jps/model/java/impl/JpsJavaDependenciesRootsEnumeratorImpl.java
index 30b93e7856ad..b87a5cfa7730 100644
--- a/jps/model-impl/src/org/jetbrains/jps/model/java/impl/JpsJavaDependenciesRootsEnumeratorImpl.java
+++ b/jps/model-impl/src/org/jetbrains/jps/model/java/impl/JpsJavaDependenciesRootsEnumeratorImpl.java
@@ -16,9 +16,7 @@
package org.jetbrains.jps.model.java.impl;
import com.intellij.util.Consumer;
-import org.jetbrains.jps.model.java.JavaSourceRootType;
-import org.jetbrains.jps.model.java.JpsJavaDependenciesRootsEnumerator;
-import org.jetbrains.jps.model.java.JpsJavaExtensionService;
+import org.jetbrains.jps.model.java.*;
import org.jetbrains.jps.model.library.JpsOrderRootType;
import org.jetbrains.jps.model.module.*;
import org.jetbrains.jps.model.module.impl.JpsDependenciesRootsEnumeratorBase;
@@ -83,6 +81,14 @@ public class JpsJavaDependenciesRootsEnumeratorImpl extends JpsDependenciesRoots
}
}
}
+ else if (myRootType == JpsAnnotationRootType.INSTANCE) {
+ JpsJavaModuleExtension extension = JpsJavaExtensionService.getInstance().getModuleExtension(module);
+ if (extension != null) {
+ for (String url : extension.getAnnotationRoots().getUrls()) {
+ urlConsumer.consume(url);
+ }
+ }
+ }
return true;
}
}
diff --git a/jps/model-impl/src/org/jetbrains/jps/model/java/impl/JpsJavaModuleExtensionImpl.java b/jps/model-impl/src/org/jetbrains/jps/model/java/impl/JpsJavaModuleExtensionImpl.java
index 9852e91e60b2..dc5d716a6aac 100644
--- a/jps/model-impl/src/org/jetbrains/jps/model/java/impl/JpsJavaModuleExtensionImpl.java
+++ b/jps/model-impl/src/org/jetbrains/jps/model/java/impl/JpsJavaModuleExtensionImpl.java
@@ -53,11 +53,13 @@ public class JpsJavaModuleExtensionImpl extends JpsCompositeElementBase<JpsJavaM
return new JpsJavaModuleExtensionImpl(this);
}
+ @NotNull
@Override
public JpsUrlList getAnnotationRoots() {
return myContainer.getChild(ANNOTATIONS_ROOTS_ROLE);
}
+ @NotNull
@Override
public JpsUrlList getJavadocRoots() {
return myContainer.getChild(JAVADOC_ROOTS_ROLE);
diff --git a/jps/model-impl/testSrc/org/jetbrains/jps/model/JpsDependenciesEnumeratorTest.java b/jps/model-impl/testSrc/org/jetbrains/jps/model/JpsDependenciesEnumeratorTest.java
index 95f3a63a6035..a6397798400a 100644
--- a/jps/model-impl/testSrc/org/jetbrains/jps/model/JpsDependenciesEnumeratorTest.java
+++ b/jps/model-impl/testSrc/org/jetbrains/jps/model/JpsDependenciesEnumeratorTest.java
@@ -31,33 +31,35 @@ import java.io.File;
import java.io.IOException;
import java.util.Arrays;
+import static org.jetbrains.jps.model.java.JpsJavaExtensionService.dependencies;
+
/**
* @author nik
*/
public class JpsDependenciesEnumeratorTest extends JpsJavaModelTestCase {
- private JpsTypedLibrary<JpsSdk<JpsDummyElement>> myJdk;
private JpsModule myModule;
@Override
public void setUp() throws Exception {
super.setUp();
File home = PathManagerEx.findFileUnderCommunityHome("java/mockJDK-1.7");
- myJdk = myModel.getGlobal().addSdk("mockJDK-1.7", home.getAbsolutePath(), "1.7", JpsJavaSdkType.INSTANCE);
- myJdk.addRoot(getRtJar(), JpsOrderRootType.COMPILED);
+ JpsTypedLibrary<JpsSdk<JpsDummyElement>> jdk =
+ myModel.getGlobal().addSdk("mockJDK-1.7", home.getAbsolutePath(), "1.7", JpsJavaSdkType.INSTANCE);
+ jdk.addRoot(getRtJar(), JpsOrderRootType.COMPILED);
myModule = addModule();
- myModule.getSdkReferencesTable().setSdkReference(JpsJavaSdkType.INSTANCE, myJdk.getProperties().createReference());
+ myModule.getSdkReferencesTable().setSdkReference(JpsJavaSdkType.INSTANCE, jdk.getProperties().createReference());
myModule.getDependenciesList().addSdkDependency(JpsJavaSdkType.INSTANCE);
}
public void testLibrary() throws Exception {
JpsModuleRootModificationUtil.addDependency(myModule, createJDomLibrary());
- assertClassRoots(orderEntries(myModule), getRtJar(), getJDomJar());
- assertClassRoots(orderEntries(myModule).withoutSdk(), getJDomJar());
- assertClassRoots(orderEntries(myModule).withoutSdk().productionOnly().runtimeOnly(), getJDomJar());
- assertClassRoots(orderEntries(myModule).withoutLibraries(), getRtJar());
- assertSourceRoots(orderEntries(myModule), getJDomSources());
+ assertClassRoots(dependencies(myModule), getRtJar(), getJDomJar());
+ assertClassRoots(dependencies(myModule).withoutSdk(), getJDomJar());
+ assertClassRoots(dependencies(myModule).withoutSdk().productionOnly().runtimeOnly(), getJDomJar());
+ assertClassRoots(dependencies(myModule).withoutLibraries(), getRtJar());
+ assertSourceRoots(dependencies(myModule), getJDomSources());
}
private String getJDomSources() {
@@ -72,11 +74,11 @@ public class JpsDependenciesEnumeratorTest extends JpsJavaModelTestCase {
return getJarUrlFromLibDir("asm.jar");
}
- private String getJarUrlFromLibDir(final String relativePath) {
+ private static String getJarUrlFromLibDir(final String relativePath) {
return JpsPathUtil.getLibraryRootUrl(PathManager.findFileInLibDirectory(relativePath));
}
- private String getRtJar() {
+ private static String getRtJar() {
return JpsPathUtil.getLibraryRootUrl(PathManagerEx.findFileUnderCommunityHome("java/mockJDK-1.7/jre/lib/rt.jar"));
}
@@ -99,13 +101,13 @@ public class JpsDependenciesEnumeratorTest extends JpsJavaModelTestCase {
final String output = setModuleOutput(myModule, false);
final String testOutput = setModuleOutput(myModule, true);
- assertClassRoots(orderEntries(myModule).withoutSdk(), testOutput, output);
- assertClassRoots(orderEntries(myModule).withoutSdk().productionOnly(), output);
- assertSourceRoots(orderEntries(myModule), srcRoot, testRoot);
- assertSourceRoots(orderEntries(myModule).productionOnly(), srcRoot);
+ assertClassRoots(dependencies(myModule).withoutSdk(), testOutput, output);
+ assertClassRoots(dependencies(myModule).withoutSdk().productionOnly(), output);
+ assertSourceRoots(dependencies(myModule), srcRoot, testRoot);
+ assertSourceRoots(dependencies(myModule).productionOnly(), srcRoot);
- assertEnumeratorRoots(orderEntries(myModule).withoutSdk().classes().withoutSelfModuleOutput(), output);
- assertEnumeratorRoots(orderEntries(myModule).withoutSdk().productionOnly().classes().withoutSelfModuleOutput());
+ assertEnumeratorRoots(dependencies(myModule).withoutSdk().classes().withoutSelfModuleOutput(), output);
+ assertEnumeratorRoots(dependencies(myModule).withoutSdk().productionOnly().classes().withoutSelfModuleOutput());
}
public void testLibraryScope() throws Exception {
@@ -113,9 +115,9 @@ public class JpsDependenciesEnumeratorTest extends JpsJavaModelTestCase {
getJavaService().getOrCreateDependencyExtension(dependency).setScope(JpsJavaDependencyScope.RUNTIME);
JpsModuleRootModificationUtil.addDependency(myModule, createJDomLibrary(), JpsJavaDependencyScope.RUNTIME, false);
- assertClassRoots(orderEntries(myModule).withoutSdk(), getJDomJar());
- assertClassRoots(orderEntries(myModule).withoutSdk().exportedOnly());
- assertClassRoots(orderEntries(myModule).withoutSdk().compileOnly());
+ assertClassRoots(dependencies(myModule).withoutSdk(), getJDomJar());
+ assertClassRoots(dependencies(myModule).withoutSdk().exportedOnly());
+ assertClassRoots(dependencies(myModule).withoutSdk().compileOnly());
}
public void testModuleDependency() throws Exception {
@@ -132,27 +134,27 @@ public class JpsDependenciesEnumeratorTest extends JpsJavaModelTestCase {
final String output = setModuleOutput(myModule, false);
final String testOutput = setModuleOutput(myModule, true);
- assertClassRoots(orderEntries(myModule).withoutSdk(), testOutput, output, depTestOutput, depOutput);
- assertClassRoots(orderEntries(myModule).withoutSdk().recursively(), testOutput, output, depTestOutput, depOutput, getJDomJar());
- assertSourceRoots(orderEntries(myModule), srcRoot, testRoot, depSrcRoot, depTestRoot);
- assertSourceRoots(orderEntries(myModule).recursively(), srcRoot, testRoot, depSrcRoot, depTestRoot, getJDomSources());
+ assertClassRoots(dependencies(myModule).withoutSdk(), testOutput, output, depTestOutput, depOutput);
+ assertClassRoots(dependencies(myModule).withoutSdk().recursively(), testOutput, output, depTestOutput, depOutput, getJDomJar());
+ assertSourceRoots(dependencies(myModule), srcRoot, testRoot, depSrcRoot, depTestRoot);
+ assertSourceRoots(dependencies(myModule).recursively(), srcRoot, testRoot, depSrcRoot, depTestRoot, getJDomSources());
- assertClassRoots(orderEntries(myModule).withoutSdk().withoutModuleSourceEntries().recursively(), getJDomJar());
- assertSourceRoots(orderEntries(myModule).withoutSdk().withoutModuleSourceEntries().recursively(), getJDomSources());
- assertEnumeratorRoots(orderEntries(myModule).withoutSdk().withoutModuleSourceEntries().recursively().classes(), getJDomJar());
- assertEnumeratorRoots(orderEntries(myModule).withoutSdk().withoutModuleSourceEntries().recursively().sources(), getJDomSources());
+ assertClassRoots(dependencies(myModule).withoutSdk().withoutModuleSourceEntries().recursively(), getJDomJar());
+ assertSourceRoots(dependencies(myModule).withoutSdk().withoutModuleSourceEntries().recursively(), getJDomSources());
+ assertEnumeratorRoots(dependencies(myModule).withoutSdk().withoutModuleSourceEntries().recursively().classes(), getJDomJar());
+ assertEnumeratorRoots(dependencies(myModule).withoutSdk().withoutModuleSourceEntries().recursively().sources(), getJDomSources());
- assertEnumeratorRoots(orderEntries(myModule).withoutSdk().recursively().classes().withoutSelfModuleOutput(),
+ assertEnumeratorRoots(dependencies(myModule).withoutSdk().recursively().classes().withoutSelfModuleOutput(),
output, depTestOutput, depOutput, getJDomJar());
- assertEnumeratorRoots(orderEntries(myModule).productionOnly().withoutSdk().recursively().classes().withoutSelfModuleOutput(),
+ assertEnumeratorRoots(dependencies(myModule).productionOnly().withoutSdk().recursively().classes().withoutSelfModuleOutput(),
depOutput, getJDomJar());
- assertClassRoots(orderEntries(myModule).withoutSdk().withoutDepModules().withoutModuleSourceEntries().recursively(), getJDomJar());
+ assertClassRoots(dependencies(myModule).withoutSdk().withoutDepModules().withoutModuleSourceEntries().recursively(), getJDomJar());
assertEnumeratorRoots(
- orderEntries(myModule).productionOnly().withoutSdk().withoutDepModules().withoutModuleSourceEntries().recursively().classes(),
+ dependencies(myModule).productionOnly().withoutSdk().withoutDepModules().withoutModuleSourceEntries().recursively().classes(),
getJDomJar());
- assertClassRoots(orderEntries(myModule).withoutSdk().withoutDepModules().withoutModuleSourceEntries());
- assertEnumeratorRoots(orderEntries(myModule).productionOnly().withoutModuleSourceEntries().withoutSdk().withoutDepModules().classes());
+ assertClassRoots(dependencies(myModule).withoutSdk().withoutDepModules().withoutModuleSourceEntries());
+ assertEnumeratorRoots(dependencies(myModule).productionOnly().withoutModuleSourceEntries().withoutSdk().withoutDepModules().classes());
}
public void testModuleJpsJavaDependencyScope() throws Exception {
@@ -160,13 +162,13 @@ public class JpsDependenciesEnumeratorTest extends JpsJavaModelTestCase {
JpsModuleRootModificationUtil.addDependency(dep, createJDomLibrary(), JpsJavaDependencyScope.COMPILE, true);
JpsModuleRootModificationUtil.addDependency(myModule, dep, JpsJavaDependencyScope.TEST, true);
- assertClassRoots(orderEntries(myModule).withoutSdk());
- assertClassRoots(orderEntries(myModule).withoutSdk().recursively(), getJDomJar());
- assertClassRoots(orderEntries(myModule).withoutSdk().exportedOnly().recursively(), getJDomJar());
- assertClassRoots(orderEntries(myModule).withoutSdk().productionOnly().recursively());
+ assertClassRoots(dependencies(myModule).withoutSdk());
+ assertClassRoots(dependencies(myModule).withoutSdk().recursively(), getJDomJar());
+ assertClassRoots(dependencies(myModule).withoutSdk().exportedOnly().recursively(), getJDomJar());
+ assertClassRoots(dependencies(myModule).withoutSdk().productionOnly().recursively());
- assertClassRoots(orderEntries(myProject).withoutSdk(), getJDomJar());
- assertClassRoots(orderEntries(myProject).withoutSdk().productionOnly(), getJDomJar());
+ assertClassRoots(dependencies(myProject).withoutSdk(), getJDomJar());
+ assertClassRoots(dependencies(myProject).withoutSdk().productionOnly(), getJDomJar());
}
public void testNotExportedLibrary() throws Exception {
@@ -175,14 +177,26 @@ public class JpsDependenciesEnumeratorTest extends JpsJavaModelTestCase {
JpsModuleRootModificationUtil.addDependency(myModule, createAsmLibrary(), JpsJavaDependencyScope.COMPILE, false);
JpsModuleRootModificationUtil.addDependency(myModule, dep, JpsJavaDependencyScope.COMPILE, false);
- assertClassRoots(orderEntries(myModule).withoutSdk(), getAsmJar());
- assertClassRoots(orderEntries(myModule).withoutSdk().recursively(), getAsmJar(), getJDomJar());
- assertClassRoots(orderEntries(myModule).withoutSdk().recursivelyExportedOnly(), getAsmJar());
- assertClassRoots(orderEntries(myModule).withoutSdk().exportedOnly().recursively());
+ assertClassRoots(dependencies(myModule).withoutSdk(), getAsmJar());
+ assertClassRoots(dependencies(myModule).withoutSdk().recursively(), getAsmJar(), getJDomJar());
+ assertClassRoots(dependencies(myModule).withoutSdk().recursivelyExportedOnly(), getAsmJar());
+ assertClassRoots(dependencies(myModule).withoutSdk().exportedOnly().recursively());
+ }
+
+ public void testAnnotations() {
+ JpsLibrary library = addLibrary();
+ String libraryUrl = "temp:///library";
+ library.addRoot(libraryUrl, JpsAnnotationRootType.INSTANCE);
+ JpsModuleRootModificationUtil.addDependency(myModule, library);
+ assertEnumeratorRoots(dependencies(myModule).annotations(), libraryUrl);
+
+ String moduleUrl = "temp://module";
+ JpsJavaExtensionService.getInstance().getOrCreateModuleExtension(myModule).getAnnotationRoots().addUrl(moduleUrl);
+ assertEnumeratorRoots(dependencies(myModule).annotations(), moduleUrl, libraryUrl);
}
public void testJdkIsNotExported() throws Exception {
- assertClassRoots(orderEntries(myModule).exportedOnly());
+ assertClassRoots(dependencies(myModule).exportedOnly());
}
public void testProject() throws Exception {
@@ -193,8 +207,8 @@ public class JpsDependenciesEnumeratorTest extends JpsJavaModelTestCase {
final String output = setModuleOutput(myModule, false);
final String testOutput = setModuleOutput(myModule, true);
- assertClassRoots(orderEntries(myProject).withoutSdk(), testOutput, output, getJDomJar());
- assertSourceRoots(orderEntries(myProject).withoutSdk(), srcRoot, testRoot, getJDomSources());
+ assertClassRoots(dependencies(myProject).withoutSdk(), testOutput, output, getJDomJar());
+ assertSourceRoots(dependencies(myProject).withoutSdk(), srcRoot, testRoot, getJDomSources());
}
public void testModules() throws Exception {
@@ -229,7 +243,7 @@ public class JpsDependenciesEnumeratorTest extends JpsJavaModelTestCase {
}
}
- private String addSourceRoot(JpsModule module, boolean tests) {
+ private static String addSourceRoot(JpsModule module, boolean tests) {
try {
File file = FileUtil.createTempDirectory(module.getName(), tests ? "testSrc" : "src");
return module.addSourceRoot(JpsPathUtil.getLibraryRootUrl(file), tests ? JavaSourceRootType.TEST_SOURCE : JavaSourceRootType.SOURCE).getUrl();
@@ -239,14 +253,6 @@ public class JpsDependenciesEnumeratorTest extends JpsJavaModelTestCase {
}
}
- private JpsJavaDependenciesEnumerator orderEntries(JpsProject project) {
- return JpsJavaExtensionService.dependencies(project);
- }
-
- private static JpsJavaDependenciesEnumerator orderEntries(JpsModule module) {
- return JpsJavaExtensionService.dependencies(module);
- }
-
private static void assertClassRoots(final JpsJavaDependenciesEnumerator enumerator, String... urls) {
assertEnumeratorRoots(enumerator.classes(), urls);
}