1
0
Fork 0
mirror of https://github.com/ethauvin/kobalt.git synced 2025-04-26 08:27:12 -07:00

Jersey work.

This commit is contained in:
Cedric Beust 2016-04-27 03:11:33 -08:00
parent 85db1c767e
commit 8b9f2d9655
7 changed files with 196 additions and 67 deletions

View file

@ -1,25 +1,57 @@
<component name="libraryTable"> <component name="libraryTable">
<library name="kobalt (Compile)"> <library name="kobalt (Compile)">
<CLASSES> <CLASSES>
<root url="jar://$USER_HOME$/.kobalt/repository/org/codehaus/plexus/plexus-utils/3.0.22/plexus-utils-3.0.22.jar!/" /> <root url="jar://$USER_HOME$/.kobalt/repository/org/glassfish/jersey/ext/jersey-entity-filtering/2.22.2/jersey-entity-filtering-2.22.2.jar!/" />
<root url="jar://$USER_HOME$/.kobalt/repository/aopalliance/aopalliance/1.0/aopalliance-1.0.jar!/" /> <root url="jar://$USER_HOME$/.kobalt/repository/org/glassfish/jersey/media/jersey-media-moxy/2.22.2/jersey-media-moxy-2.22.2.jar!/" />
<root url="jar://$USER_HOME$/.kobalt/repository/com/google/inject/extensions/guice-assistedinject/4.0/guice-assistedinject-4.0.jar!/" /> <root url="jar://$USER_HOME$/.kobalt/repository/com/google/inject/extensions/guice-assistedinject/4.0/guice-assistedinject-4.0.jar!/" />
<root url="jar://$USER_HOME$/.kobalt/repository/com/squareup/retrofit2/retrofit/2.0.0/retrofit-2.0.0.jar!/" /> <root url="jar://$USER_HOME$/.kobalt/repository/org/glassfish/hk2/hk2-api/2.4.0-b34/hk2-api-2.4.0-b34.jar!/" />
<root url="jar://$USER_HOME$/.kobalt/repository/org/eclipse/jetty/orbit/javax.servlet/3.0.0.v201112011016/javax.servlet-3.0.0.v201112011016.jar!/" />
<root url="jar://$USER_HOME$/.kobalt/repository/javax/servlet/javax.servlet-api/3.1.0/javax.servlet-api-3.1.0.jar!/" />
<root url="jar://$USER_HOME$/.kobalt/repository/org/glassfish/hk2/external/aopalliance-repackaged/2.4.0-b34/aopalliance-repackaged-2.4.0-b34.jar!/" />
<root url="jar://$USER_HOME$/.kobalt/repository/org/osgi/org.osgi.core/4.3.1/org.osgi.core-4.3.1.jar!/" />
<root url="jar://$USER_HOME$/.kobalt/repository/com/google/code/gson/gson/2.6.2/gson-2.6.2.jar!/" />
<root url="jar://$USER_HOME$/.kobalt/repository/org/eclipse/jetty/jetty-security/8.1.19.v20160209/jetty-security-8.1.19.v20160209.jar!/" />
<root url="jar://$USER_HOME$/.kobalt/repository/org/glassfish/javax.json/1.0.4/javax.json-1.0.4.jar!/" />
<root url="jar://$USER_HOME$/.kobalt/repository/org/glassfish/jersey/core/jersey-server/2.22.2/jersey-server-2.22.2.jar!/" />
<root url="jar://$USER_HOME$/.kobalt/repository/org/glassfish/hk2/hk2-utils/2.4.0-b34/hk2-utils-2.4.0-b34.jar!/" />
<root url="jar://$USER_HOME$/.kobalt/repository/com/beust/jcommander/1.48/jcommander-1.48.jar!/" /> <root url="jar://$USER_HOME$/.kobalt/repository/com/beust/jcommander/1.48/jcommander-1.48.jar!/" />
<root url="jar://$USER_HOME$/.kobalt/repository/org/glassfish/jersey/containers/jersey-container-jetty-http/2.22.2/jersey-container-jetty-http-2.22.2.jar!/" />
<root url="jar://$USER_HOME$/.kobalt/repository/org/glassfish/hk2/osgi-resource-locator/1.0.1/osgi-resource-locator-1.0.1.jar!/" />
<root url="jar://$USER_HOME$/.kobalt/repository/org/eclipse/jetty/jetty-servlet/8.1.19.v20160209/jetty-servlet-8.1.19.v20160209.jar!/" />
<root url="jar://$USER_HOME$/.kobalt/repository/com/squareup/okhttp3/okhttp/3.2.0/okhttp-3.2.0.jar!/" /> <root url="jar://$USER_HOME$/.kobalt/repository/com/squareup/okhttp3/okhttp/3.2.0/okhttp-3.2.0.jar!/" />
<root url="jar://$USER_HOME$/.kobalt/repository/com/squareup/okio/okio/1.6.0/okio-1.6.0.jar!/" />
<root url="jar://$USER_HOME$/.kobalt/repository/javax/inject/javax.inject/1/javax.inject-1.jar!/" /> <root url="jar://$USER_HOME$/.kobalt/repository/javax/inject/javax.inject/1/javax.inject-1.jar!/" />
<root url="jar://$USER_HOME$/.kobalt/repository/org/apache/maven/maven-model/3.3.9/maven-model-3.3.9.jar!/" /> <root url="jar://$USER_HOME$/.kobalt/repository/org/apache/maven/maven-model/3.3.9/maven-model-3.3.9.jar!/" />
<root url="jar://$USER_HOME$/.kobalt/repository/com/google/code/findbugs/jsr305/3.0.1/jsr305-3.0.1.jar!/" /> <root url="jar://$USER_HOME$/.kobalt/repository/org/javassist/javassist/3.18.1-GA/javassist-3.18.1-GA.jar!/" />
<root url="jar://$USER_HOME$/.kobalt/repository/com/github/spullara/mustache/java/compiler/0.9.1/compiler-0.9.1.jar!/" /> <root url="jar://$USER_HOME$/.kobalt/repository/org/glassfish/jersey/containers/jersey-container-servlet-core/2.22.2/jersey-container-servlet-core-2.22.2.jar!/" />
<root url="jar://$USER_HOME$/.kobalt/repository/org/osgi/org.osgi.core/4.3.1/org.osgi.core-4.3.1.jar!/" />
<root url="jar://$USER_HOME$/.kobalt/repository/org/jetbrains/kotlin/kotlin-compiler-embeddable/1.0.0/kotlin-compiler-embeddable-1.0.0.jar!/" />
<root url="jar://$USER_HOME$/.kobalt/repository/org/apache/commons/commons-lang3/3.4/commons-lang3-3.4.jar!/" />
<root url="jar://$USER_HOME$/.kobalt/repository/com/google/code/gson/gson/2.6.2/gson-2.6.2.jar!/" />
<root url="jar://$USER_HOME$/.kobalt/repository/com/squareup/retrofit2/converter-gson/2.0.0/converter-gson-2.0.0.jar!/" />
<root url="jar://$USER_HOME$/.kobalt/repository/com/google/guava/guava/16.0.1/guava-16.0.1.jar!/" /> <root url="jar://$USER_HOME$/.kobalt/repository/com/google/guava/guava/16.0.1/guava-16.0.1.jar!/" />
<root url="jar://$USER_HOME$/.kobalt/repository/com/google/inject/guice/4.0/guice-4.0.jar!/" /> <root url="jar://$USER_HOME$/.kobalt/repository/com/google/inject/guice/4.0/guice-4.0.jar!/" />
<root url="jar://$USER_HOME$/.kobalt/repository/biz/aQute/bnd/bndlib/2.4.0/bndlib-2.4.0.jar!/" /> <root url="jar://$USER_HOME$/.kobalt/repository/biz/aQute/bnd/bndlib/2.4.0/bndlib-2.4.0.jar!/" />
<root url="jar://$USER_HOME$/.kobalt/repository/javax/annotation/javax.annotation-api/1.2/javax.annotation-api-1.2.jar!/" />
<root url="jar://$USER_HOME$/.kobalt/repository/aopalliance/aopalliance/1.0/aopalliance-1.0.jar!/" />
<root url="jar://$USER_HOME$/.kobalt/repository/javax/validation/validation-api/1.1.0.Final/validation-api-1.1.0.Final.jar!/" />
<root url="jar://$USER_HOME$/.kobalt/repository/org/eclipse/jetty/jetty-continuation/9.1.1.v20140108/jetty-continuation-9.1.1.v20140108.jar!/" />
<root url="jar://$USER_HOME$/.kobalt/repository/org/eclipse/jetty/jetty-server/9.1.1.v20140108/jetty-server-9.1.1.v20140108.jar!/" />
<root url="jar://$USER_HOME$/.kobalt/repository/com/squareup/okio/okio/1.6.0/okio-1.6.0.jar!/" />
<root url="jar://$USER_HOME$/.kobalt/repository/org/eclipse/jetty/jetty-io/9.1.1.v20140108/jetty-io-9.1.1.v20140108.jar!/" />
<root url="jar://$USER_HOME$/.kobalt/repository/org/glassfish/jersey/media/jersey-media-jaxb/2.22.2/jersey-media-jaxb-2.22.2.jar!/" />
<root url="jar://$USER_HOME$/.kobalt/repository/org/glassfish/jersey/core/jersey-common/2.22.2/jersey-common-2.22.2.jar!/" />
<root url="jar://$USER_HOME$/.kobalt/repository/javax/ws/rs/javax.ws.rs-api/2.0.1/javax.ws.rs-api-2.0.1.jar!/" />
<root url="jar://$USER_HOME$/.kobalt/repository/com/github/spullara/mustache/java/compiler/0.9.1/compiler-0.9.1.jar!/" />
<root url="jar://$USER_HOME$/.kobalt/repository/org/glassfish/jersey/core/jersey-client/2.22.2/jersey-client-2.22.2.jar!/" />
<root url="jar://$USER_HOME$/.kobalt/repository/org/apache/commons/commons-lang3/3.4/commons-lang3-3.4.jar!/" />
<root url="jar://$USER_HOME$/.kobalt/repository/org/codehaus/plexus/plexus-utils/3.0.22/plexus-utils-3.0.22.jar!/" />
<root url="jar://$USER_HOME$/.kobalt/repository/com/squareup/retrofit2/retrofit/2.0.0/retrofit-2.0.0.jar!/" />
<root url="jar://$USER_HOME$/.kobalt/repository/org/glassfish/hk2/external/javax.inject/2.4.0-b34/javax.inject-2.4.0-b34.jar!/" />
<root url="jar://$USER_HOME$/.kobalt/repository/org/eclipse/persistence/org.eclipse.persistence.core/2.6.0/org.eclipse.persistence.core-2.6.0.jar!/" />
<root url="jar://$USER_HOME$/.kobalt/repository/org/eclipse/jetty/jetty-http/9.1.1.v20140108/jetty-http-9.1.1.v20140108.jar!/" />
<root url="jar://$USER_HOME$/.kobalt/repository/org/eclipse/jetty/jetty-util/9.1.1.v20140108/jetty-util-9.1.1.v20140108.jar!/" />
<root url="jar://$USER_HOME$/.kobalt/repository/com/google/code/findbugs/jsr305/3.0.1/jsr305-3.0.1.jar!/" />
<root url="jar://$USER_HOME$/.kobalt/repository/org/glassfish/jersey/bundles/repackaged/jersey-guava/2.22.2/jersey-guava-2.22.2.jar!/" />
<root url="jar://$USER_HOME$/.kobalt/repository/org/jetbrains/kotlin/kotlin-compiler-embeddable/1.0.0/kotlin-compiler-embeddable-1.0.0.jar!/" />
<root url="jar://$USER_HOME$/.kobalt/repository/com/squareup/retrofit2/converter-gson/2.0.0/converter-gson-2.0.0.jar!/" />
<root url="jar://$USER_HOME$/.kobalt/repository/org/eclipse/persistence/org.eclipse.persistence.moxy/2.6.0/org.eclipse.persistence.moxy-2.6.0.jar!/" />
<root url="jar://$USER_HOME$/.kobalt/repository/org/eclipse/persistence/org.eclipse.persistence.asm/2.6.0/org.eclipse.persistence.asm-2.6.0.jar!/" />
<root url="jar://$USER_HOME$/.kobalt/repository/org/glassfish/hk2/hk2-locator/2.4.0-b34/hk2-locator-2.4.0-b34.jar!/" />
</CLASSES> </CLASSES>
<JAVADOC /> <JAVADOC />
<SOURCES /> <SOURCES />

View file

@ -1,7 +1,9 @@
<component name="libraryTable"> <component name="libraryTable">
<library name="kobalt (Test)"> <library name="kobalt (Test)">
<CLASSES> <CLASSES>
<root url="jar://$USER_HOME$/java/testng/kobaltBuild/libs/testng-6.9.11-SNAPSHOT.jar!/" /> <root url="jar://$USER_HOME$/.kobalt/repository/com/beust/jcommander/1.48/jcommander-1.48.jar!/" />
<root url="jar://$USER_HOME$/.kobalt/repository/org/beanshell/bsh/2.0b4/bsh-2.0b4.jar!/" />
<root url="jar://$USER_HOME$/.kobalt/repository/org/testng/testng/6.9.10/testng-6.9.10.jar!/" />
</CLASSES> </CLASSES>
<JAVADOC /> <JAVADOC />
<SOURCES /> <SOURCES />

View file

@ -5,26 +5,26 @@
<root url="jar://$USER_HOME$/.kobalt/repository/com/google/inject/extensions/guice-assistedinject/4.0/guice-assistedinject-4.0.jar!/" /> <root url="jar://$USER_HOME$/.kobalt/repository/com/google/inject/extensions/guice-assistedinject/4.0/guice-assistedinject-4.0.jar!/" />
<root url="jar://$USER_HOME$/.kobalt/repository/commons-logging/commons-logging/1.1.3/commons-logging-1.1.3.jar!/" /> <root url="jar://$USER_HOME$/.kobalt/repository/commons-logging/commons-logging/1.1.3/commons-logging-1.1.3.jar!/" />
<root url="jar://$USER_HOME$/.kobalt/repository/org/sonatype/sisu/sisu-inject-plexus/2.2.3/sisu-inject-plexus-2.2.3.jar!/" /> <root url="jar://$USER_HOME$/.kobalt/repository/org/sonatype/sisu/sisu-inject-plexus/2.2.3/sisu-inject-plexus-2.2.3.jar!/" />
<root url="jar://$USER_HOME$/.kobalt/repository/org/codehaus/plexus/plexus-interpolation/1.21/plexus-interpolation-1.21.jar!/" />
<root url="jar://$USER_HOME$/.kobalt/repository/org/eclipse/aether/aether-impl/1.1.0/aether-impl-1.1.0.jar!/" /> <root url="jar://$USER_HOME$/.kobalt/repository/org/eclipse/aether/aether-impl/1.1.0/aether-impl-1.1.0.jar!/" />
<root url="jar://$USER_HOME$/.kobalt/repository/org/codehaus/plexus/plexus-interpolation/1.21/plexus-interpolation-1.21.jar!/" />
<root url="jar://$USER_HOME$/.kobalt/repository/com/google/code/gson/gson/2.6.2/gson-2.6.2.jar!/" /> <root url="jar://$USER_HOME$/.kobalt/repository/com/google/code/gson/gson/2.6.2/gson-2.6.2.jar!/" />
<root url="jar://$USER_HOME$/.kobalt/repository/com/beust/jcommander/1.48/jcommander-1.48.jar!/" />
<root url="jar://$USER_HOME$/.kobalt/repository/org/apache/maven/maven-artifact/3.3.9/maven-artifact-3.3.9.jar!/" /> <root url="jar://$USER_HOME$/.kobalt/repository/org/apache/maven/maven-artifact/3.3.9/maven-artifact-3.3.9.jar!/" />
<root url="jar://$USER_HOME$/.kobalt/repository/com/beust/jcommander/1.48/jcommander-1.48.jar!/" />
<root url="jar://$USER_HOME$/.kobalt/repository/org/sonatype/aether/aether-util/1.13.1/aether-util-1.13.1.jar!/" /> <root url="jar://$USER_HOME$/.kobalt/repository/org/sonatype/aether/aether-util/1.13.1/aether-util-1.13.1.jar!/" />
<root url="jar://$USER_HOME$/.kobalt/repository/org/eclipse/aether/aether-transport-http/1.1.0/aether-transport-http-1.1.0.jar!/" /> <root url="jar://$USER_HOME$/.kobalt/repository/org/eclipse/aether/aether-transport-http/1.1.0/aether-transport-http-1.1.0.jar!/" />
<root url="jar://$USER_HOME$/.kobalt/repository/org/slf4j/slf4j-nop/1.6.0/slf4j-nop-1.6.0.jar!/" /> <root url="jar://$USER_HOME$/.kobalt/repository/org/slf4j/slf4j-nop/1.6.0/slf4j-nop-1.6.0.jar!/" />
<root url="jar://$USER_HOME$/.kobalt/repository/org/sonatype/aether/aether-connector-wagon/1.13.1/aether-connector-wagon-1.13.1.jar!/" /> <root url="jar://$USER_HOME$/.kobalt/repository/org/sonatype/aether/aether-connector-wagon/1.13.1/aether-connector-wagon-1.13.1.jar!/" />
<root url="jar://$USER_HOME$/.kobalt/repository/com/squareup/okhttp3/okhttp/3.2.0/okhttp-3.2.0.jar!/" /> <root url="jar://$USER_HOME$/.kobalt/repository/com/squareup/okhttp3/okhttp/3.2.0/okhttp-3.2.0.jar!/" />
<root url="jar://$USER_HOME$/.kobalt/repository/javax/inject/javax.inject/1/javax.inject-1.jar!/" />
<root url="jar://$USER_HOME$/.kobalt/repository/org/eclipse/aether/aether-spi/1.1.0/aether-spi-1.1.0.jar!/" /> <root url="jar://$USER_HOME$/.kobalt/repository/org/eclipse/aether/aether-spi/1.1.0/aether-spi-1.1.0.jar!/" />
<root url="jar://$USER_HOME$/.kobalt/repository/javax/inject/javax.inject/1/javax.inject-1.jar!/" />
<root url="jar://$USER_HOME$/.kobalt/repository/org/apache/maven/maven-model/3.3.9/maven-model-3.3.9.jar!/" /> <root url="jar://$USER_HOME$/.kobalt/repository/org/apache/maven/maven-model/3.3.9/maven-model-3.3.9.jar!/" />
<root url="jar://$USER_HOME$/.kobalt/repository/org/apache/maven/maven-model-builder/3.3.9/maven-model-builder-3.3.9.jar!/" /> <root url="jar://$USER_HOME$/.kobalt/repository/org/apache/maven/maven-model-builder/3.3.9/maven-model-builder-3.3.9.jar!/" />
<root url="jar://$USER_HOME$/.kobalt/repository/org/sonatype/aether/aether-api/1.13.1/aether-api-1.13.1.jar!/" /> <root url="jar://$USER_HOME$/.kobalt/repository/org/sonatype/aether/aether-api/1.13.1/aether-api-1.13.1.jar!/" />
<root url="jar://$USER_HOME$/.kobalt/repository/io/reactivex/rxjava/1.0.16/rxjava-1.0.16.jar!/" /> <root url="jar://$USER_HOME$/.kobalt/repository/io/reactivex/rxjava/1.0.16/rxjava-1.0.16.jar!/" />
<root url="jar://$USER_HOME$/.kobalt/repository/org/apache/maven/maven-aether-provider/3.3.9/maven-aether-provider-3.3.9.jar!/" /> <root url="jar://$USER_HOME$/.kobalt/repository/org/apache/maven/maven-aether-provider/3.3.9/maven-aether-provider-3.3.9.jar!/" />
<root url="jar://$USER_HOME$/.kobalt/repository/org/sonatype/sisu/sisu-inject-bean/2.2.3/sisu-inject-bean-2.2.3.jar!/" /> <root url="jar://$USER_HOME$/.kobalt/repository/org/sonatype/sisu/sisu-inject-bean/2.2.3/sisu-inject-bean-2.2.3.jar!/" />
<root url="jar://$USER_HOME$/.kobalt/repository/com/google/guava/guava/19.0-rc2/guava-19.0-rc2.jar!/" />
<root url="jar://$USER_HOME$/.kobalt/repository/org/codehaus/plexus/plexus-component-annotations/1.6/plexus-component-annotations-1.6.jar!/" /> <root url="jar://$USER_HOME$/.kobalt/repository/org/codehaus/plexus/plexus-component-annotations/1.6/plexus-component-annotations-1.6.jar!/" />
<root url="jar://$USER_HOME$/.kobalt/repository/com/google/guava/guava/19.0-rc2/guava-19.0-rc2.jar!/" />
<root url="jar://$USER_HOME$/.kobalt/repository/com/google/inject/guice/4.0/guice-4.0.jar!/" /> <root url="jar://$USER_HOME$/.kobalt/repository/com/google/inject/guice/4.0/guice-4.0.jar!/" />
<root url="jar://$USER_HOME$/.kobalt/repository/org/apache/maven/wagon/wagon-provider-api/1.0-beta-6/wagon-provider-api-1.0-beta-6.jar!/" /> <root url="jar://$USER_HOME$/.kobalt/repository/org/apache/maven/wagon/wagon-provider-api/1.0-beta-6/wagon-provider-api-1.0-beta-6.jar!/" />
<root url="jar://$USER_HOME$/.kobalt/repository/org/sonatype/sisu/sisu-guice/3.0.3/sisu-guice-3.0.3.jar!/" /> <root url="jar://$USER_HOME$/.kobalt/repository/org/sonatype/sisu/sisu-guice/3.0.3/sisu-guice-3.0.3.jar!/" />

View file

@ -1,14 +1,18 @@
import com.beust.kobalt.*
import com.beust.kobalt.TaskResult
import com.beust.kobalt.api.License import com.beust.kobalt.api.License
import com.beust.kobalt.api.Project import com.beust.kobalt.api.Project
import com.beust.kobalt.api.Scm import com.beust.kobalt.api.Scm
import com.beust.kobalt.api.annotation.Task import com.beust.kobalt.api.annotation.Task
import com.beust.kobalt.homeDir
import com.beust.kobalt.plugin.application.application import com.beust.kobalt.plugin.application.application
import com.beust.kobalt.plugin.java.javaCompiler import com.beust.kobalt.plugin.java.javaCompiler
import com.beust.kobalt.plugin.kotlin.kotlinCompiler import com.beust.kobalt.plugin.kotlin.kotlinCompiler
import com.beust.kobalt.plugin.packaging.assemble import com.beust.kobalt.plugin.packaging.assemble
import com.beust.kobalt.plugin.publish.bintray import com.beust.kobalt.plugin.publish.bintray
import com.beust.kobalt.plugin.publish.github import com.beust.kobalt.plugin.publish.github
import com.beust.kobalt.project
import com.beust.kobalt.test
import java.io.File import java.io.File
import java.nio.file.Files import java.nio.file.Files
import java.nio.file.Paths import java.nio.file.Paths
@ -22,6 +26,8 @@ object Versions {
val aether = "1.1.0" val aether = "1.1.0"
val sonatypeAether = "1.13.1" val sonatypeAether = "1.13.1"
val maven = "3.3.9" val maven = "3.3.9"
val jersey = "2.22.2"
val jetty = "8.1.19.v20160209" // "9.3.9.M1"
} }
val wrapper = project { val wrapper = project {
@ -57,7 +63,7 @@ val kobaltPluginApi = project {
directory = "modules/kobalt-plugin-api" directory = "modules/kobalt-plugin-api"
description = "A build system in Kotlin" description = "A build system in Kotlin"
url = "http://beust.com/kobalt" url = "http://beust.com/kobalt"
licenses = arrayListOf(License("Apache 2.0", "http://www.apache.org/licenses/LICENSE-2.0")) licenses = listOf(License("Apache 2.0", "http://www.apache.org/licenses/LICENSE-2.0"))
scm = Scm(url = "http://github.com/cbeust/kobalt", scm = Scm(url = "http://github.com/cbeust/kobalt",
connection = "https://github.com/cbeust/kobalt.git", connection = "https://github.com/cbeust/kobalt.git",
developerConnection = "git@github.com:cbeust/kobalt.git") developerConnection = "git@github.com:cbeust/kobalt.git")
@ -135,7 +141,14 @@ val kobaltApp = project(kobaltPluginApi, wrapper) {
"com.squareup.retrofit2:retrofit:${Versions.retrofit}", "com.squareup.retrofit2:retrofit:${Versions.retrofit}",
"com.squareup.retrofit2:converter-gson:${Versions.retrofit}", "com.squareup.retrofit2:converter-gson:${Versions.retrofit}",
"org.codehaus.plexus:plexus-utils:3.0.22", "org.codehaus.plexus:plexus-utils:3.0.22",
"biz.aQute.bnd:bndlib:2.4.0" "biz.aQute.bnd:bndlib:2.4.0",
"org.eclipse.jetty:jetty-server:${Versions.jetty}",
"org.eclipse.jetty:jetty-servlet:${Versions.jetty}",
"org.glassfish.jersey.core:jersey-server:${Versions.jersey}",
"org.glassfish.jersey.containers:jersey-container-servlet-core:${Versions.jersey}",
"org.glassfish.jersey.containers:jersey-container-jetty-http:${Versions.jersey}",
"org.glassfish.jersey.media:jersey-media-moxy:${Versions.jersey}"
// "org.eclipse.jetty.aggregate:jetty-all::uber:9.3.9.M1"
) )
} }

View file

@ -16,7 +16,7 @@ enum class SourceSet(val outputDir: String) {
companion object { companion object {
fun of(isTest: Boolean) = if (isTest) TEST else MAIN fun of(isTest: Boolean) = if (isTest) TEST else MAIN
private fun unknown(sourceSet: SourceSet) = throw KobaltException("Unknown source set: $sourceSet") private fun unknown(sourceSet: SourceSet) : Nothing = throw KobaltException("Unknown source set: $sourceSet")
} }
} }

View file

@ -9,24 +9,83 @@ import com.beust.kobalt.internal.KobaltSettings
import com.beust.kobalt.misc.KFiles import com.beust.kobalt.misc.KFiles
import com.beust.kobalt.misc.log import com.beust.kobalt.misc.log
import com.beust.kobalt.misc.warn import com.beust.kobalt.misc.warn
import com.google.gson.Gson
import com.google.gson.JsonObject import com.google.gson.JsonObject
import com.google.gson.JsonParser import com.google.gson.JsonParser
import com.google.inject.Guice import com.google.inject.Guice
import okhttp3.OkHttpClient
import retrofit2.Call
import retrofit2.Retrofit
import retrofit2.converter.gson.GsonConverterFactory
import retrofit2.http.POST
import retrofit2.http.Query
import java.io.* import java.io.*
import java.net.ConnectException
import java.net.Socket import java.net.Socket
import java.nio.file.Paths import java.nio.file.Paths
import java.util.* import java.util.*
import java.util.concurrent.Executors import java.util.concurrent.Executors
import javax.inject.Inject
fun main(argv: Array<String>) { fun main(argv: Array<String>) {
Kobalt.INJECTOR = Guice.createInjector(MainModule(Args(), KobaltSettings.readSettingsXml())) Kobalt.INJECTOR = Guice.createInjector(MainModule(Args(), KobaltSettings.readSettingsXml()))
val port = ServerProcess().launch() KobaltClient().run()
println("SERVER RUNNING ON PORT $port")
} }
interface Api {
@POST("/getDependencies")
fun getDependencies(@Query("buildFile") buildFile: String) : Call<List<DependencyData.GetDependenciesData>>
}
class KobaltClient : Runnable {
var outgoing: PrintWriter? = null
private val service = Retrofit.Builder()
.client(OkHttpClient.Builder().build())
.baseUrl("http://localhost:1252")
.addConverterFactory(GsonConverterFactory.create())
.build()
.create(Api::class.java)
override fun run() {
val buildFile = Paths.get(SystemProperties.homeDir, "kotlin/klaxon/kobalt/src/Build.kt").toString()
val dependencies = service.getDependencies(buildFile)
val results = dependencies.execute()
println("Dependencies: $results")
// .toString())
// var done = false
// var attempts = 1
// while (attempts < 10 && ! done) {
// try {
// val socket = Socket("localhost", portNumber)
// outgoing = PrintWriter(socket.outputStream, true)
// val testBuildfile = Paths.get(SystemProperties.homeDir, "kotlin/klaxon/kobalt/src/Build.kt")
// .toFile().absolutePath
// val c : String = """{ "name": "getDependencies", "buildFile": "$testBuildfile"}"""
// outgoing!!.println(c)
// val ins = BufferedReader(InputStreamReader(socket.inputStream))
// var line = ins.readLine()
// while (! done && line != null) {
// log(1, "Received from server:\n" + line)
// val jo = JsonParser().parse(line) as JsonObject
// if (jo.has("name") && "quit" == jo.get("name").asString.toLowerCase()) {
// log(1, "Quitting")
//// outgoing!!.println("{ \"name\": \"Quit\" }")
// done = true
// } else {
// val data = jo.get("data").asString
// val dd = Gson().fromJson(data, DependencyData.GetDependenciesData::class.java)
// println("Read GetDependencyData, project count: ${dd.projects.size}")
// line = ins.readLine()
// }
// }
// } catch(ex: ConnectException) {
// log(1, "Server not up, sleeping a bit")
// Thread.sleep(2000)
// attempts++
// }
// }
}
}
class ServerProcess { class ServerProcess {
val SERVER_FILE = KFiles.joinDir(homeDir(KFiles.KOBALT_DOT_DIR, "kobaltServer.properties")) val SERVER_FILE = KFiles.joinDir(homeDir(KFiles.KOBALT_DOT_DIR, "kobaltServer.properties"))
val KEY_PORT = "port" val KEY_PORT = "port"
@ -123,43 +182,3 @@ class ServerProcess {
} }
} }
class KobaltClient @Inject constructor() : Runnable {
var outgoing: PrintWriter? = null
override fun run() {
val portNumber = 1234
var done = false
var attempts = 1
while (attempts < 10 && ! done) {
try {
val socket = Socket("localhost", portNumber)
outgoing = PrintWriter(socket.outputStream, true)
val testBuildfile = Paths.get(SystemProperties.homeDir, "kotlin/klaxon/kobalt/src/Build.kt")
.toFile().absolutePath
val c : String = """{ "name": "getDependencies", "buildFile": "$testBuildfile"}"""
outgoing!!.println(c)
val ins = BufferedReader(InputStreamReader(socket.inputStream))
var line = ins.readLine()
while (! done && line != null) {
log(1, "Received from server:\n" + line)
val jo = JsonParser().parse(line) as JsonObject
if (jo.has("name") && "quit" == jo.get("name").asString.toLowerCase()) {
log(1, "Quitting")
// outgoing!!.println("{ \"name\": \"Quit\" }")
done = true
} else {
val data = jo.get("data").asString
val dd = Gson().fromJson(data, DependencyData.GetDependenciesData::class.java)
println("Read GetDependencyData, project count: ${dd.projects.size}")
line = ins.readLine()
}
}
} catch(ex: ConnectException) {
log(1, "Server not up, sleeping a bit")
Thread.sleep(2000)
attempts++
}
}
}
}

View file

@ -1,5 +1,6 @@
package com.beust.kobalt.app.remote package com.beust.kobalt.app.remote
import com.beust.kobalt.Args
import com.beust.kobalt.api.Kobalt import com.beust.kobalt.api.Kobalt
import com.beust.kobalt.api.Project import com.beust.kobalt.api.Project
import com.beust.kobalt.homeDir import com.beust.kobalt.homeDir
@ -11,12 +12,21 @@ import com.beust.kobalt.misc.log
import com.google.gson.Gson import com.google.gson.Gson
import com.google.gson.JsonObject import com.google.gson.JsonObject
import com.google.gson.JsonParser import com.google.gson.JsonParser
import org.glassfish.jersey.jetty.JettyHttpContainerFactory
import org.glassfish.jersey.server.ResourceConfig
import org.glassfish.jersey.server.ServerProperties
import java.io.* import java.io.*
import java.lang.management.ManagementFactory import java.lang.management.ManagementFactory
import java.net.ServerSocket import java.net.ServerSocket
import java.net.SocketException import java.net.SocketException
import java.util.* import java.util.*
import java.util.concurrent.Callable import java.util.concurrent.Callable
import javax.ws.rs.GET
import javax.ws.rs.Path
import javax.ws.rs.Produces
import javax.ws.rs.QueryParam
import javax.ws.rs.core.MediaType
import javax.ws.rs.core.UriBuilder
/** /**
* Launch a Kobalt server. If @param{force} is specified, a new server will be launched even if one was detected * Launch a Kobalt server. If @param{force} is specified, a new server will be launched even if one was detected
@ -31,6 +41,16 @@ class KobaltServer(val force: Boolean, val port: Int = 1234,
// var outgoing: PrintWriter? = null // var outgoing: PrintWriter? = null
val pending = arrayListOf<CommandData>() val pending = arrayListOf<CommandData>()
companion object {
lateinit var initCallback: (String) -> List<Project>
lateinit var cleanUpCallback: () -> Unit
}
init {
KobaltServer.initCallback = initCallback
KobaltServer.cleanUpCallback = cleanUpCallback
}
private val COMMAND_CLASSES = listOf(GetDependenciesCommand::class.java, PingCommand::class.java) private val COMMAND_CLASSES = listOf(GetDependenciesCommand::class.java, PingCommand::class.java)
private val COMMANDS = COMMAND_CLASSES.map { private val COMMANDS = COMMAND_CLASSES.map {
Kobalt.INJECTOR.getInstance(it).let { Pair(it.name, it) } Kobalt.INJECTOR.getInstance(it).let { Pair(it.name, it) }
@ -39,8 +59,9 @@ class KobaltServer(val force: Boolean, val port: Int = 1234,
override fun call() : Int { override fun call() : Int {
val availablePort = ProcessUtil.findAvailablePort(port) val availablePort = ProcessUtil.findAvailablePort(port)
try { try {
if (createServerFile(availablePort, force)) { if (createServerFile(port, force)) {
privateRun(availablePort) // oldRun(port)
privateRun(port)
} }
} catch(ex: Exception) { } catch(ex: Exception) {
ex.printStackTrace() ex.printStackTrace()
@ -97,8 +118,50 @@ class KobaltServer(val force: Boolean, val port: Int = 1234,
} }
} }
@Path("/v0")
class MyResource : ResourceConfig() {
init {
property(ServerProperties.TRACING, "ALL")
}
@GET
@Path("getDependencies")
@Produces(MediaType.APPLICATION_JSON)
fun getDependencies(@QueryParam("buildFile") buildFile: String) : String {
try {
val dependencyData = Kobalt.INJECTOR.getInstance(DependencyData::class.java)
val args = Kobalt.INJECTOR.getInstance(Args::class.java)
val projects = initCallback(buildFile)
val dd = dependencyData.dependenciesDataFor(buildFile, args)
val data = CommandData("getDependencies", Gson().toJson(dd), dd.errorMessage)
return Gson().toJson(data)
} catch(ex: Exception) {
return "Error: " + ex.message
} finally {
cleanUpCallback()
}
}
}
private fun privateRun(port: Int) { private fun privateRun(port: Int) {
log(1, "Listening to port $port") log(1, "Listening to port $port")
val baseUri = UriBuilder.fromUri("http://localhost/").port(port).build()
val config = ResourceConfig(MyResource::class.java)
with (JettyHttpContainerFactory.createServer(baseUri, config)) {
try {
start()
join()
} finally {
destroy()
}
}
}
private fun oldRun(port: Int) {
log(1, "Listening to port $port")
var quit = false var quit = false
serverInfo = ServerInfo(port) serverInfo = ServerInfo(port)
while (!quit) { while (!quit) {