Added wrapper module for gradle plugin
This commit is contained in:
committed by
Nikita Skvortsov
parent
7e58d83121
commit
7e36547b38
@@ -56,6 +56,7 @@
|
||||
<module>tools/kotlin-compiler</module>
|
||||
<module>tools/kotlin-jdk-annotations</module>
|
||||
<module>tools/runtime</module>
|
||||
<module>tools/kotlin-gradle-plugin</module>
|
||||
<module>tools/kotlin-gradle-plugin-core</module>
|
||||
<module>tools/kotlin-maven-plugin</module>
|
||||
<module>tools/kotlin-js-library</module>
|
||||
|
||||
@@ -0,0 +1,18 @@
|
||||
<root>
|
||||
<item name='org.gradle.api.Plugin void apply(T)'>
|
||||
<annotation name='jet.runtime.typeinfo.KotlinSignature'>
|
||||
<val name="value" val=""fun apply(p0 : T) : Unit""/>
|
||||
</annotation>
|
||||
</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.plugins.Convention getConvention()'>
|
||||
<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=""fun getBuildscript() : ScriptHandler""/>
|
||||
</annotation>
|
||||
</item>
|
||||
</root>
|
||||
+5
@@ -0,0 +1,5 @@
|
||||
<root>
|
||||
<item name='org.gradle.api.file.FileCollection org.gradle.api.file.FileCollection filter(org.gradle.api.specs.Spec<? super java.io.File>)'>
|
||||
<annotation name='org.jetbrains.annotations.NotNull'/>
|
||||
</item>
|
||||
</root>
|
||||
+7
@@ -0,0 +1,7 @@
|
||||
<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=""fun getConfigurations() : ConfigurationContainer""/>
|
||||
</annotation>
|
||||
</item>
|
||||
</root>
|
||||
+15
@@ -0,0 +1,15 @@
|
||||
<root>
|
||||
<item name='org.gradle.api.internal.HasConvention org.gradle.api.plugins.Convention getConvention()'>
|
||||
<annotation name='jet.runtime.typeinfo.KotlinSignature'>
|
||||
<val name="value" val=""fun getConvention() : Convention""/>
|
||||
</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.AbstractTask org.gradle.api.Project getProject()'>
|
||||
<annotation name='jet.runtime.typeinfo.KotlinSignature'>
|
||||
<val name="value" val=""fun getProject() : Project""/>
|
||||
</annotation>
|
||||
</item>
|
||||
</root>
|
||||
+5
@@ -0,0 +1,5 @@
|
||||
<root>
|
||||
<item name='org.gradle.api.internal.project.ProjectInternal org.gradle.api.internal.tasks.TaskContainerInternal getTasks()'>
|
||||
<annotation name='org.jetbrains.annotations.NotNull'/>
|
||||
</item>
|
||||
</root>
|
||||
+5
@@ -0,0 +1,5 @@
|
||||
<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>
|
||||
+22
@@ -0,0 +1,22 @@
|
||||
<root>
|
||||
<item name='org.gradle.api.plugins.Convention java.util.Map<java.lang.String,java.lang.Object> getPlugins()'>
|
||||
<annotation name='jet.runtime.typeinfo.KotlinSignature'>
|
||||
<val name="value" val=""fun getPlugins() : MutableMap<String, Any>""/>
|
||||
</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=""fun getExtensionsAsDynamicObject() : DynamicObject""/>
|
||||
</annotation>
|
||||
</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 T apply(java.lang.Class<T>)'>
|
||||
<annotation name='org.jetbrains.annotations.NotNull'/>
|
||||
</item>
|
||||
<item name='org.gradle.api.plugins.Convention T getPlugin(java.lang.Class<T>)'>
|
||||
<annotation name='org.jetbrains.annotations.NotNull'/>
|
||||
</item>
|
||||
</root>
|
||||
+7
@@ -0,0 +1,7 @@
|
||||
<root>
|
||||
<item name='org.gradle.api.tasks.SourceTask org.gradle.api.file.FileTree getSource()'>
|
||||
<annotation name='jet.runtime.typeinfo.KotlinSignature'>
|
||||
<val name="value" val=""fun getSource() : FileTree""/>
|
||||
</annotation>
|
||||
</item>
|
||||
</root>
|
||||
+5
@@ -0,0 +1,5 @@
|
||||
<root>
|
||||
<item name='org.gradle.api.tasks.compile.AbstractCompile org.gradle.api.file.FileCollection getClasspath()'>
|
||||
<annotation name='org.jetbrains.annotations.NotNull'/>
|
||||
</item>
|
||||
</root>
|
||||
@@ -0,0 +1,107 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project
|
||||
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"
|
||||
xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
|
||||
|
||||
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
<properties>
|
||||
<maven.version>3.0.4</maven.version>
|
||||
</properties>
|
||||
|
||||
<parent>
|
||||
<groupId>org.jetbrains.kotlin</groupId>
|
||||
<artifactId>kotlin-project</artifactId>
|
||||
<version>0.1-SNAPSHOT</version>
|
||||
<relativePath>../../pom.xml</relativePath>
|
||||
</parent>
|
||||
|
||||
<artifactId>kotlin-gradle-plugin-core</artifactId>
|
||||
<packaging>jar</packaging>
|
||||
|
||||
<dependencies>
|
||||
<dependency>
|
||||
<groupId>org.jetbrains.kotlin</groupId>
|
||||
<artifactId>gradle-api</artifactId>
|
||||
<version>1.4</version>
|
||||
<scope>provided</scope>
|
||||
</dependency>
|
||||
</dependencies>
|
||||
|
||||
|
||||
<build>
|
||||
<sourceDirectory>${project.basedir}/src/main/kotlin</sourceDirectory>
|
||||
<testSourceDirectory>${project.basedir}/src/test/kotlin</testSourceDirectory>
|
||||
|
||||
<resources>
|
||||
<resource>
|
||||
<directory>${project.basedir}/src/main/resources</directory>
|
||||
</resource>
|
||||
</resources>
|
||||
|
||||
<plugins>
|
||||
<plugin>
|
||||
<artifactId>kotlin-maven-plugin</artifactId>
|
||||
<groupId>org.jetbrains.kotlin</groupId>
|
||||
<version>${project.version}</version>
|
||||
<configuration>
|
||||
<annotationPaths>
|
||||
<annotationPath>${basedir}/kotlinAnnotation</annotationPath>
|
||||
</annotationPaths>
|
||||
</configuration>
|
||||
|
||||
<executions>
|
||||
<execution>
|
||||
<id>compile</id>
|
||||
<phase>compile</phase>
|
||||
<goals> <goal>compile</goal> </goals>
|
||||
</execution>
|
||||
|
||||
<execution>
|
||||
<id>test-compile</id>
|
||||
<phase>test-compile</phase>
|
||||
<goals> <goal>test-compile</goal> </goals>
|
||||
</execution>
|
||||
</executions>
|
||||
</plugin>
|
||||
<plugin>
|
||||
<!-- Invoker plugin maintains local maven repository in local-repo for gradle integration tests -->
|
||||
<artifactId>maven-invoker-plugin</artifactId>
|
||||
<version>1.8</version>
|
||||
<configuration>
|
||||
<cloneProjectsTo>${project.build.directory}/it</cloneProjectsTo>
|
||||
<localRepositoryPath>local-repo</localRepositoryPath>
|
||||
<postBuildHookScript>verify</postBuildHookScript> <!-- no extension required -->
|
||||
</configuration>
|
||||
<executions>
|
||||
<execution>
|
||||
<id>create_local</id>
|
||||
<phase>pre-integration-test</phase>
|
||||
<goals>
|
||||
<goal>install</goal>
|
||||
</goals>
|
||||
</execution>
|
||||
</executions>
|
||||
</plugin>
|
||||
<plugin>
|
||||
<artifactId>maven-failsafe-plugin</artifactId>
|
||||
<version>2.6</version>
|
||||
<executions>
|
||||
<execution>
|
||||
<goals>
|
||||
<goal>integration-test</goal>
|
||||
<goal>verify</goal>
|
||||
</goals>
|
||||
</execution>
|
||||
</executions>
|
||||
</plugin>
|
||||
</plugins>
|
||||
</build>
|
||||
|
||||
<repositories>
|
||||
<repository>
|
||||
<id>jetbrains-utils</id>
|
||||
<url>http://repository.jetbrains.com/utils</url>
|
||||
</repository>
|
||||
</repositories>
|
||||
</project>
|
||||
+74
@@ -0,0 +1,74 @@
|
||||
package org.jetbrains.kotlin.gradle.classloaders;
|
||||
|
||||
|
||||
import java.net.URL;
|
||||
import java.net.URLClassLoader;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* A parent-last classloader that will try the child classloader first and then the parent.
|
||||
* This takes a fair bit of doing because java really prefers parent-first.
|
||||
* <p/>
|
||||
* For those not familiar with class loading trickery, be wary
|
||||
*/
|
||||
public class ParentLastURLClassLoader extends ClassLoader {
|
||||
private ChildURLClassLoader childClassLoader;
|
||||
|
||||
public ParentLastURLClassLoader(List<URL> classpath, ClassLoader parent) {
|
||||
super(Thread.currentThread().getContextClassLoader());
|
||||
|
||||
URL[] urls = classpath.toArray(new URL[classpath.size()]);
|
||||
|
||||
childClassLoader = new ChildURLClassLoader(urls, new FindClassClassLoader(parent));
|
||||
}
|
||||
|
||||
@Override
|
||||
protected synchronized Class<?> loadClass(String name, boolean resolve) throws ClassNotFoundException {
|
||||
try {
|
||||
// first we try to find a class inside the child classloader
|
||||
return childClassLoader.findClass(name);
|
||||
} catch (ClassNotFoundException e) {
|
||||
// didn't find it, try the parent
|
||||
return super.loadClass(name, resolve);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* This class allows me to call findClass on a classloader
|
||||
*/
|
||||
private static class FindClassClassLoader extends ClassLoader {
|
||||
public FindClassClassLoader(ClassLoader parent) {
|
||||
super(parent);
|
||||
}
|
||||
|
||||
@Override
|
||||
public Class<?> findClass(String name) throws ClassNotFoundException {
|
||||
return super.findClass(name);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* This class delegates (child then parent) for the findClass method for a URLClassLoader.
|
||||
* We need this because findClass is protected in URLClassLoader
|
||||
*/
|
||||
private static class ChildURLClassLoader extends URLClassLoader {
|
||||
private FindClassClassLoader realParent;
|
||||
|
||||
public ChildURLClassLoader(URL[] urls, FindClassClassLoader realParent) {
|
||||
super(urls, null);
|
||||
|
||||
this.realParent = realParent;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Class<?> findClass(String name) throws ClassNotFoundException {
|
||||
try {
|
||||
// first try to use the URLClassLoader findClass
|
||||
return super.findClass(name);
|
||||
} catch (ClassNotFoundException e) {
|
||||
// if that fails, we ask our real parent classloader to load the class (we give up)
|
||||
return realParent.loadClass(name);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
+13
@@ -0,0 +1,13 @@
|
||||
package org.jetbrains.kotlin.gradle.plugin
|
||||
|
||||
import org.gradle.api.Plugin
|
||||
import org.gradle.api.Project
|
||||
import org.gradle.api.artifacts.dsl.DependencyHandler
|
||||
|
||||
open class KotlinPluginWrapper: Plugin<Project> {
|
||||
public override fun apply(project: Project) {
|
||||
val dependencyHandler : DependencyHandler = project.getDependencies()
|
||||
dependencyHandler.create("org.jetbrains.kotlin:kotlin-gradle-plugin-core:0.1-SNAPSHOT")
|
||||
|
||||
}
|
||||
}
|
||||
+1
-1
@@ -1 +1 @@
|
||||
implementation-class=org.jetbrains.kotlin.gradle.plugin.KotlinPlugin
|
||||
implementation-class=org.jetbrains.kotlin.gradle.plugin.KotlinPluginWrapper
|
||||
Reference in New Issue
Block a user