Drop external annotations support in build tools

External annotations will only be considered in the IDE for additional
inspections based on more precise types in Java libraries

Original commit: 13c54a2678
This commit is contained in:
Alexander Udalov
2015-04-24 19:22:37 +03:00
committed by Dmitry Jemerov
parent eec9d11a86
commit 1dcc772f45
5 changed files with 0 additions and 52 deletions
@@ -33,14 +33,6 @@ import org.jetbrains.jps.builders.logging.ProjectBuilderLogger;
import org.jetbrains.jps.incremental.CompileContext;
import org.jetbrains.jps.incremental.ModuleBuildTarget;
import org.jetbrains.jps.incremental.ProjectBuildException;
import org.jetbrains.jps.model.java.JpsAnnotationRootType;
import org.jetbrains.jps.model.java.JpsJavaSdkType;
import org.jetbrains.jps.model.library.JpsLibrary;
import org.jetbrains.jps.model.library.sdk.JpsSdk;
import org.jetbrains.jps.model.library.sdk.JpsSdkType;
import org.jetbrains.jps.model.module.JpsDependencyElement;
import org.jetbrains.jps.model.module.JpsModule;
import org.jetbrains.jps.model.module.JpsSdkDependency;
import org.jetbrains.kotlin.config.IncrementalCompilation;
import org.jetbrains.kotlin.modules.KotlinModuleXmlBuilder;
@@ -92,7 +84,6 @@ public class KotlinBuilderModuleScriptGenerator {
moduleSources,
findSourceRoots(context, target),
findClassPathRoots(target),
findAnnotationRoots(target),
(JavaModuleBuildTargetType) targetType,
// this excludes the output directories from the class path, to be removed for true incremental compilation
outputDirs
@@ -149,33 +140,6 @@ public class KotlinBuilderModuleScriptGenerator {
return result;
}
@NotNull
private static List<File> findAnnotationRoots(@NotNull ModuleBuildTarget target) {
LinkedHashSet<File> annotationRootFiles = new LinkedHashSet<File>();
JpsModule module = target.getModule();
JpsSdk sdk = module.getSdk(getSdkType(module));
if (sdk != null) {
annotationRootFiles.addAll(sdk.getParent().getFiles(JpsAnnotationRootType.INSTANCE));
}
for (JpsLibrary library : getAllDependencies(target).getLibraries()) {
annotationRootFiles.addAll(library.getFiles(JpsAnnotationRootType.INSTANCE));
}
// JDK is stored locally on user's machine, so its configuration, including external annotation paths
// is not available on TeamCity. When running on TeamCity, one has to provide extra path to JDK annotations
String extraAnnotationsPaths = System.getProperty("jps.kotlin.extra.annotation.paths");
if (extraAnnotationsPaths != null) {
String[] paths = extraAnnotationsPaths.split(";");
for (String path : paths) {
annotationRootFiles.add(new File(path));
}
}
return CollectionsKt.toList(annotationRootFiles);
}
@NotNull
private static JpsSdkType getSdkType(@NotNull JpsModule module) {
for (JpsDependencyElement dependency : module.getDependenciesList().getDependencies()) {
@@ -45,7 +45,6 @@ public class KotlinModuleXmlBuilder {
List<File> sourceFiles,
List<File> javaSourceRoots,
Collection<File> classpathRoots,
List<File> annotationRoots,
JavaModuleBuildTargetType targetType,
Set<File> directoriesToFilterOut
) {
@@ -71,7 +70,6 @@ public class KotlinModuleXmlBuilder {
processJavaSourceRoots(javaSourceRoots);
processClasspath(classpathRoots, directoriesToFilterOut);
processAnnotationRoots(annotationRoots);
closeTag(p, MODULE);
return this;
@@ -102,13 +100,6 @@ public class KotlinModuleXmlBuilder {
}
}
private void processAnnotationRoots(@NotNull List<File> files) {
p.println("<!-- External annotations -->");
for (File file : files) {
p.println("<", EXTERNAL_ANNOTATIONS, " ", PATH, "=\"", getEscapedPath(file), "\"/>");
}
}
private void processJavaSourceRoots(@NotNull List<File> files) {
p.println("<!-- Java source roots -->");
for (File file : files) {
@@ -22,7 +22,6 @@ import org.jetbrains.jps.builders.JpsBuildTestCase;
import org.jetbrains.jps.model.JpsDummyElement;
import org.jetbrains.jps.model.JpsModuleRootModificationUtil;
import org.jetbrains.jps.model.JpsProject;
import org.jetbrains.jps.model.java.JpsAnnotationRootType;
import org.jetbrains.jps.model.java.JpsJavaDependencyScope;
import org.jetbrains.jps.model.java.JpsJavaLibraryType;
import org.jetbrains.jps.model.java.JpsJavaSdkType;
@@ -73,7 +72,6 @@ public abstract class AbstractKotlinJpsBuildTestCase extends JpsBuildTestCase {
String versionString = System.getProperty("java.version");
JpsTypedLibrary<JpsSdk<JpsDummyElement>> jdk = myModel.getGlobal().addSdk(name, homePath, versionString, JpsJavaSdkType.INSTANCE);
jdk.addRoot(JpsPathUtil.pathToUrl(path), JpsOrderRootType.COMPILED);
jdk.addRoot(JpsPathUtil.pathToUrl(PathUtil.getKotlinPathsForDistDirectory().getJdkAnnotationsPath().getAbsolutePath()), JpsAnnotationRootType.INSTANCE);
return jdk.getProperties();
}
@@ -45,7 +45,6 @@ public class ClasspathOrderTest : TestCaseWithTmpdir() {
listOf(sourceDir),
listOf(sourceDir),
listOf(PathUtil.getKotlinPathsForDistDirectory().getRuntimePath()),
listOf(),
JavaModuleBuildTargetType.PRODUCTION,
setOf()
).asText().toString()
@@ -32,7 +32,6 @@ public class KotlinModuleXmlGeneratorTest extends TestCase {
Arrays.asList(new File("s1"), new File("s2")),
Collections.singletonList(new File("java")),
Arrays.asList(new File("cp1"), new File("cp2")),
Arrays.asList(new File("a1/f1"), new File("a2")),
JavaModuleBuildTargetType.PRODUCTION,
Collections.<File>emptySet()
).asText().toString();
@@ -46,7 +45,6 @@ public class KotlinModuleXmlGeneratorTest extends TestCase {
Arrays.asList(new File("s1"), new File("s2")),
Collections.<File>emptyList(),
Arrays.asList(new File("cp1"), new File("cp2")),
Arrays.asList(new File("a1/f1"), new File("a2")),
JavaModuleBuildTargetType.PRODUCTION,
Collections.singleton(new File("cp1"))
).asText().toString();
@@ -61,7 +59,6 @@ public class KotlinModuleXmlGeneratorTest extends TestCase {
Arrays.asList(new File("s1"), new File("s2")),
Collections.<File>emptyList(),
Arrays.asList(new File("cp1"), new File("cp2")),
Arrays.asList(new File("a1/f1"), new File("a2")),
JavaModuleBuildTargetType.PRODUCTION,
Collections.singleton(new File("cp1"))
);
@@ -71,7 +68,6 @@ public class KotlinModuleXmlGeneratorTest extends TestCase {
Arrays.asList(new File("s12"), new File("s22")),
Collections.<File>emptyList(),
Arrays.asList(new File("cp12"), new File("cp22")),
Arrays.asList(new File("a12/f12"), new File("a22")),
JavaModuleBuildTargetType.TEST,
Collections.singleton(new File("cp12"))
);