提交 13c54a26 编写于 作者: A Alexander Udalov 提交者: Dmitry Jemerov

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
上级 f2efd30a
...@@ -23,19 +23,11 @@ import java.io.File.pathSeparator ...@@ -23,19 +23,11 @@ import java.io.File.pathSeparator
public class Kotlin2JvmTask : KotlinCompilerBaseTask() { public class Kotlin2JvmTask : KotlinCompilerBaseTask() {
override val compilerFqName = "org.jetbrains.kotlin.cli.jvm.K2JVMCompiler" override val compilerFqName = "org.jetbrains.kotlin.cli.jvm.K2JVMCompiler"
public var externalAnnotations: Path? = null
public var includeRuntime: Boolean = true public var includeRuntime: Boolean = true
public var moduleName: String? = null public var moduleName: String? = null
private var compileClasspath: Path? = null private var compileClasspath: Path? = null
public fun createExternalAnnotations(): Path {
if (externalAnnotations == null) {
externalAnnotations = Path(getProject())
}
return externalAnnotations!!.createPath()
}
public fun setClasspath(classpath: Path) { public fun setClasspath(classpath: Path) {
if (compileClasspath == null) { if (compileClasspath == null) {
compileClasspath = classpath compileClasspath = classpath
...@@ -65,11 +57,6 @@ public class Kotlin2JvmTask : KotlinCompilerBaseTask() { ...@@ -65,11 +57,6 @@ public class Kotlin2JvmTask : KotlinCompilerBaseTask() {
args.add(it.list().join(pathSeparator)) args.add(it.list().join(pathSeparator))
} }
externalAnnotations?.let {
args.add("-annotations")
args.add(it.list().join(pathSeparator))
}
if (moduleName == null) { if (moduleName == null) {
moduleName = defaultModuleName moduleName = defaultModuleName
......
...@@ -25,8 +25,6 @@ ...@@ -25,8 +25,6 @@
<property name="java.target" value="1.6"/> <property name="java.target" value="1.6"/>
<property name="external.annotations.path" value="${basedir}/annotations"/>
<property name="dependencies.dir" value="${basedir}/dependencies"/> <property name="dependencies.dir" value="${basedir}/dependencies"/>
<condition property="bootstrap.or.local.build" value="true"> <condition property="bootstrap.or.local.build" value="true">
...@@ -529,7 +527,7 @@ ...@@ -529,7 +527,7 @@
<javac2 destdir="${output}/classes/compiler" debug="true" debuglevel="lines,vars,source" includeAntRuntime="false" <javac2 destdir="${output}/classes/compiler" debug="true" debuglevel="lines,vars,source" includeAntRuntime="false"
source="${java.target}" target="${java.target}"> source="${java.target}" target="${java.target}">
<withKotlin externalannotations="${external.annotations.path}" modulename="kotlin-compiler"/> <withKotlin modulename="kotlin-compiler"/>
<skip pattern="kotlin/jvm/internal/.*"/> <skip pattern="kotlin/jvm/internal/.*"/>
<src refid="compilerSources.path"/> <src refid="compilerSources.path"/>
<classpath refid="classpath"/> <classpath refid="classpath"/>
...@@ -630,7 +628,7 @@ ...@@ -630,7 +628,7 @@
<cleandir dir="${output}/classes/ant"/> <cleandir dir="${output}/classes/ant"/>
<javac2 destdir="${output}/classes/ant" debug="true" debuglevel="lines,vars,source" includeAntRuntime="false" <javac2 destdir="${output}/classes/ant" debug="true" debuglevel="lines,vars,source" includeAntRuntime="false"
source="${java.target}" target="${java.target}"> source="${java.target}" target="${java.target}">
<withKotlin externalannotations="${external.annotations.path}" modulename="kotlin-ant-tools"/> <withKotlin modulename="kotlin-ant-tools"/>
<skip pattern="kotlin/jvm/internal/.*"/> <skip pattern="kotlin/jvm/internal/.*"/>
<src> <src>
<dirset dir="${basedir}/ant"> <dirset dir="${basedir}/ant">
...@@ -960,7 +958,7 @@ ...@@ -960,7 +958,7 @@
<javac2 destdir="${output}/classes/idea-analysis" debug="true" debuglevel="lines,vars,source" includeAntRuntime="false" <javac2 destdir="${output}/classes/idea-analysis" debug="true" debuglevel="lines,vars,source" includeAntRuntime="false"
source="${java.target}" target="${java.target}"> source="${java.target}" target="${java.target}">
<withKotlin externalannotations="${external.annotations.path}" modulename="kotlin-for-upsource"/> <withKotlin modulename="kotlin-for-upsource"/>
<skip pattern="kotlin/jvm/internal/.*"/> <skip pattern="kotlin/jvm/internal/.*"/>
<src> <src>
<dirset dir="${basedir}/idea/ide-common" includes="src"/> <dirset dir="${basedir}/idea/ide-common" includes="src"/>
......
...@@ -28,10 +28,6 @@ public class K2JVMCompilerArguments extends CommonCompilerArguments { ...@@ -28,10 +28,6 @@ public class K2JVMCompilerArguments extends CommonCompilerArguments {
@ValueDescription("<path>") @ValueDescription("<path>")
public String classpath; public String classpath;
@Argument(value = "annotations", description = "Paths to external annotations")
@ValueDescription("<path>")
public String annotations;
@Argument(value = "include-runtime", description = "Include Kotlin runtime in to resulting .jar") @Argument(value = "include-runtime", description = "Include Kotlin runtime in to resulting .jar")
public boolean includeRuntime; public boolean includeRuntime;
...@@ -41,9 +37,6 @@ public class K2JVMCompilerArguments extends CommonCompilerArguments { ...@@ -41,9 +37,6 @@ public class K2JVMCompilerArguments extends CommonCompilerArguments {
@Argument(value = "no-stdlib", description = "Don't include Kotlin runtime into classpath") @Argument(value = "no-stdlib", description = "Don't include Kotlin runtime into classpath")
public boolean noStdlib; public boolean noStdlib;
@Argument(value = "no-jdk-annotations", description = "Don't include JDK external annotations into classpath")
public boolean noJdkAnnotations;
@Argument(value = "module", description = "Path to the module file to compile") @Argument(value = "module", description = "Path to the module file to compile")
@ValueDescription("<path>") @ValueDescription("<path>")
public String module; public String module;
...@@ -51,7 +44,7 @@ public class K2JVMCompilerArguments extends CommonCompilerArguments { ...@@ -51,7 +44,7 @@ public class K2JVMCompilerArguments extends CommonCompilerArguments {
@Argument(value = "script", description = "Evaluate the script file") @Argument(value = "script", description = "Evaluate the script file")
public boolean script; public boolean script;
@Argument(value = "kotlin-home", description = "Path to Kotlin compiler home directory, used for annotations and runtime libraries discovery") @Argument(value = "kotlin-home", description = "Path to Kotlin compiler home directory, used for runtime libraries discovery")
@ValueDescription("<path>") @ValueDescription("<path>")
public String kotlinHome; public String kotlinHome;
......
...@@ -27,7 +27,6 @@ public class ModuleBuilder( ...@@ -27,7 +27,6 @@ public class ModuleBuilder(
private val sourceFiles = ArrayList<String>() private val sourceFiles = ArrayList<String>()
private val classpathRoots = ArrayList<String>() private val classpathRoots = ArrayList<String>()
private val javaSourceRoots = ArrayList<String>() private val javaSourceRoots = ArrayList<String>()
private val annotationsRoots = ArrayList<String>()
public fun addSourceFiles(pattern: String) { public fun addSourceFiles(pattern: String) {
sourceFiles.add(pattern) sourceFiles.add(pattern)
...@@ -37,10 +36,6 @@ public class ModuleBuilder( ...@@ -37,10 +36,6 @@ public class ModuleBuilder(
classpathRoots.add(name) classpathRoots.add(name)
} }
public fun addAnnotationsPathEntry(name: String) {
annotationsRoots.add(name)
}
public fun addJavaSourceRoot(name: String) { public fun addJavaSourceRoot(name: String) {
javaSourceRoots.add(name) javaSourceRoots.add(name)
} }
...@@ -49,7 +44,6 @@ public class ModuleBuilder( ...@@ -49,7 +44,6 @@ public class ModuleBuilder(
override fun getJavaSourceRoots(): List<String> = javaSourceRoots override fun getJavaSourceRoots(): List<String> = javaSourceRoots
override fun getSourceFiles(): List<String> = sourceFiles override fun getSourceFiles(): List<String> = sourceFiles
override fun getClasspathRoots(): List<String> = classpathRoots override fun getClasspathRoots(): List<String> = classpathRoots
override fun getAnnotationsRoots(): List<String> = annotationsRoots
override fun getModuleName(): String = name override fun getModuleName(): String = name
override fun getModuleType(): String = type override fun getModuleType(): String = type
} }
...@@ -49,7 +49,6 @@ public class ModuleXmlParser { ...@@ -49,7 +49,6 @@ public class ModuleXmlParser {
public static final String JAVA_SOURCE_ROOTS = "javaSourceRoots"; public static final String JAVA_SOURCE_ROOTS = "javaSourceRoots";
public static final String PATH = "path"; public static final String PATH = "path";
public static final String CLASSPATH = "classpath"; public static final String CLASSPATH = "classpath";
public static final String EXTERNAL_ANNOTATIONS = "externalAnnotations";
@NotNull @NotNull
public static ModuleScriptData parseModuleScript( public static ModuleScriptData parseModuleScript(
...@@ -58,8 +57,8 @@ public class ModuleXmlParser { ...@@ -58,8 +57,8 @@ public class ModuleXmlParser {
) { ) {
FileInputStream stream = null; FileInputStream stream = null;
try { try {
stream = new FileInputStream(xmlFile);
//noinspection IOResourceOpenedButNotSafelyClosed //noinspection IOResourceOpenedButNotSafelyClosed
stream = new FileInputStream(xmlFile);
return new ModuleXmlParser(messageCollector).parse(new BufferedInputStream(stream)); return new ModuleXmlParser(messageCollector).parse(new BufferedInputStream(stream));
} }
catch (FileNotFoundException e) { catch (FileNotFoundException e) {
...@@ -164,10 +163,6 @@ public class ModuleXmlParser { ...@@ -164,10 +163,6 @@ public class ModuleXmlParser {
String path = getAttribute(attributes, PATH, qName); String path = getAttribute(attributes, PATH, qName);
moduleBuilder.addClasspathEntry(path); moduleBuilder.addClasspathEntry(path);
} }
else if (EXTERNAL_ANNOTATIONS.equalsIgnoreCase(qName)) {
String path = getAttribute(attributes, PATH, qName);
moduleBuilder.addAnnotationsPathEntry(path);
}
else if (JAVA_SOURCE_ROOTS.equalsIgnoreCase(qName)) { else if (JAVA_SOURCE_ROOTS.equalsIgnoreCase(qName)) {
String path = getAttribute(attributes, PATH, qName); String path = getAttribute(attributes, PATH, qName);
moduleBuilder.addJavaSourceRoot(path); moduleBuilder.addJavaSourceRoot(path);
......
...@@ -190,10 +190,6 @@ public class KotlinToJVMBytecodeCompiler { ...@@ -190,10 +190,6 @@ public class KotlinToJVMBytecodeCompiler {
} }
for (Module module : chunk) { for (Module module : chunk) {
for (String annotationsRoot : module.getAnnotationsRoots()) {
configuration.add(JVMConfigurationKeys.ANNOTATIONS_PATH_KEY, new File(annotationsRoot));
}
configuration.add(JVMConfigurationKeys.MODULES, module); configuration.add(JVMConfigurationKeys.MODULES, module);
} }
......
...@@ -29,7 +29,8 @@ public class JVMConfigurationKeys { ...@@ -29,7 +29,8 @@ public class JVMConfigurationKeys {
private JVMConfigurationKeys() { private JVMConfigurationKeys() {
} }
public static final CompilerConfigurationKey<List<File>> ANNOTATIONS_PATH_KEY = CompilerConfigurationKey.create("annotations path"); public static final CompilerConfigurationKey<List<File>> ANNOTATIONS_PATH_KEY =
CompilerConfigurationKey.create("external annotations path");
public static final CompilerConfigurationKey<List<AnalyzerScriptParameter>> SCRIPT_PARAMETERS = public static final CompilerConfigurationKey<List<AnalyzerScriptParameter>> SCRIPT_PARAMETERS =
CompilerConfigurationKey.create("script"); CompilerConfigurationKey.create("script");
......
...@@ -2,14 +2,12 @@ Usage: kotlinc-jvm <options> <source files> ...@@ -2,14 +2,12 @@ Usage: kotlinc-jvm <options> <source files>
where possible options include: where possible options include:
-d <directory|jar> Destination for generated class files -d <directory|jar> Destination for generated class files
-classpath (-cp) <path> Paths where to find user class files -classpath (-cp) <path> Paths where to find user class files
-annotations <path> Paths to external annotations
-include-runtime Include Kotlin runtime in to resulting .jar -include-runtime Include Kotlin runtime in to resulting .jar
-no-jdk Don't include Java runtime into classpath -no-jdk Don't include Java runtime into classpath
-no-stdlib Don't include Kotlin runtime into classpath -no-stdlib Don't include Kotlin runtime into classpath
-no-jdk-annotations Don't include JDK external annotations into classpath
-module <path> Path to the module file to compile -module <path> Path to the module file to compile
-script Evaluate the script file -script Evaluate the script file
-kotlin-home <path> Path to Kotlin compiler home directory, used for annotations and runtime libraries discovery -kotlin-home <path> Path to Kotlin compiler home directory, used for runtime libraries discovery
-module-name Module name -module-name Module name
-nowarn Generate no warnings -nowarn Generate no warnings
-verbose Enable verbose logging output -verbose Enable verbose logging output
......
$TESTDATA_DIR$/simple.kt $TESTDATA_DIR$/simple.kt
-classpath -classpath
not/existing/path not/existing/path
-annotations
yet/another/not/existing/path
-d -d
$TEMP_DIR$ $TEMP_DIR$
warning: classpath entry points to a non-existent location: not/existing/path warning: classpath entry points to a non-existent location: not/existing/path
warning: annotations path entry points to a non-existent location: yet/another/not/existing/path
OK OK
...@@ -3,14 +3,12 @@ Usage: kotlinc-jvm <options> <source files> ...@@ -3,14 +3,12 @@ Usage: kotlinc-jvm <options> <source files>
where possible options include: where possible options include:
-d <directory|jar> Destination for generated class files -d <directory|jar> Destination for generated class files
-classpath (-cp) <path> Paths where to find user class files -classpath (-cp) <path> Paths where to find user class files
-annotations <path> Paths to external annotations
-include-runtime Include Kotlin runtime in to resulting .jar -include-runtime Include Kotlin runtime in to resulting .jar
-no-jdk Don't include Java runtime into classpath -no-jdk Don't include Java runtime into classpath
-no-stdlib Don't include Kotlin runtime into classpath -no-stdlib Don't include Kotlin runtime into classpath
-no-jdk-annotations Don't include JDK external annotations into classpath
-module <path> Path to the module file to compile -module <path> Path to the module file to compile
-script Evaluate the script file -script Evaluate the script file
-kotlin-home <path> Path to Kotlin compiler home directory, used for annotations and runtime libraries discovery -kotlin-home <path> Path to Kotlin compiler home directory, used for runtime libraries discovery
-module-name Module name -module-name Module name
-nowarn Generate no warnings -nowarn Generate no warnings
-verbose Enable verbose logging output -verbose Enable verbose logging output
......
...@@ -50,7 +50,6 @@ fun test6() : Boolean { ...@@ -50,7 +50,6 @@ fun test6() : Boolean {
return true return true
} }
// ArrayList without jdk-annotations cannot be used in these tests
class MyArrayList<T>() { class MyArrayList<T>() {
private var value17: T? = null private var value17: T? = null
private var value39: T? = null private var value39: T? = null
......
// !CHECK_TYPE
package kotlin1
import java.util.*
fun main(args : Array<String>) {
val al : ArrayList<Int> = ArrayList<Int>()
val al1 = ArrayList<Int>(1)
// for (x in al1) {
//
// }
val <!UNUSED_VARIABLE!>al2<!> = ArrayList<Int>(ArrayList<Int>())
checkSubtype<RandomAccess>(al)
checkSubtype<Unit>(al.clear())
checkSubtype<Boolean>(al.add(1))
checkSubtype<Unit>(al.add(0, 1))
checkSubtype<Boolean>(al.addAll(al1))
checkSubtype<Boolean>(al.addAll(0, al1))
checkSubtype<Int>(al.get(0))
val m = HashMap<String, Int>()
m.put("", 1)
test(al, m)
}
fun test(a : List<Int>, m : Map<String, Int>) {
System.out.println(
a.get(0) + 1
)
HashMap<Int, Int>().get(0)
if (m.get("") != null)
System.out.println(m.get("")!!.plus(1))
}
package
package kotlin1 {
public fun main(/*0*/ args: kotlin.Array<kotlin.String>): kotlin.Unit
public fun test(/*0*/ a: kotlin.List<kotlin.Int>, /*1*/ m: kotlin.Map<kotlin.String, kotlin.Int>): kotlin.Unit
}
// !CHECK_TYPE
package kotlin1
import java.util.*
fun main(args : Array<String>) {
val al : ArrayList<Int> = ArrayList<Int>()
checkSubtype<Any>(al.clone()) // A type mismatch on this line means that jdk-annotations were not loaded
}
package
package kotlin1 {
public fun main(/*0*/ args: kotlin.Array<kotlin.String>): kotlin.Unit
}
// !CHECK_TYPE
// !DIAGNOSTICS: -UNUSED_PARAMETER
package kotlin1
import java.util.*
public inline fun <reified T> Array(n: Int, block: (Int) -> T): Array<T> = null!!
fun main(args : Array<String>) {
val al : ArrayList<Int> = ArrayList<Int>()
// A type mismatch on this line means that jdk-annotations were not loaded
checkSubtype<Array<Int>>(al.toArray(Array<Int>(3, {1})))
}
package
package kotlin1 {
@kotlin.inline() public fun </*0*/ reified T> Array(/*0*/ n: kotlin.Int, /*1*/ block: (kotlin.Int) -> T): kotlin.Array<T>
public fun main(/*0*/ args: kotlin.Array<kotlin.String>): kotlin.Unit
}
// !CHECK_TYPE
import java.sql.DriverManager
fun getConnection(url: String?) {
DriverManager.getConnection(url)
checkSubtype<java.sql.Connection>(DriverManager.getConnection(url!!))
}
fun getConnection(url: String?, props: java.util.Properties?) {
DriverManager.getConnection(url, props)
checkSubtype<java.sql.Connection>(DriverManager.getConnection(url!!, props))
}
fun getConnection(url: String?, user: String?, password: String?) {
DriverManager.getConnection(url, user!!, password!!)
DriverManager.getConnection(url!!, user, password<!UNNECESSARY_NOT_NULL_ASSERTION!>!!<!>)
DriverManager.getConnection(url<!UNNECESSARY_NOT_NULL_ASSERTION!>!!<!>, user<!UNNECESSARY_NOT_NULL_ASSERTION!>!!<!>, password)
checkSubtype<java.sql.Connection>(DriverManager.getConnection(url<!UNNECESSARY_NOT_NULL_ASSERTION!>!!<!>, user<!UNNECESSARY_NOT_NULL_ASSERTION!>!!<!>, password<!UNNECESSARY_NOT_NULL_ASSERTION!>!!<!>))
}
fun getDriver(url: String?) {
DriverManager.getDriver(url)
checkSubtype<java.sql.Driver>(DriverManager.getDriver(url!!))
}
fun registerDriver(driver: java.sql.Driver?) {
DriverManager.registerDriver(driver)
DriverManager.registerDriver(driver!!)
}
fun getDrivers() {
checkSubtype<java.util.Enumeration<java.sql.Driver>>(DriverManager.getDrivers())
}
\ No newline at end of file
package
public fun getConnection(/*0*/ url: kotlin.String?): kotlin.Unit
public fun getConnection(/*0*/ url: kotlin.String?, /*1*/ props: java.util.Properties?): kotlin.Unit
public fun getConnection(/*0*/ url: kotlin.String?, /*1*/ user: kotlin.String?, /*2*/ password: kotlin.String?): kotlin.Unit
public fun getDriver(/*0*/ url: kotlin.String?): kotlin.Unit
public fun getDrivers(): kotlin.Unit
public fun registerDriver(/*0*/ driver: java.sql.Driver?): kotlin.Unit
// !CHECK_TYPE
fun getMetaData(rs: java.sql.ResultSet) {
checkSubtype<java.sql.ResultSetMetaData>(rs.getMetaData())
}
\ No newline at end of file
package
public fun getMetaData(/*0*/ rs: java.sql.ResultSet): kotlin.Unit
// !CHECK_TYPE
fun executeQuery(statement: java.sql.Statement, cmd: String?) {
statement.executeQuery(cmd)
checkSubtype<java.sql.ResultSet>(statement.executeQuery(cmd!!))
}
fun executeQuery(statement: java.sql.PreparedStatement) {
checkSubtype<java.sql.ResultSet>(statement.executeQuery())
}
fun executeUpdate(statement: java.sql.Statement, cmd: String?) {
statement.executeUpdate(cmd)
statement.executeUpdate(cmd!!)
}
package
public fun executeQuery(/*0*/ statement: java.sql.PreparedStatement): kotlin.Unit
public fun executeQuery(/*0*/ statement: java.sql.Statement, /*1*/ cmd: kotlin.String?): kotlin.Unit
public fun executeUpdate(/*0*/ statement: java.sql.Statement, /*1*/ cmd: kotlin.String?): kotlin.Unit
OUT:
Buildfile: [TestData]/build.xml
build:
[mkdir] Created dir: [Temp]/classes
[javac] Compiling 2 source files to [Temp]/classes
[javac] Compiling [[TestData]/root1] => [[Temp]/classes]
[javac] Running javac...
[jar] Building jar: [Temp]/hello.jar
[java] Hello, a!
[java] Java Hello
BUILD SUCCESSFUL
Total time: [time]
Return code: 0
<project name="Ant Task Test" default="build">
<taskdef resource="org/jetbrains/kotlin/ant/antlib.xml" classpath="${kotlin.lib}/kotlin-ant.jar"/>
<target name="build">
<delete dir="${temp}/classes" failonerror="false"/>
<mkdir dir="${temp}/classes"/>
<javac destdir="${temp}/classes" includeAntRuntime="false" srcdir="${test.data}/root1">
<withKotlin externalannotations="${test.data}/root1/b/">
<externalannotations path="${test.data}/root1/a/"/>
</withKotlin>
</javac>
<jar destfile="${temp}/hello.jar">
<fileset dir="${temp}/classes"/>
</jar>
<java classname="hello.HelloPackage" fork="true">
<classpath>
<pathelement location="${temp}/hello.jar"/>
<pathelement location="${kotlin.runtime.jar}"/>
</classpath>
</java>
</target>
</project>
<root>
<item name='j.Java java.lang.String f()'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
</root>
<root>
<item name='j.Java java.lang.String f2()'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
</root>
package hello
fun main(args : Array<String>) {
for (s in arrayListOf("a"))
println("Hello, $s!")
val java: String = j.Java().f()
val hello: String = j.Java().f2()
println("$java $hello")
}
package j;
import org.jetbrains.annotations.NotNull;
import java.lang.String;
import java.lang.System;
public class Java {
public String f() {
return "Java";
}
public String f2() {
return "Hello";
}
public static void main(String[] args) {
hello.HelloPackage.main(new String[] {});
}
}
\ No newline at end of file
...@@ -3,4 +3,3 @@ name ...@@ -3,4 +3,3 @@ name
outputDir=out outputDir=out
sources=[foo] sources=[foo]
classpath=[bar] classpath=[bar]
annotations=[baz]
...@@ -2,6 +2,5 @@ ...@@ -2,6 +2,5 @@
<module name="name" outputDir="out" type="java-production"> <module name="name" outputDir="out" type="java-production">
<sources path="foo"/> <sources path="foo"/>
<classpath path="bar"/> <classpath path="bar"/>
<externalAnnotations path="baz"/>
</module> </module>
</modules> </modules>
\ No newline at end of file
...@@ -3,4 +3,3 @@ name ...@@ -3,4 +3,3 @@ name
outputDir=out outputDir=out
sources=[foo, foo1, foo2] sources=[foo, foo1, foo2]
classpath=[bar1, bar2] classpath=[bar1, bar2]
annotations=[baz, baz1, baz2]
...@@ -9,8 +9,5 @@ ...@@ -9,8 +9,5 @@
<classpath path="bar1"/> <classpath path="bar1"/>
<!-- sdfgadfg --> <!-- sdfgadfg -->
<classpath path="bar2"/> <classpath path="bar2"/>
<externalAnnotations path="baz"/>
<externalAnnotations path="baz1"/>
<externalAnnotations path="baz2"/>
</module> </module>
</modules> </modules>
\ No newline at end of file
...@@ -3,4 +3,3 @@ name ...@@ -3,4 +3,3 @@ name
outputDir=out outputDir=out
sources=[] sources=[]
classpath=[] classpath=[]
annotations=[]
...@@ -3,4 +3,3 @@ name ...@@ -3,4 +3,3 @@ name
outputDir=out outputDir=out
sources=[foo, foo1, foo2] sources=[foo, foo1, foo2]
classpath=[bar, bar1, bar2] classpath=[bar, bar1, bar2]
annotations=[baz, baz1, baz2]
...@@ -6,8 +6,5 @@ ...@@ -6,8 +6,5 @@
<classpath path="bar"/> <classpath path="bar"/>
<classpath path="bar1"/> <classpath path="bar1"/>
<classpath path="bar2"/> <classpath path="bar2"/>
<externalAnnotations path="baz"/>
<externalAnnotations path="baz1"/>
<externalAnnotations path="baz2"/>
</module> </module>
</modules> </modules>
\ No newline at end of file
...@@ -3,4 +3,3 @@ name ...@@ -3,4 +3,3 @@ name
outputDir=out outputDir=out
sources=[foo] sources=[foo]
classpath=[] classpath=[]
annotations=[]
...@@ -3,10 +3,8 @@ name ...@@ -3,10 +3,8 @@ name
outputDir=out outputDir=out
sources=[foo, foo1, foo2] sources=[foo, foo1, foo2]
classpath=[bar, bar1, bar2] classpath=[bar, bar1, bar2]
annotations=[baz, baz1, baz2]
name2 name2
type=java-production type=java-production
outputDir=out2 outputDir=out2
sources=[2foo, 2foo1, 2foo2] sources=[2foo, 2foo1, 2foo2]
classpath=[2bar, 2bar1, 2bar2] classpath=[2bar, 2bar1, 2bar2]
annotations=[2baz, 2baz1, 2baz2]
...@@ -6,9 +6,6 @@ ...@@ -6,9 +6,6 @@
<classpath path="bar"/> <classpath path="bar"/>
<classpath path="bar1"/> <classpath path="bar1"/>
<classpath path="bar2"/> <classpath path="bar2"/>
<externalAnnotations path="baz"/>
<externalAnnotations path="baz1"/>
<externalAnnotations path="baz2"/>
</module> </module>
<module name="name2" outputDir="out2" type="java-production"> <module name="name2" outputDir="out2" type="java-production">
<sources path="2foo"/> <sources path="2foo"/>
...@@ -17,8 +14,5 @@ ...@@ -17,8 +14,5 @@
<classpath path="2bar"/> <classpath path="2bar"/>
<classpath path="2bar1"/> <classpath path="2bar1"/>
<classpath path="2bar2"/> <classpath path="2bar2"/>
<externalAnnotations path="2baz"/>
<externalAnnotations path="2baz1"/>
<externalAnnotations path="2baz2"/>
</module> </module>
</modules> </modules>
\ No newline at end of file
...@@ -9112,60 +9112,6 @@ public class JetDiagnosticsTestGenerated extends AbstractJetDiagnosticsTest { ...@@ -9112,60 +9112,6 @@ public class JetDiagnosticsTestGenerated extends AbstractJetDiagnosticsTest {
} }
} }
@TestMetadata("compiler/testData/diagnostics/tests/jdk-annotations")
@TestDataPath("$PROJECT_ROOT")
@RunWith(JUnit3RunnerWithInners.class)
public static class Jdk_annotations extends AbstractJetDiagnosticsTest {
public void testAllFilesPresentInJdk_annotations() throws Exception {
JetTestUtils.assertAllTestsPresentByMetadata(this.getClass(), new File("compiler/testData/diagnostics/tests/jdk-annotations"), Pattern.compile("^(.+)\\.kt$"), true);
}
@TestMetadata("ArrayListAndMap.kt")
public void testArrayListAndMap() throws Exception {
String fileName = JetTestUtils.navigationMetadata("compiler/testData/diagnostics/tests/jdk-annotations/ArrayListAndMap.kt");
doTest(fileName);
}
@TestMetadata("ArrayListClone.kt")
public void testArrayListClone() throws Exception {
String fileName = JetTestUtils.navigationMetadata("compiler/testData/diagnostics/tests/jdk-annotations/ArrayListClone.kt");
doTest(fileName);
}
@TestMetadata("ArrayListToArray.kt")
public void testArrayListToArray() throws Exception {
String fileName = JetTestUtils.navigationMetadata("compiler/testData/diagnostics/tests/jdk-annotations/ArrayListToArray.kt");
doTest(fileName);
}
@TestMetadata("compiler/testData/diagnostics/tests/jdk-annotations/sql")
@TestDataPath("$PROJECT_ROOT")
@RunWith(JUnit3RunnerWithInners.class)
public static class Sql extends AbstractJetDiagnosticsTest {
public void testAllFilesPresentInSql() throws Exception {
JetTestUtils.assertAllTestsPresentByMetadata(this.getClass(), new File("compiler/testData/diagnostics/tests/jdk-annotations/sql"), Pattern.compile("^(.+)\\.kt$"), true);
}
@TestMetadata("DriverManager.kt")
public void testDriverManager() throws Exception {
String fileName = JetTestUtils.navigationMetadata("compiler/testData/diagnostics/tests/jdk-annotations/sql/DriverManager.kt");
doTest(fileName);
}
@TestMetadata("ResultSet.kt")
public void testResultSet() throws Exception {
String fileName = JetTestUtils.navigationMetadata("compiler/testData/diagnostics/tests/jdk-annotations/sql/ResultSet.kt");
doTest(fileName);
}
@TestMetadata("Statement.kt")
public void testStatement() throws Exception {
String fileName = JetTestUtils.navigationMetadata("compiler/testData/diagnostics/tests/jdk-annotations/sql/Statement.kt");
doTest(fileName);
}
}
}
@TestMetadata("compiler/testData/diagnostics/tests/labels") @TestMetadata("compiler/testData/diagnostics/tests/labels")
@TestDataPath("$PROJECT_ROOT") @TestDataPath("$PROJECT_ROOT")
@RunWith(JUnit3RunnerWithInners.class) @RunWith(JUnit3RunnerWithInners.class)
......
...@@ -35,15 +35,12 @@ public class CompileEnvironmentTest extends TestCase { ...@@ -35,15 +35,12 @@ public class CompileEnvironmentTest extends TestCase {
try { try {
File out = new File(tempDir, "out"); File out = new File(tempDir, "out");
File stdlib = ForTestCompileRuntime.runtimeJarForTests(); File stdlib = ForTestCompileRuntime.runtimeJarForTests();
File jdkAnnotations = JetTestUtils.getJdkAnnotationsJar();
ExitCode exitCode = new K2JVMCompiler().exec( ExitCode exitCode = new K2JVMCompiler().exec(
System.out, System.out,
JetTestUtils.getTestDataPathBase() + "/compiler/smoke/Smoke.kt", JetTestUtils.getTestDataPathBase() + "/compiler/smoke/Smoke.kt",
"-d", out.getAbsolutePath(), "-d", out.getAbsolutePath(),
"-no-stdlib", "-no-stdlib",
"-classpath", stdlib.getAbsolutePath(), "-classpath", stdlib.getAbsolutePath()
"-no-jdk-annotations",
"-annotations", jdkAnnotations.getAbsolutePath()
); );
Assert.assertEquals(ExitCode.OK, exitCode); Assert.assertEquals(ExitCode.OK, exitCode);
File[] files = out.listFiles(); File[] files = out.listFiles();
......
...@@ -65,7 +65,6 @@ public abstract class AbstractModuleXmlParserTest extends TestCase { ...@@ -65,7 +65,6 @@ public abstract class AbstractModuleXmlParserTest extends TestCase {
"\n\ttype=" + module.getModuleType() + "\n\ttype=" + module.getModuleType() +
"\n\toutputDir=" + module.getOutputDirectory() + "\n\toutputDir=" + module.getOutputDirectory() +
"\n\tsources=" + module.getSourceFiles() + "\n\tsources=" + module.getSourceFiles() +
"\n\tclasspath=" + module.getClasspathRoots() + "\n\tclasspath=" + module.getClasspathRoots();
"\n\tannotations=" + module.getAnnotationsRoots();
} }
} }
...@@ -8,8 +8,5 @@ ...@@ -8,8 +8,5 @@
<!-- Classpath --> <!-- Classpath -->
<classpath path="cp1"/> <classpath path="cp1"/>
<classpath path="cp2"/> <classpath path="cp2"/>
<!-- External annotations -->
<externalAnnotations path="a1/f1"/>
<externalAnnotations path="a2"/>
</module> </module>
</modules> </modules>
...@@ -7,8 +7,5 @@ ...@@ -7,8 +7,5 @@
<!-- Classpath --> <!-- Classpath -->
<classpath path="cp1"/> <classpath path="cp1"/>
<classpath path="cp2"/> <classpath path="cp2"/>
<!-- External annotations -->
<externalAnnotations path="a1/f1"/>
<externalAnnotations path="a2"/>
</module> </module>
</modules> </modules>
...@@ -7,9 +7,6 @@ ...@@ -7,9 +7,6 @@
<!-- Classpath --> <!-- Classpath -->
<classpath path="cp1"/> <classpath path="cp1"/>
<classpath path="cp2"/> <classpath path="cp2"/>
<!-- External annotations -->
<externalAnnotations path="a1/f1"/>
<externalAnnotations path="a2"/>
</module> </module>
<!-- Module script for tests --> <!-- Module script for tests -->
<module name="name2" type="java-test" outputDir="output2"> <module name="name2" type="java-test" outputDir="output2">
...@@ -19,8 +16,5 @@ ...@@ -19,8 +16,5 @@
<!-- Classpath --> <!-- Classpath -->
<classpath path="cp12"/> <classpath path="cp12"/>
<classpath path="cp22"/> <classpath path="cp22"/>
<!-- External annotations -->
<externalAnnotations path="a12/f12"/>
<externalAnnotations path="a22"/>
</module> </module>
</modules> </modules>
...@@ -33,14 +33,6 @@ import org.jetbrains.jps.builders.logging.ProjectBuilderLogger; ...@@ -33,14 +33,6 @@ import org.jetbrains.jps.builders.logging.ProjectBuilderLogger;
import org.jetbrains.jps.incremental.CompileContext; import org.jetbrains.jps.incremental.CompileContext;
import org.jetbrains.jps.incremental.ModuleBuildTarget; import org.jetbrains.jps.incremental.ModuleBuildTarget;
import org.jetbrains.jps.incremental.ProjectBuildException; 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.config.IncrementalCompilation;
import org.jetbrains.kotlin.modules.KotlinModuleXmlBuilder; import org.jetbrains.kotlin.modules.KotlinModuleXmlBuilder;
...@@ -92,7 +84,6 @@ public class KotlinBuilderModuleScriptGenerator { ...@@ -92,7 +84,6 @@ public class KotlinBuilderModuleScriptGenerator {
moduleSources, moduleSources,
findSourceRoots(context, target), findSourceRoots(context, target),
findClassPathRoots(target), findClassPathRoots(target),
findAnnotationRoots(target),
(JavaModuleBuildTargetType) targetType, (JavaModuleBuildTargetType) targetType,
// this excludes the output directories from the class path, to be removed for true incremental compilation // this excludes the output directories from the class path, to be removed for true incremental compilation
outputDirs outputDirs
...@@ -149,33 +140,6 @@ public class KotlinBuilderModuleScriptGenerator { ...@@ -149,33 +140,6 @@ public class KotlinBuilderModuleScriptGenerator {
return result; 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 @NotNull
private static JpsSdkType getSdkType(@NotNull JpsModule module) { private static JpsSdkType getSdkType(@NotNull JpsModule module) {
for (JpsDependencyElement dependency : module.getDependenciesList().getDependencies()) { for (JpsDependencyElement dependency : module.getDependenciesList().getDependencies()) {
......
...@@ -45,7 +45,6 @@ public class KotlinModuleXmlBuilder { ...@@ -45,7 +45,6 @@ public class KotlinModuleXmlBuilder {
List<File> sourceFiles, List<File> sourceFiles,
List<File> javaSourceRoots, List<File> javaSourceRoots,
Collection<File> classpathRoots, Collection<File> classpathRoots,
List<File> annotationRoots,
JavaModuleBuildTargetType targetType, JavaModuleBuildTargetType targetType,
Set<File> directoriesToFilterOut Set<File> directoriesToFilterOut
) { ) {
...@@ -71,7 +70,6 @@ public class KotlinModuleXmlBuilder { ...@@ -71,7 +70,6 @@ public class KotlinModuleXmlBuilder {
processJavaSourceRoots(javaSourceRoots); processJavaSourceRoots(javaSourceRoots);
processClasspath(classpathRoots, directoriesToFilterOut); processClasspath(classpathRoots, directoriesToFilterOut);
processAnnotationRoots(annotationRoots);
closeTag(p, MODULE); closeTag(p, MODULE);
return this; return this;
...@@ -102,13 +100,6 @@ public class KotlinModuleXmlBuilder { ...@@ -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) { private void processJavaSourceRoots(@NotNull List<File> files) {
p.println("<!-- Java source roots -->"); p.println("<!-- Java source roots -->");
for (File file : files) { for (File file : files) {
......
...@@ -22,7 +22,6 @@ import org.jetbrains.jps.builders.JpsBuildTestCase; ...@@ -22,7 +22,6 @@ import org.jetbrains.jps.builders.JpsBuildTestCase;
import org.jetbrains.jps.model.JpsDummyElement; import org.jetbrains.jps.model.JpsDummyElement;
import org.jetbrains.jps.model.JpsModuleRootModificationUtil; import org.jetbrains.jps.model.JpsModuleRootModificationUtil;
import org.jetbrains.jps.model.JpsProject; 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.JpsJavaDependencyScope;
import org.jetbrains.jps.model.java.JpsJavaLibraryType; import org.jetbrains.jps.model.java.JpsJavaLibraryType;
import org.jetbrains.jps.model.java.JpsJavaSdkType; import org.jetbrains.jps.model.java.JpsJavaSdkType;
...@@ -73,7 +72,6 @@ public abstract class AbstractKotlinJpsBuildTestCase extends JpsBuildTestCase { ...@@ -73,7 +72,6 @@ public abstract class AbstractKotlinJpsBuildTestCase extends JpsBuildTestCase {
String versionString = System.getProperty("java.version"); String versionString = System.getProperty("java.version");
JpsTypedLibrary<JpsSdk<JpsDummyElement>> jdk = myModel.getGlobal().addSdk(name, homePath, versionString, JpsJavaSdkType.INSTANCE); JpsTypedLibrary<JpsSdk<JpsDummyElement>> jdk = myModel.getGlobal().addSdk(name, homePath, versionString, JpsJavaSdkType.INSTANCE);
jdk.addRoot(JpsPathUtil.pathToUrl(path), JpsOrderRootType.COMPILED); jdk.addRoot(JpsPathUtil.pathToUrl(path), JpsOrderRootType.COMPILED);
jdk.addRoot(JpsPathUtil.pathToUrl(PathUtil.getKotlinPathsForDistDirectory().getJdkAnnotationsPath().getAbsolutePath()), JpsAnnotationRootType.INSTANCE);
return jdk.getProperties(); return jdk.getProperties();
} }
......
...@@ -45,7 +45,6 @@ public class ClasspathOrderTest : TestCaseWithTmpdir() { ...@@ -45,7 +45,6 @@ public class ClasspathOrderTest : TestCaseWithTmpdir() {
listOf(sourceDir), listOf(sourceDir),
listOf(sourceDir), listOf(sourceDir),
listOf(PathUtil.getKotlinPathsForDistDirectory().getRuntimePath()), listOf(PathUtil.getKotlinPathsForDistDirectory().getRuntimePath()),
listOf(),
JavaModuleBuildTargetType.PRODUCTION, JavaModuleBuildTargetType.PRODUCTION,
setOf() setOf()
).asText().toString() ).asText().toString()
......
...@@ -32,7 +32,6 @@ public class KotlinModuleXmlGeneratorTest extends TestCase { ...@@ -32,7 +32,6 @@ public class KotlinModuleXmlGeneratorTest extends TestCase {
Arrays.asList(new File("s1"), new File("s2")), Arrays.asList(new File("s1"), new File("s2")),
Collections.singletonList(new File("java")), Collections.singletonList(new File("java")),
Arrays.asList(new File("cp1"), new File("cp2")), Arrays.asList(new File("cp1"), new File("cp2")),
Arrays.asList(new File("a1/f1"), new File("a2")),
JavaModuleBuildTargetType.PRODUCTION, JavaModuleBuildTargetType.PRODUCTION,
Collections.<File>emptySet() Collections.<File>emptySet()
).asText().toString(); ).asText().toString();
...@@ -46,7 +45,6 @@ public class KotlinModuleXmlGeneratorTest extends TestCase { ...@@ -46,7 +45,6 @@ public class KotlinModuleXmlGeneratorTest extends TestCase {
Arrays.asList(new File("s1"), new File("s2")), Arrays.asList(new File("s1"), new File("s2")),
Collections.<File>emptyList(), Collections.<File>emptyList(),
Arrays.asList(new File("cp1"), new File("cp2")), Arrays.asList(new File("cp1"), new File("cp2")),
Arrays.asList(new File("a1/f1"), new File("a2")),
JavaModuleBuildTargetType.PRODUCTION, JavaModuleBuildTargetType.PRODUCTION,
Collections.singleton(new File("cp1")) Collections.singleton(new File("cp1"))
).asText().toString(); ).asText().toString();
...@@ -61,7 +59,6 @@ public class KotlinModuleXmlGeneratorTest extends TestCase { ...@@ -61,7 +59,6 @@ public class KotlinModuleXmlGeneratorTest extends TestCase {
Arrays.asList(new File("s1"), new File("s2")), Arrays.asList(new File("s1"), new File("s2")),
Collections.<File>emptyList(), Collections.<File>emptyList(),
Arrays.asList(new File("cp1"), new File("cp2")), Arrays.asList(new File("cp1"), new File("cp2")),
Arrays.asList(new File("a1/f1"), new File("a2")),
JavaModuleBuildTargetType.PRODUCTION, JavaModuleBuildTargetType.PRODUCTION,
Collections.singleton(new File("cp1")) Collections.singleton(new File("cp1"))
); );
...@@ -71,7 +68,6 @@ public class KotlinModuleXmlGeneratorTest extends TestCase { ...@@ -71,7 +68,6 @@ public class KotlinModuleXmlGeneratorTest extends TestCase {
Arrays.asList(new File("s12"), new File("s22")), Arrays.asList(new File("s12"), new File("s22")),
Collections.<File>emptyList(), Collections.<File>emptyList(),
Arrays.asList(new File("cp12"), new File("cp22")), Arrays.asList(new File("cp12"), new File("cp22")),
Arrays.asList(new File("a12/f12"), new File("a22")),
JavaModuleBuildTargetType.TEST, JavaModuleBuildTargetType.TEST,
Collections.singleton(new File("cp12")) Collections.singleton(new File("cp12"))
); );
......
...@@ -63,11 +63,6 @@ ...@@ -63,11 +63,6 @@
<artifactId>kotlin-maven-plugin</artifactId> <artifactId>kotlin-maven-plugin</artifactId>
<groupId>org.jetbrains.kotlin</groupId> <groupId>org.jetbrains.kotlin</groupId>
<version>${project.version}</version> <version>${project.version}</version>
<configuration>
<annotationPaths>
<annotationPath>${basedir}/kotlinAnnotation</annotationPath>
</annotationPaths>
</configuration>
<executions> <executions>
<execution> <execution>
......
...@@ -63,11 +63,6 @@ ...@@ -63,11 +63,6 @@
<artifactId>kotlin-maven-plugin</artifactId> <artifactId>kotlin-maven-plugin</artifactId>
<groupId>org.jetbrains.kotlin</groupId> <groupId>org.jetbrains.kotlin</groupId>
<version>${project.version}</version> <version>${project.version}</version>
<configuration>
<annotationPaths>
<annotationPath>${basedir}/kotlinAnnotation</annotationPath>
</annotationPaths>
</configuration>
<executions> <executions>
<execution> <execution>
......
...@@ -56,11 +56,6 @@ ...@@ -56,11 +56,6 @@
<artifactId>kotlin-maven-plugin</artifactId> <artifactId>kotlin-maven-plugin</artifactId>
<groupId>org.jetbrains.kotlin</groupId> <groupId>org.jetbrains.kotlin</groupId>
<version>${project.version}</version> <version>${project.version}</version>
<configuration>
<annotationPaths>
<annotationPath>${basedir}/kotlinAnnotation</annotationPath>
</annotationPaths>
</configuration>
<executions> <executions>
<execution> <execution>
......
<root>
<item name='com.android.build.gradle.BaseExtension org.gradle.api.NamedDomainObjectContainer&lt;com.android.build.gradle.api.AndroidSourceSet&gt; getSourceSets()'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
</root>
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8"?>
<root>
<item name="com.android.build.gradle.api.AndroidSourceSet org.gradle.api.file.SourceDirectorySet getAllJava()">
<annotation name="org.jetbrains.annotations.NotNull" />
</item>
<item name="com.android.build.gradle.api.AndroidSourceSet org.gradle.api.file.SourceDirectorySet getAllSource()">
<annotation name="org.jetbrains.annotations.NotNull" />
</item>
<item name="com.android.build.gradle.api.AndroidSourceSet org.gradle.api.file.SourceDirectorySet getJava()">
<annotation name="org.jetbrains.annotations.NotNull" />
</item>
<item name="com.android.build.gradle.api.ApkVariant com.android.builder.DefaultBuildType getBuildType()">
<annotation name="org.jetbrains.annotations.NotNull" />
</item>
<item name="com.android.build.gradle.api.ApkVariant java.util.List&lt;com.android.builder.DefaultProductFlavor&gt; getProductFlavors()">
<annotation name="org.jetbrains.annotations.NotNull" />
</item>
<item name="com.android.build.gradle.api.BaseVariant com.android.build.gradle.tasks.AidlCompile getAidlCompile()">
<annotation name="org.jetbrains.annotations.NotNull" />
</item>
<item name="com.android.build.gradle.api.BaseVariant com.android.build.gradle.tasks.ProcessAndroidResources getProcessResources()">
<annotation name="org.jetbrains.annotations.NotNull" />
</item>
<item name="com.android.build.gradle.api.BaseVariant com.android.build.gradle.tasks.RenderscriptCompile getRenderscriptCompile()">
<annotation name="org.jetbrains.annotations.NotNull" />
</item>
<item name="com.android.build.gradle.api.LibraryVariant com.android.builder.DefaultBuildType getBuildType()">
<annotation name="org.jetbrains.annotations.NotNull" />
</item>
</root>
<root>
<item name='com.google.common.base.Joiner com.google.common.base.Joiner on(java.lang.String)'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
</root>
\ No newline at end of file
<root>
<item name='com.google.common.io.Files java.io.File createTempDir()'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
</root>
\ No newline at end of file
<root>
<item name='org.apache.commons.io.FilenameUtils java.lang.String getExtension(java.lang.String)'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
</root>
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8"?>
<root>
<item name="org.gradle.api.NamedDomainObjectCollection T getByName(java.lang.String)">
<annotation name="org.jetbrains.annotations.NotNull" />
</item>
<item name="org.gradle.api.Plugin void apply(T)">
<annotation name="jet.runtime.typeinfo.KotlinSignature">
<val name="value" val="&quot;fun apply(p0 : T) : Unit&quot;" />
</annotation>
</item>
<item name='org.gradle.api.Project java.util.Map&lt;java.lang.String,?&gt; getProperties()'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name="org.gradle.api.Project org.gradle.api.file.ConfigurableFileCollection files(java.lang.Object...)">
<annotation name="org.jetbrains.annotations.NotNull" />
</item>
<item name="org.gradle.api.Project org.gradle.api.initialization.dsl.ScriptHandler getBuildscript()">
<annotation name="jet.runtime.typeinfo.KotlinSignature">
<val name="value" val="&quot;fun getBuildscript() : ScriptHandler&quot;" />
</annotation>
</item>
<item name="org.gradle.api.Project org.gradle.api.logging.Logger getLogger()">
<annotation name="org.jetbrains.annotations.NotNull" />
</item>
<item name="org.gradle.api.Project org.gradle.api.plugins.Convention getConvention()">
<annotation name="org.jetbrains.annotations.NotNull" />
</item>
<item name='org.gradle.api.Project org.gradle.api.plugins.ExtensionContainer getExtensions()'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name="org.gradle.api.Project org.gradle.api.plugins.PluginContainer getPlugins()">
<annotation name="org.jetbrains.annotations.NotNull" />
</item>
<item name='org.gradle.api.Project org.gradle.api.tasks.TaskContainer getTasks()'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
</root>
<root>
<item name='org.gradle.api.artifacts.Configuration org.gradle.api.artifacts.ResolvedConfiguration getResolvedConfiguration()'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='org.gradle.api.artifacts.ConfigurationContainer org.gradle.api.artifacts.Configuration detachedConfiguration(org.gradle.api.artifacts.Dependency...)'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
</root>
\ No newline at end of file
<root>
<item name='org.gradle.api.artifacts.dsl.DependencyHandler org.gradle.api.artifacts.Dependency create(java.lang.Object)'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
</root>
\ No newline at end of file
<root>
<item name='org.gradle.api.file.FileCollection org.gradle.api.file.FileCollection filter(org.gradle.api.specs.Spec&lt;? super java.io.File&gt;)'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='org.gradle.api.file.FileCollection org.gradle.api.file.FileCollection minus(org.gradle.api.file.FileCollection)'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='org.gradle.api.file.FileCollection org.gradle.api.file.FileCollection minus(org.gradle.api.file.FileCollection) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='org.gradle.api.file.FileCollection org.gradle.api.file.FileCollection plus(org.gradle.api.file.FileCollection)'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='org.gradle.api.file.FileCollection org.gradle.api.file.FileCollection plus(org.gradle.api.file.FileCollection) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='org.gradle.api.file.SourceDirectorySet java.util.Set&lt;java.io.File&gt; getSrcDirs()'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
</root>
\ No newline at end of file
<root>
<item name='org.gradle.api.initialization.dsl.ScriptHandler org.gradle.api.artifacts.ConfigurationContainer getConfigurations()'>
<annotation name='jet.runtime.typeinfo.KotlinSignature'>
<val name="value" val="&quot;fun getConfigurations() : ConfigurationContainer&quot;"/>
</annotation>
</item>
<item name='org.gradle.api.initialization.dsl.ScriptHandler org.gradle.api.artifacts.dsl.DependencyHandler getDependencies()'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
</root>
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8"?>
<root>
<item name="org.gradle.api.internal.AbstractTask org.gradle.api.Project getProject()">
<annotation name="jet.runtime.typeinfo.KotlinSignature">
<val name="value" val="&quot;fun getProject() : Project&quot;" />
</annotation>
</item>
<item name="org.gradle.api.internal.AbstractTask org.gradle.api.logging.Logger getLogger()">
<annotation name="org.jetbrains.annotations.NotNull" />
</item>
<item name="org.gradle.api.internal.HasConvention org.gradle.api.plugins.Convention getConvention()">
<annotation name="jet.runtime.typeinfo.KotlinSignature">
<val name="value" val="&quot;fun getConvention() : Convention&quot;" />
</annotation>
</item>
</root>
<root>
<item name='org.gradle.api.internal.project.ProjectInternal org.gradle.api.internal.tasks.TaskContainerInternal getTasks()'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
</root>
\ No newline at end of file
<root>
<item name='org.gradle.api.logging.Logging org.gradle.api.logging.Logger getLogger(java.lang.Class)'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
</root>
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8"?>
<root>
<item name="org.gradle.api.plugins.Convention T getPlugin(java.lang.Class&lt;T&gt;)">
<annotation name="org.jetbrains.annotations.NotNull" />
</item>
<item name="org.gradle.api.plugins.Convention java.util.Map&lt;java.lang.String,java.lang.Object&gt; getPlugins()">
<annotation name="jet.runtime.typeinfo.KotlinSignature">
<val name="value" val="&quot;fun getPlugins() : MutableMap&lt;String, Any&gt;&quot;" />
</annotation>
</item>
<item name="org.gradle.api.plugins.Convention org.gradle.api.internal.DynamicObject getExtensionsAsDynamicObject()">
<annotation name="org.jetbrains.annotations.NotNull" />
<annotation name="jet.runtime.typeinfo.KotlinSignature">
<val name="value" val="&quot;fun getExtensionsAsDynamicObject() : DynamicObject&quot;" />
</annotation>
</item>
<item name="org.gradle.api.plugins.ExtensionAware org.gradle.api.plugins.ExtensionContainer getExtensions()">
<annotation name="org.jetbrains.annotations.NotNull" />
</item>
<item name="org.gradle.api.plugins.PluginContainer T apply(java.lang.Class&lt;T&gt;)">
<annotation name="org.jetbrains.annotations.NotNull" />
</item>
<item name="org.gradle.api.plugins.PluginContainer org.gradle.api.Plugin apply(java.lang.String)">
<annotation name="org.jetbrains.annotations.NotNull" />
</item>
<item name='org.gradle.api.plugins.PluginContainer org.gradle.api.Plugin findPlugin(java.lang.String)'>
<annotation name='org.jetbrains.annotations.Nullable'/>
</item>
</root>
<root>
<item name='org.gradle.api.tasks.SourceTask org.gradle.api.file.FileTree getSource()'>
<annotation name='jet.runtime.typeinfo.KotlinSignature'>
<val name="value" val="&quot;fun getSource() : FileTree&quot;"/>
</annotation>
</item>
<item name='org.gradle.api.tasks.TaskContainer T create(java.lang.String, java.lang.Class&lt;T&gt;)'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
</root>
\ No newline at end of file
<root>
<item name='org.gradle.api.tasks.compile.AbstractCompile org.gradle.api.file.FileCollection getClasspath()'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
</root>
\ No newline at end of file
...@@ -47,11 +47,6 @@ ...@@ -47,11 +47,6 @@
<artifactId>kotlin-compiler-embeddable</artifactId> <artifactId>kotlin-compiler-embeddable</artifactId>
<version>${project.version}</version> <version>${project.version}</version>
</dependency> </dependency>
<dependency>
<groupId>org.jetbrains.kotlin</groupId>
<artifactId>kotlin-jdk-annotations</artifactId>
<version>${project.version}</version>
</dependency>
<dependency> <dependency>
<groupId>org.jetbrains.kotlin</groupId> <groupId>org.jetbrains.kotlin</groupId>
<artifactId>kotlin-stdlib</artifactId> <artifactId>kotlin-stdlib</artifactId>
...@@ -64,12 +59,6 @@ ...@@ -64,12 +59,6 @@
<sourceDirectory>${project.basedir}/src/main/kotlin</sourceDirectory> <sourceDirectory>${project.basedir}/src/main/kotlin</sourceDirectory>
<resources> <resources>
<resource>
<!-- jdkAnnotations -->
<directory>${kotlin-sdk}/lib</directory>
<includes><include>kotlin-jdk-annotations.jar</include></includes>
<filtering>false</filtering>
</resource>
<resource> <resource>
<directory>${project.basedir}/src/main/resources</directory> <directory>${project.basedir}/src/main/resources</directory>
</resource> </resource>
...@@ -80,11 +69,6 @@ ...@@ -80,11 +69,6 @@
<artifactId>kotlin-maven-plugin</artifactId> <artifactId>kotlin-maven-plugin</artifactId>
<groupId>org.jetbrains.kotlin</groupId> <groupId>org.jetbrains.kotlin</groupId>
<version>${project.version}</version> <version>${project.version}</version>
<configuration>
<annotationPaths>
<annotationPath>${basedir}/kotlinAnnotation</annotationPath>
</annotationPaths>
</configuration>
<executions> <executions>
<execution> <execution>
......
package org.jetbrains.kotlin.gradle.tasks package org.jetbrains.kotlin.gradle.tasks
import org.gradle.api.tasks.compile.AbstractCompile import com.intellij.ide.highlighter.JavaFileType
import java.io.File import com.intellij.openapi.util.io.FileUtil
import org.apache.commons.io.FileUtils
import org.apache.commons.io.FilenameUtils
import org.apache.commons.lang.StringUtils
import org.codehaus.groovy.runtime.MethodClosure
import org.gradle.api.GradleException import org.gradle.api.GradleException
import org.jetbrains.kotlin.cli.common.ExitCode import org.gradle.api.file.SourceDirectorySet
import org.gradle.api.logging.Logger
import org.gradle.api.logging.Logging
import org.gradle.api.tasks.SourceTask import org.gradle.api.tasks.SourceTask
import java.util.HashSet import java.util.HashSet
import org.gradle.api.tasks.TaskAction import org.gradle.api.tasks.TaskAction
import org.gradle.api.file.SourceDirectorySet import org.gradle.api.tasks.compile.AbstractCompile
import org.jetbrains.kotlin.cli.jvm.K2JVMCompiler import org.jetbrains.kotlin.cli.common.CLICompiler
import org.jetbrains.kotlin.cli.common.ExitCode
import org.jetbrains.kotlin.cli.common.arguments.CommonCompilerArguments
import org.jetbrains.kotlin.cli.common.arguments.K2JSCompilerArguments
import org.jetbrains.kotlin.cli.common.arguments.K2JVMCompilerArguments import org.jetbrains.kotlin.cli.common.arguments.K2JVMCompilerArguments
import org.jetbrains.kotlin.cli.common.messages.MessageCollector
import org.jetbrains.kotlin.cli.common.messages.CompilerMessageSeverity
import org.jetbrains.kotlin.cli.common.messages.CompilerMessageLocation import org.jetbrains.kotlin.cli.common.messages.CompilerMessageLocation
import org.gradle.api.logging.Logger import org.jetbrains.kotlin.cli.common.messages.CompilerMessageSeverity
import org.gradle.api.logging.Logging import org.jetbrains.kotlin.cli.common.messages.MessageCollector
import org.apache.commons.lang.StringUtils
import org.apache.commons.io.FileUtils
import org.gradle.api.Project
import org.jetbrains.kotlin.config.Services
import org.jetbrains.kotlin.cli.js.K2JSCompiler import org.jetbrains.kotlin.cli.js.K2JSCompiler
import org.jetbrains.kotlin.cli.common.arguments.K2JSCompilerArguments import org.jetbrains.kotlin.cli.jvm.K2JVMCompiler
import org.codehaus.groovy.runtime.MethodClosure import org.jetbrains.kotlin.config.Services
import org.jetbrains.kotlin.cli.common.arguments.CommonCompilerArguments import org.jetbrains.kotlin.doc.KDocArguments
import org.jetbrains.kotlin.cli.common.CLICompiler import org.jetbrains.kotlin.doc.KDocCompiler
import com.intellij.ide.highlighter.JavaFileType
import org.jetbrains.kotlin.idea.JetFileType
import org.jetbrains.kotlin.utils.LibraryUtils import org.jetbrains.kotlin.utils.LibraryUtils
import com.intellij.openapi.util.io.FileUtil import com.intellij.openapi.util.io.FileUtil
import org.apache.commons.io.FilenameUtils import org.apache.commons.io.FilenameUtils
...@@ -37,6 +38,8 @@ import java.io.IOException ...@@ -37,6 +38,8 @@ import java.io.IOException
import java.lang.ref.WeakReference import java.lang.ref.WeakReference
val DEFAULT_ANNOTATIONS = "org.jebrains.kotlin.gradle.defaultAnnotations" val DEFAULT_ANNOTATIONS = "org.jebrains.kotlin.gradle.defaultAnnotations"
import java.io.File
import java.util.HashSet
val ANNOTATIONS_PLUGIN_NAME = "org.jetbrains.kotlin.kapt" val ANNOTATIONS_PLUGIN_NAME = "org.jetbrains.kotlin.kapt"
...@@ -134,16 +137,7 @@ public open class KotlinCompile() : AbstractKotlinCompile<K2JVMCompilerArguments ...@@ -134,16 +137,7 @@ public open class KotlinCompile() : AbstractKotlinCompile<K2JVMCompilerArguments
args.pluginOptions = pluginOptions.toTypedArray() args.pluginOptions = pluginOptions.toTypedArray()
getLogger().kotlinDebug("args.pluginOptions = ${args.pluginOptions.joinToString(File.pathSeparator)}") getLogger().kotlinDebug("args.pluginOptions = ${args.pluginOptions.joinToString(File.pathSeparator)}")
val embeddedAnnotations = getAnnotations(getProject(), getLogger())
val userAnnotations = kotlinOptions.annotations?.split(File.pathSeparatorChar)?.toList() ?: emptyList()
val allAnnotations = if (kotlinOptions.noJdkAnnotations) userAnnotations else userAnnotations.plus(embeddedAnnotations.map { it.getPath() })
if (allAnnotations.isNotEmpty()) {
args.annotations = allAnnotations.join(File.pathSeparator)
getLogger().kotlinDebug("args.annotations = ${args.annotations}")
}
args.noStdlib = true args.noStdlib = true
args.noJdkAnnotations = true
args.noInline = kotlinOptions.noInline args.noInline = kotlinOptions.noInline
args.noOptimize = kotlinOptions.noOptimize args.noOptimize = kotlinOptions.noOptimize
args.noCallAssertions = kotlinOptions.noCallAssertions args.noCallAssertions = kotlinOptions.noCallAssertions
...@@ -294,18 +288,6 @@ private fun <T: Any> ExtraPropertiesExtension.getOrNull(id: String): T? { ...@@ -294,18 +288,6 @@ private fun <T: Any> ExtraPropertiesExtension.getOrNull(id: String): T? {
} }
} }
fun getAnnotations(project: Project, logger: Logger): Collection<File> {
@Suppress("UNCHECKED_CAST")
val annotations = project.getExtensions().getByName(DEFAULT_ANNOTATIONS) as Collection<File>
if (!annotations.isEmpty()) {
logger.info("using default annontations from [${annotations.map { it.getPath() }}]")
return annotations
} else {
throw GradleException("Default annotations not found in Kotlin gradle plugin classpath")
}
}
class GradleMessageCollector(val logger: Logger) : MessageCollector { class GradleMessageCollector(val logger: Logger) : MessageCollector {
public override fun report(severity: CompilerMessageSeverity, message: String, location: CompilerMessageLocation) { public override fun report(severity: CompilerMessageSeverity, message: String, location: CompilerMessageLocation) {
val text = with(StringBuilder()) { val text = with(StringBuilder()) {
......
<root>
<item name='com.android.build.gradle.BaseExtension org.gradle.api.NamedDomainObjectContainer&lt;com.android.build.gradle.api.AndroidSourceSet&gt; getSourceSets()'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
</root>
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8"?>
<root>
<item name="com.android.build.gradle.api.AndroidSourceSet org.gradle.api.file.SourceDirectorySet getAllJava()">
<annotation name="org.jetbrains.annotations.NotNull" />
</item>
<item name="com.android.build.gradle.api.AndroidSourceSet org.gradle.api.file.SourceDirectorySet getAllSource()">
<annotation name="org.jetbrains.annotations.NotNull" />
</item>
<item name="com.android.build.gradle.api.AndroidSourceSet org.gradle.api.file.SourceDirectorySet getJava()">
<annotation name="org.jetbrains.annotations.NotNull" />
</item>
<item name="com.android.build.gradle.api.ApkVariant com.android.builder.DefaultBuildType getBuildType()">
<annotation name="org.jetbrains.annotations.NotNull" />
</item>
<item name="com.android.build.gradle.api.ApkVariant java.util.List&lt;com.android.builder.DefaultProductFlavor&gt; getProductFlavors()">
<annotation name="org.jetbrains.annotations.NotNull" />
</item>
<item name="com.android.build.gradle.api.BaseVariant com.android.build.gradle.tasks.AidlCompile getAidlCompile()">
<annotation name="org.jetbrains.annotations.NotNull" />
</item>
<item name="com.android.build.gradle.api.BaseVariant com.android.build.gradle.tasks.ProcessAndroidResources getProcessResources()">
<annotation name="org.jetbrains.annotations.NotNull" />
</item>
<item name="com.android.build.gradle.api.BaseVariant com.android.build.gradle.tasks.RenderscriptCompile getRenderscriptCompile()">
<annotation name="org.jetbrains.annotations.NotNull" />
</item>
<item name="com.android.build.gradle.api.LibraryVariant com.android.builder.DefaultBuildType getBuildType()">
<annotation name="org.jetbrains.annotations.NotNull" />
</item>
</root>
<root>
<item name='com.google.common.base.Joiner com.google.common.base.Joiner on(java.lang.String)'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
</root>
\ No newline at end of file
<root>
<item name='com.google.common.io.Files java.io.File createTempDir()'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
</root>
\ No newline at end of file
<root>
<item name='org.apache.commons.io.FilenameUtils java.lang.String getExtension(java.lang.String)'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
</root>
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8"?>
<root>
<item name="org.gradle.api.NamedDomainObjectCollection T getByName(java.lang.String)">
<annotation name="org.jetbrains.annotations.NotNull" />
</item>
<item name="org.gradle.api.Plugin void apply(T)">
<annotation name="jet.runtime.typeinfo.KotlinSignature">
<val name="value" val="&quot;fun apply(p0 : T) : Unit&quot;" />
</annotation>
</item>
<item name="org.gradle.api.Project org.gradle.api.file.ConfigurableFileCollection files(java.lang.Object...)">
<annotation name="org.jetbrains.annotations.NotNull" />
</item>
<item name="org.gradle.api.Project org.gradle.api.initialization.dsl.ScriptHandler getBuildscript()">
<annotation name="jet.runtime.typeinfo.KotlinSignature">
<val name="value" val="&quot;fun getBuildscript() : ScriptHandler&quot;" />
</annotation>
</item>
<item name="org.gradle.api.Project org.gradle.api.logging.Logger getLogger()">
<annotation name="org.jetbrains.annotations.NotNull" />
</item>
<item name="org.gradle.api.Project org.gradle.api.plugins.Convention getConvention()">
<annotation name="org.jetbrains.annotations.NotNull" />
</item>
<item name='org.gradle.api.Project org.gradle.api.plugins.ExtensionContainer getExtensions()'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name="org.gradle.api.Project org.gradle.api.plugins.PluginContainer getPlugins()">
<annotation name="org.jetbrains.annotations.NotNull" />
</item>
</root>
<root>
<item name='org.gradle.api.artifacts.Configuration org.gradle.api.artifacts.ResolvedConfiguration getResolvedConfiguration()'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='org.gradle.api.artifacts.ConfigurationContainer org.gradle.api.artifacts.Configuration detachedConfiguration(org.gradle.api.artifacts.Dependency...)'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
</root>
\ No newline at end of file
<root>
<item name='org.gradle.api.Project org.gradle.api.artifacts.dsl.DependencyHandler getDependencies()'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
</root>
\ No newline at end of file
<root>
<item name='org.gradle.api.file.FileCollection org.gradle.api.file.FileCollection filter(org.gradle.api.specs.Spec&lt;? super java.io.File&gt;)'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='org.gradle.api.file.SourceDirectorySet java.util.Set&lt;java.io.File&gt; getSrcDirs()'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
</root>
\ No newline at end of file
<root>
<item name='org.gradle.api.initialization.dsl.ScriptHandler org.gradle.api.artifacts.ConfigurationContainer getConfigurations()'>
<annotation name='jet.runtime.typeinfo.KotlinSignature'>
<val name="value" val="&quot;fun getConfigurations() : ConfigurationContainer&quot;"/>
</annotation>
</item>
<item name='org.gradle.api.initialization.dsl.ScriptHandler org.gradle.api.artifacts.dsl.DependencyHandler getDependencies()'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
</root>
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8"?>
<root>
<item name="org.gradle.api.internal.AbstractTask org.gradle.api.Project getProject()">
<annotation name="jet.runtime.typeinfo.KotlinSignature">
<val name="value" val="&quot;fun getProject() : Project&quot;" />
</annotation>
</item>
<item name="org.gradle.api.internal.AbstractTask org.gradle.api.logging.Logger getLogger()">
<annotation name="org.jetbrains.annotations.NotNull" />
</item>
<item name="org.gradle.api.internal.HasConvention org.gradle.api.plugins.Convention getConvention()">
<annotation name="jet.runtime.typeinfo.KotlinSignature">
<val name="value" val="&quot;fun getConvention() : Convention&quot;" />
</annotation>
</item>
</root>
<root>
<item name='org.gradle.api.internal.project.ProjectInternal org.gradle.api.internal.tasks.TaskContainerInternal getTasks()'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
</root>
\ No newline at end of file
<root>
<item name='org.gradle.api.logging.Logging org.gradle.api.logging.Logger getLogger(java.lang.Class)'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
</root>
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8"?>
<root>
<item name="org.gradle.api.plugins.Convention T getPlugin(java.lang.Class&lt;T&gt;)">
<annotation name="org.jetbrains.annotations.NotNull" />
</item>
<item name="org.gradle.api.plugins.Convention java.util.Map&lt;java.lang.String,java.lang.Object&gt; getPlugins()">
<annotation name="jet.runtime.typeinfo.KotlinSignature">
<val name="value" val="&quot;fun getPlugins() : MutableMap&lt;String, Any&gt;&quot;" />
</annotation>
</item>
<item name="org.gradle.api.plugins.Convention org.gradle.api.internal.DynamicObject getExtensionsAsDynamicObject()">
<annotation name="org.jetbrains.annotations.NotNull" />
<annotation name="jet.runtime.typeinfo.KotlinSignature">
<val name="value" val="&quot;fun getExtensionsAsDynamicObject() : DynamicObject&quot;" />
</annotation>
</item>
<item name="org.gradle.api.plugins.ExtensionAware org.gradle.api.plugins.ExtensionContainer getExtensions()">
<annotation name="org.jetbrains.annotations.NotNull" />
</item>
<item name="org.gradle.api.plugins.PluginContainer T apply(java.lang.Class&lt;T&gt;)">
<annotation name="org.jetbrains.annotations.NotNull" />
</item>
<item name="org.gradle.api.plugins.PluginContainer org.gradle.api.Plugin apply(java.lang.String)">
<annotation name="org.jetbrains.annotations.NotNull" />
</item>
</root>
<root>
<item name='org.gradle.api.tasks.SourceTask org.gradle.api.file.FileTree getSource()'>
<annotation name='jet.runtime.typeinfo.KotlinSignature'>
<val name="value" val="&quot;fun getSource() : FileTree&quot;"/>
</annotation>
</item>
</root>
\ No newline at end of file
<root>
<item name='org.gradle.api.tasks.compile.AbstractCompile org.gradle.api.file.FileCollection getClasspath()'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
</root>
\ No newline at end of file
...@@ -72,11 +72,6 @@ ...@@ -72,11 +72,6 @@
<artifactId>kotlin-maven-plugin</artifactId> <artifactId>kotlin-maven-plugin</artifactId>
<groupId>org.jetbrains.kotlin</groupId> <groupId>org.jetbrains.kotlin</groupId>
<version>${project.version}</version> <version>${project.version}</version>
<configuration>
<annotationPaths>
<annotationPath>${basedir}/kotlinAnnotation</annotationPath>
</annotationPaths>
</configuration>
<executions> <executions>
<execution> <execution>
...@@ -107,9 +102,7 @@ ...@@ -107,9 +102,7 @@
<postBuildHookScript>verify</postBuildHookScript> <!-- no extension required --> <postBuildHookScript>verify</postBuildHookScript> <!-- no extension required -->
<extraArtifacts> <extraArtifacts>
<extraArtifact>org.jetbrains.kotlin:kotlin-gradle-plugin-core:${project.version}</extraArtifact> <extraArtifact>org.jetbrains.kotlin:kotlin-gradle-plugin-core:${project.version}</extraArtifact>
<extraArtifact>org.jetbrains.kotlin:kotlin-jdk-annotations:${project.version}</extraArtifact>
<extraArtifact>org.jetbrains.kotlin:kotlin-js-library:${project.version}</extraArtifact> <extraArtifact>org.jetbrains.kotlin:kotlin-js-library:${project.version}</extraArtifact>
<extraArtifact>org.jetbrains.kotlin:kotlin-android-sdk-annotations:${project.version}</extraArtifact>
</extraArtifacts> </extraArtifacts>
</configuration> </configuration>
<executions> <executions>
......
...@@ -36,8 +36,6 @@ import org.jetbrains.kotlin.gradle.internal.initKapt ...@@ -36,8 +36,6 @@ import org.jetbrains.kotlin.gradle.internal.initKapt
import java.net.URL import java.net.URL
import java.util.jar.Manifest import java.util.jar.Manifest
val DEFAULT_ANNOTATIONS = "org.jebrains.kotlin.gradle.defaultAnnotations"
val KOTLIN_AFTER_JAVA_TASK_SUFFIX = "AfterJava" val KOTLIN_AFTER_JAVA_TASK_SUFFIX = "AfterJava"
abstract class KotlinSourceSetProcessor<T : AbstractCompile>( abstract class KotlinSourceSetProcessor<T : AbstractCompile>(
...@@ -239,9 +237,6 @@ abstract class AbstractKotlinPlugin @Inject constructor(val scriptHandler: Scrip ...@@ -239,9 +237,6 @@ abstract class AbstractKotlinPlugin @Inject constructor(val scriptHandler: Scrip
project.getPlugins().apply(javaClass<JavaPlugin>()) project.getPlugins().apply(javaClass<JavaPlugin>())
configureSourceSetDefaults(project as ProjectInternal, javaBasePlugin, javaPluginConvention) configureSourceSetDefaults(project as ProjectInternal, javaBasePlugin, javaPluginConvention)
val gradleUtils = GradleUtils(scriptHandler, project)
project.getExtensions().add(DEFAULT_ANNOTATIONS, gradleUtils.resolveKotlinPluginDependency("kotlin-jdk-annotations"))
} }
open protected fun configureSourceSetDefaults(project: ProjectInternal, open protected fun configureSourceSetDefaults(project: ProjectInternal,
...@@ -332,9 +327,6 @@ open class KotlinAndroidPlugin @Inject constructor(val scriptHandler: ScriptHand ...@@ -332,9 +327,6 @@ open class KotlinAndroidPlugin @Inject constructor(val scriptHandler: ScriptHand
ext, plugin, aptConfigurations) ext, plugin, aptConfigurations)
} }
} }
project.getExtensions().add(DEFAULT_ANNOTATIONS, GradleUtils(scriptHandler, project)
.resolveKotlinPluginDependency("kotlin-android-sdk-annotations"))
} }
private fun processVariantData( private fun processVariantData(
...@@ -534,8 +526,6 @@ open class GradleUtils(val scriptHandler: ScriptHandler, val project: ProjectInt ...@@ -534,8 +526,6 @@ open class GradleUtils(val scriptHandler: ScriptHandler, val project: ProjectInt
public fun kotlinPluginArtifactCoordinates(artifact: String): String = "org.jetbrains.kotlin:${artifact}:${kotlinPluginVersion()}" public fun kotlinPluginArtifactCoordinates(artifact: String): String = "org.jetbrains.kotlin:${artifact}:${kotlinPluginVersion()}"
public fun kotlinJsLibraryCoordinates(): String = kotlinPluginArtifactCoordinates("kotlin-js-library") public fun kotlinJsLibraryCoordinates(): String = kotlinPluginArtifactCoordinates("kotlin-js-library")
public fun resolveKotlinPluginDependency(artifact: String): Collection<File> =
resolveDependencies(kotlinPluginArtifactCoordinates(artifact))
public fun resolveJsLibrary(): File = resolveDependencies(kotlinJsLibraryCoordinates()).first() public fun resolveJsLibrary(): File = resolveDependencies(kotlinJsLibraryCoordinates()).first()
} }
......
...@@ -21,10 +21,6 @@ android { ...@@ -21,10 +21,6 @@ android {
compileSdkVersion 22 compileSdkVersion 22
buildToolsVersion "21.1.2" buildToolsVersion "21.1.2"
kotlinOptions {
annotations = "kotlinAnnotations"
}
sourceSets { sourceSets {
main.kotlin.srcDirs += 'root/kotlin' main.kotlin.srcDirs += 'root/kotlin'
} }
......
<root>
<item name='android.app.Activity android.view.MenuInflater getMenuInflater()'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
</root>
...@@ -44,12 +44,6 @@ task show << { ...@@ -44,12 +44,6 @@ task show << {
buildscript.configurations.classpath.each { println it } buildscript.configurations.classpath.each { println it }
} }
compileKotlin {
kotlinOptions.annotations = "externalAnnotations"
}
task wrapper(type: Wrapper) { task wrapper(type: Wrapper) {
gradleVersion="1.4" gradleVersion="1.4"
} }
\ No newline at end of file
<root>
<item name='com.google.common.base.Joiner com.google.common.base.Joiner on(java.lang.String)'>
<annotation name="org.jetbrains.annotations.NotNull" />
</item>
<item name='com.google.common.base.Joiner com.google.common.base.Joiner.MapJoiner withKeyValueSeparator(java.lang.String)'>
<annotation name="org.jetbrains.annotations.NotNull" />
</item>
<item name='com.google.common.base.Joiner com.google.common.base.Joiner skipNulls()'>
<annotation name="org.jetbrains.annotations.NotNull" />
</item>
</root>
\ No newline at end of file
...@@ -39,11 +39,6 @@ test { ...@@ -39,11 +39,6 @@ test {
useTestNG() useTestNG()
} }
compileKotlin {
kotlinOptions.annotations = "externalAnnotations"
}
task wrapper(type: Wrapper) { task wrapper(type: Wrapper) {
gradleVersion="1.4" gradleVersion="1.4"
} }
\ No newline at end of file
<root>
<item name='com.google.common.base.Joiner com.google.common.base.Joiner on(java.lang.String)'>
<annotation name="org.jetbrains.annotations.NotNull" />
</item>
<item name='com.google.common.base.Joiner com.google.common.base.Joiner.MapJoiner withKeyValueSeparator(java.lang.String)'>
<annotation name="org.jetbrains.annotations.NotNull" />
</item>
<item name='com.google.common.base.Joiner com.google.common.base.Joiner skipNulls()'>
<annotation name="org.jetbrains.annotations.NotNull" />
</item>
</root>
\ No newline at end of file
...@@ -28,12 +28,6 @@ task show << { ...@@ -28,12 +28,6 @@ task show << {
buildscript.configurations.classpath.each { println it } buildscript.configurations.classpath.each { println it }
} }
compileKotlin {
kotlinOptions.annotations = "externalAnnotations"
}
task wrapper(type: Wrapper) { task wrapper(type: Wrapper) {
gradleVersion="1.4" gradleVersion="1.4"
} }
\ No newline at end of file
...@@ -39,12 +39,6 @@ task show << { ...@@ -39,12 +39,6 @@ task show << {
buildscript.configurations.classpath.each { println it } buildscript.configurations.classpath.each { println it }
} }
compileKotlin {
kotlinOptions.annotations = "externalAnnotations"
}
task wrapper(type: Wrapper) { task wrapper(type: Wrapper) {
gradleVersion="1.4" gradleVersion="1.4"
} }
<root>
<item name='com.google.common.base.Joiner com.google.common.base.Joiner on(java.lang.String)'>
<annotation name='jet.runtime.typeinfo.KotlinSignature'>
<val name="value" val="&quot;fun on(separator : String?) : Joiner&quot;"/>
</annotation>
</item>
<item name='com.google.common.base.Joiner com.google.common.base.Joiner.MapJoiner withKeyValueSeparator(java.lang.String)'>
<annotation name='jet.runtime.typeinfo.KotlinSignature'>
<val name="value"
val="&quot;fun withKeyValueSeparator(keyValueSeparator : String?) : Joiner.MapJoiner?&quot;"/>
</annotation>
</item>
<item name='com.google.common.base.Joiner com.google.common.base.Joiner skipNulls()'>
<annotation name='jet.runtime.typeinfo.KotlinSignature'>
<val name="value" val="&quot;fun skipNulls() : Joiner&quot;"/>
</annotation>
</item>
</root>
\ No newline at end of file
...@@ -34,12 +34,6 @@ task show << { ...@@ -34,12 +34,6 @@ task show << {
buildscript.configurations.classpath.each { println it } buildscript.configurations.classpath.each { println it }
} }
compileKotlin {
kotlinOptions.annotations = "externalAnnotations"
}
task wrapper(type: Wrapper) { task wrapper(type: Wrapper) {
gradleVersion="1.4" gradleVersion="1.4"
} }
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册