From 71c48e2f6542faa939f532e877e2c4d227dbd51e Mon Sep 17 00:00:00 2001 From: Cedric Beust Date: Mon, 9 Nov 2015 20:15:06 -0800 Subject: [PATCH] Initial commit --- .gitignore | 3 + .idea/.name | 1 + .idea/compiler.xml | 22 ++++ .idea/encodings.xml | 6 + .idea/libraries/KotlinJavaRuntime.xml | 12 ++ .idea/misc.xml | 19 +++ .idea/modules.xml | 9 ++ Build.kt | 42 ++++++ apt-example.iml | 12 ++ example/example.iml | 13 ++ .../java/com/beust/apt/example/Example.java | 15 +++ kobalt/src/Build.kt | 123 ++++++++++++++++++ kobalt/wrapper/kobalt-wrapper.jar | Bin 0 -> 6427 bytes kobalt/wrapper/kobalt-wrapper.properties | 1 + kobaltw | 1 + processor/processor.iml | 13 ++ .../beust/apt/processor/MainProcessor.java | 21 +++ .../java/com/beust/apt/processor/Version.java | 12 ++ .../javax.annotation.processing.Processor | 1 + 19 files changed, 326 insertions(+) create mode 100644 .gitignore create mode 100644 .idea/.name create mode 100644 .idea/compiler.xml create mode 100644 .idea/encodings.xml create mode 100644 .idea/libraries/KotlinJavaRuntime.xml create mode 100644 .idea/misc.xml create mode 100644 .idea/modules.xml create mode 100644 Build.kt create mode 100644 apt-example.iml create mode 100644 example/example.iml create mode 100644 example/src/main/java/com/beust/apt/example/Example.java create mode 100644 kobalt/src/Build.kt create mode 100644 kobalt/wrapper/kobalt-wrapper.jar create mode 100644 kobalt/wrapper/kobalt-wrapper.properties create mode 100644 kobaltw create mode 100644 processor/processor.iml create mode 100644 processor/src/main/java/com/beust/apt/processor/MainProcessor.java create mode 100644 processor/src/main/java/com/beust/apt/processor/Version.java create mode 100644 processor/src/main/resources/META-INF/services/javax.annotation.processing.Processor diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..14262c0 --- /dev/null +++ b/.gitignore @@ -0,0 +1,3 @@ +.idea/workspace.xml +.idea/tasks.xml +.kobalt diff --git a/.idea/.name b/.idea/.name new file mode 100644 index 0000000..52200d2 --- /dev/null +++ b/.idea/.name @@ -0,0 +1 @@ +apt-example \ No newline at end of file diff --git a/.idea/compiler.xml b/.idea/compiler.xml new file mode 100644 index 0000000..9a8b7e5 --- /dev/null +++ b/.idea/compiler.xml @@ -0,0 +1,22 @@ + + + + + \ No newline at end of file diff --git a/.idea/encodings.xml b/.idea/encodings.xml new file mode 100644 index 0000000..97626ba --- /dev/null +++ b/.idea/encodings.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/.idea/libraries/KotlinJavaRuntime.xml b/.idea/libraries/KotlinJavaRuntime.xml new file mode 100644 index 0000000..c630c0b --- /dev/null +++ b/.idea/libraries/KotlinJavaRuntime.xml @@ -0,0 +1,12 @@ + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/misc.xml b/.idea/misc.xml new file mode 100644 index 0000000..9793229 --- /dev/null +++ b/.idea/misc.xml @@ -0,0 +1,19 @@ + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/modules.xml b/.idea/modules.xml new file mode 100644 index 0000000..c71e8e9 --- /dev/null +++ b/.idea/modules.xml @@ -0,0 +1,9 @@ + + + + + + + + + \ No newline at end of file diff --git a/Build.kt b/Build.kt new file mode 100644 index 0000000..94ed7a8 --- /dev/null +++ b/Build.kt @@ -0,0 +1,42 @@ + +import com.beust.kobalt.* +import com.beust.kobalt.plugin.application.* +import com.beust.kobalt.plugin.java.* +import com.beust.kobalt.plugin.packaging.* +import com.beust.kobalt.plugin.packaging.* + +val processor = javaProject { + name = "processor" + version = "0.1" + directory = "processor" + + assemble { + jar { + } + } +} + +val processorExample = javaProject(processor) { + name = "example" + group = "com.beust" + artifactId = name + version = "0.1" + directory = "example" + + dependencies { + compile(file("../processor/kobaltBuild/libs/processor-0.1.jar")) + } + + assemble { + jar { + fatJar = true + manifest { + attributes("Main-Class", "com.beust.apt.example.Example") + } + } + } + + application { + mainClass = "com.beust.apt.example.Example" + } +} diff --git a/apt-example.iml b/apt-example.iml new file mode 100644 index 0000000..245d342 --- /dev/null +++ b/apt-example.iml @@ -0,0 +1,12 @@ + + + + + + + + + + + + \ No newline at end of file diff --git a/example/example.iml b/example/example.iml new file mode 100644 index 0000000..38412a8 --- /dev/null +++ b/example/example.iml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/example/src/main/java/com/beust/apt/example/Example.java b/example/src/main/java/com/beust/apt/example/Example.java new file mode 100644 index 0000000..dde1faf --- /dev/null +++ b/example/src/main/java/com/beust/apt/example/Example.java @@ -0,0 +1,15 @@ +package com.beust.apt.example; + +import com.beust.apt.processor.Version; + +@Version("1.2") +class Example { + public Example() { + System.out.println("Instantiating Example"); + } + + public static void main(String[] argv) { + new Example(); + } + +} \ No newline at end of file diff --git a/kobalt/src/Build.kt b/kobalt/src/Build.kt new file mode 100644 index 0000000..1c502d7 --- /dev/null +++ b/kobalt/src/Build.kt @@ -0,0 +1,123 @@ + +import com.beust.kobalt.api.License +import com.beust.kobalt.api.Scm +import com.beust.kobalt.homeDir +import com.beust.kobalt.internal.test +import com.beust.kobalt.plugin.application.application +import com.beust.kobalt.plugin.java.javaProject +import com.beust.kobalt.plugin.kotlin.kotlinCompiler +import com.beust.kobalt.plugin.kotlin.kotlinProject +import com.beust.kobalt.plugin.packaging.assemble +import com.beust.kobalt.plugin.publish.jcenter +import com.beust.kobalt.repos +import java.io.File + +val r = repos("http://repo.spongepowered.org/maven") + + +val wrapper = javaProject { + name = "kobalt-wrapper" + version = readVersion() + directory = "modules/wrapper" + + assemble { + jar { + name = projectName + ".jar" + manifest { + attributes("Main-Class", "com.beust.kobalt.wrapper.Main") + } + } + } + + application { + mainClass = "com.beust.kobalt.wrapper.Main" + jvmArgs("-Dtest=foo") + } +} + +val kobalt = kotlinProject(wrapper) { + name = "kobalt" + group = "com.beust" + artifactId = name + version = readVersion() + description = "A build system in Kotlin" + url = "http://beust.com/kobalt" + licenses = arrayListOf(License("Apache 2.0", "http://www.apache.org/licenses/LICENSE-2.0")) + scm = Scm(url = "http://github.com/cbeust/kobalt", + connection = "https://github.com/cbeust/kobalt.git", + developerConnection = "git@github.com:cbeust/kobalt.git") + + dependenciesTest { + compile("org.testng:testng:6.9.9") + } + + dependencies { + compile("org.jetbrains.kotlin:kotlin-stdlib:1.0.0-beta-1038", + "org.jetbrains.kotlin:kotlin-compiler-embeddable:1.0.0-beta-1038", + "org.spongepowered:spongeapi:2.1-SNAPSHOT", + + // file(homeDir("java/jcommander/target/jcommander-1.47.jar")), + "com.beust:jcommander:1.48", + "com.squareup.okhttp:okhttp:2.5.0", + "org.jsoup:jsoup:1.8.3", + "com.google.inject:guice:4.0", + "com.google.inject.extensions:guice-assistedinject:4.0", + "javax.inject:javax.inject:1", + "com.google.guava:guava:19.0-rc2", + "org.apache.maven:maven-model:3.3.3", + "com.github.spullara.mustache.java:compiler:0.9.1", + "io.reactivex:rxjava:1.0.14", + "com.google.code.gson:gson:2.4" + ) + } + + assemble { + mavenJars { + fatJar = true + manifest { + attributes("Main-Class", "com.beust.kobalt.MainKt") + } + } + zip { + include("kobaltw") + include(from("$buildDirectory/libs"), to("kobalt/wrapper"), + "$projectName-$version.jar") + include(from("modules/wrapper/$buildDirectory/libs"), to("kobalt/wrapper"), + "$projectName-wrapper.jar") + } + } + + test { + args("-log", "2", "src/test/resources/testng.xml") + } + + kotlinCompiler { + args("-nowarn") + } + + jcenter { + publish = true + file("$buildDirectory/libs/$name-$version.zip", "$name/$version/$name-$version.zip") + } +} + +fun readVersion() : String { + val p = java.util.Properties() + var localFile = java.io.File("src/main/resources/kobalt.properties") + if (! localFile.exists()) { + localFile = File(homeDir("kotlin", "kobalt", "src/main/resources/kobalt.properties")) + } + p.load(java.io.FileReader(localFile)) + return p.getProperty("kobalt.version") +} + +//import com.beust.kobalt.plugin.linecount.lineCount +//val plugins = plugins( +// "com.beust.kobalt:kobalt-line-count:0.15" +//// file(homeDir("kotlin/kobalt-line-count/kobaltBuild/libs/kobalt-line-count-0.14.jar")) +//) +// +//val lc = lineCount { +// suffix = "**.md" +//} + diff --git a/kobalt/wrapper/kobalt-wrapper.jar b/kobalt/wrapper/kobalt-wrapper.jar new file mode 100644 index 0000000000000000000000000000000000000000..ef904a4c611c6ceda61c656a04133fd231965758 GIT binary patch literal 6427 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 UwXkviT*bayK6h+8{T~DR57Seu$p8QV literal 0 HcmV?d00001 diff --git a/kobalt/wrapper/kobalt-wrapper.properties b/kobalt/wrapper/kobalt-wrapper.properties new file mode 100644 index 0000000..eee113f --- /dev/null +++ b/kobalt/wrapper/kobalt-wrapper.properties @@ -0,0 +1 @@ +kobalt.version=0.234 \ No newline at end of file diff --git a/kobaltw b/kobaltw new file mode 100644 index 0000000..b27b3d8 --- /dev/null +++ b/kobaltw @@ -0,0 +1 @@ +java -jar $(dirname $0)/kobalt/wrapper/kobalt-wrapper.jar $* diff --git a/processor/processor.iml b/processor/processor.iml new file mode 100644 index 0000000..bdb8176 --- /dev/null +++ b/processor/processor.iml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/processor/src/main/java/com/beust/apt/processor/MainProcessor.java b/processor/src/main/java/com/beust/apt/processor/MainProcessor.java new file mode 100644 index 0000000..330550a --- /dev/null +++ b/processor/src/main/java/com/beust/apt/processor/MainProcessor.java @@ -0,0 +1,21 @@ +package com.beust.apt.processor; + +import javax.annotation.processing.AbstractProcessor; +import javax.annotation.processing.RoundEnvironment; +import javax.lang.model.element.TypeElement; +import java.util.HashSet; +import java.util.Set; + +public class MainProcessor extends AbstractProcessor { + @Override + public boolean process(Set annotations, RoundEnvironment roundEnv) { + System.out.println("Processing annotations $annotations"); + return true; + } + + public Set getSupportedAnnotationTypes() { + Set result = new HashSet<>(); + result.add("Version"); + return result; + } +} diff --git a/processor/src/main/java/com/beust/apt/processor/Version.java b/processor/src/main/java/com/beust/apt/processor/Version.java new file mode 100644 index 0000000..470163b --- /dev/null +++ b/processor/src/main/java/com/beust/apt/processor/Version.java @@ -0,0 +1,12 @@ +package com.beust.apt.processor; + +import java.lang.annotation.ElementType; +import java.lang.annotation.Retention; +import java.lang.annotation.RetentionPolicy; +import java.lang.annotation.Target; + +@Retention(RetentionPolicy.RUNTIME) +@Target(ElementType.TYPE) +public @interface Version { + String value(); +} diff --git a/processor/src/main/resources/META-INF/services/javax.annotation.processing.Processor b/processor/src/main/resources/META-INF/services/javax.annotation.processing.Processor new file mode 100644 index 0000000..ac0fb56 --- /dev/null +++ b/processor/src/main/resources/META-INF/services/javax.annotation.processing.Processor @@ -0,0 +1 @@ +com.beust.apt.processor.MainProcessor