From e1adc87281d7217412681bc91d19af31ba2ca6a4 Mon Sep 17 00:00:00 2001 From: Juan Liska Date: Sun, 16 Sep 2018 09:48:37 -0600 Subject: [PATCH 1/6] add a test for kotlinCompiler version setting --- .../internal/KotlinCompilerVersionTest.kt | 58 +++++++++++++++++++ 1 file changed, 58 insertions(+) create mode 100644 src/test/kotlin/com/beust/kobalt/internal/KotlinCompilerVersionTest.kt diff --git a/src/test/kotlin/com/beust/kobalt/internal/KotlinCompilerVersionTest.kt b/src/test/kotlin/com/beust/kobalt/internal/KotlinCompilerVersionTest.kt new file mode 100644 index 00000000..cc61c156 --- /dev/null +++ b/src/test/kotlin/com/beust/kobalt/internal/KotlinCompilerVersionTest.kt @@ -0,0 +1,58 @@ +package com.beust.kobalt.internal + +import com.beust.kobalt.BaseTest +import com.beust.kobalt.BuildFile +import com.beust.kobalt.ProjectFile +import com.beust.kobalt.ProjectInfo +import com.beust.kobalt.misc.KFiles +import org.assertj.core.api.Assertions.assertThat +import org.testng.annotations.Test +import java.io.File + +class KotlinCompilerVersionTest : BaseTest() { + + @Test + fun shouldCompileWithExternalKotlin() { + val projectInfo = ProjectInfo( + BuildFile( + listOf("com.beust.kobalt.plugin.packaging.*", "com.beust.kobalt.plugin.kotlin.kotlinCompiler"), + """ + kotlinCompiler { + version = "1.2.60" + args("-jvm-target", "1.8") + } + assemble{ jar{} } + """ + ), + listOf( + ProjectFile("src/main/kotlin/A.kt", "val a = Bob()"), + ProjectFile("src/main/kotlin/Bob.java", "class Bob { }") + ) + ) + + val result = launchProject(projectInfo, arrayOf("assemble")) + + val project = result.projectDescription + val jarFile = File(KFiles.joinDir(project.file.absolutePath, "kobaltBuild/libs", project.name + "-" + + project.version + ".jar")) + + assertThat(jarFile).exists() + } + + @Test + fun shouldFailWhenKotlinVersionDoesNotExist() { + val projectInfo = ProjectInfo( + BuildFile( + listOf("com.beust.kobalt.plugin.packaging.*", "com.beust.kobalt.plugin.kotlin.kotlinCompiler"), + """ + kotlinCompiler { version = "1.1.20" } + assemble{ jar{} } + """ + ), + listOf(ProjectFile("src/main/kotlin/A.kt", "val a = \"foo\""))) + + val result = launchProject(projectInfo, arrayOf("assemble")) + + assertThat(result).isEqualTo(1) + } +} From 347537718533b7aa7e7d52bd315f592ccda008c1 Mon Sep 17 00:00:00 2001 From: Juan Liska Date: Sun, 16 Sep 2018 09:57:37 -0600 Subject: [PATCH 2/6] add Args parameter to newReposityrSystemSession call --- src/test/kotlin/com/beust/kobalt/misc/MavenResolverTest.kt | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/test/kotlin/com/beust/kobalt/misc/MavenResolverTest.kt b/src/test/kotlin/com/beust/kobalt/misc/MavenResolverTest.kt index 5b1c3458..4cee6077 100644 --- a/src/test/kotlin/com/beust/kobalt/misc/MavenResolverTest.kt +++ b/src/test/kotlin/com/beust/kobalt/misc/MavenResolverTest.kt @@ -1,5 +1,6 @@ package com.beust.kobalt.misc +import com.beust.kobalt.Args import com.beust.kobalt.BaseTest import com.beust.kobalt.internal.KobaltSettings import com.beust.kobalt.internal.KobaltSettingsXml @@ -95,7 +96,7 @@ class MavenResolverTest : BaseTest() { private fun resolve(id: String): List { val system = Booter.newRepositorySystem() val session = Booter.newRepositorySystemSession(system, - localRepo.localRepo, KobaltSettings(KobaltSettingsXml()), EventBus()) + localRepo.localRepo, KobaltSettings(KobaltSettingsXml()), Args(), EventBus()) val artifact = DefaultArtifact(id) val collectRequest = CollectRequest().apply { From 42bd2ecdf1d6d0287dc92b00838cfe6850b2ff67 Mon Sep 17 00:00:00 2001 From: Juan Liska Date: Sun, 16 Sep 2018 10:01:59 -0600 Subject: [PATCH 3/6] extend timeout, add logging --- .../src/main/kotlin/com/beust/kobalt/misc/NewRunCommand.kt | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/modules/kobalt-plugin-api/src/main/kotlin/com/beust/kobalt/misc/NewRunCommand.kt b/modules/kobalt-plugin-api/src/main/kotlin/com/beust/kobalt/misc/NewRunCommand.kt index 25742fee..a41f27d0 100644 --- a/modules/kobalt-plugin-api/src/main/kotlin/com/beust/kobalt/misc/NewRunCommand.kt +++ b/modules/kobalt-plugin-api/src/main/kotlin/com/beust/kobalt/misc/NewRunCommand.kt @@ -79,7 +79,7 @@ open class NewRunCommand(val info: RunCommandInfo) { val process = pb.start() // Run the command and collect the return code and streams - val returnCode = process.waitFor(30, TimeUnit.SECONDS) + val returnCode = process.waitFor(60, TimeUnit.SECONDS) val input = if (process.inputStream.available() > 0) fromStream(process.inputStream) else listOf() @@ -87,12 +87,15 @@ open class NewRunCommand(val info: RunCommandInfo) { if (process.errorStream.available() > 0) fromStream(process.errorStream) else listOf() + kobaltLog(3, "info contains errors: " + (info.containsErrors != null)) + // Check to see if the command succeeded val isSuccess = if (info.containsErrors != null) ! info.containsErrors!!(error) else isSuccess(if (info.ignoreExitValue) true else returnCode, input, error) if (isSuccess) { + kobaltLog(3, "success so far") if (!info.useErrorStreamAsErrorIndicator) { info.successCallback(error + input) } else { From 39801a5a24270de6713e7e11541e8e29612bb0d5 Mon Sep 17 00:00:00 2001 From: Juan Liska Date: Mon, 17 Sep 2018 04:55:10 -0600 Subject: [PATCH 4/6] upgrade default compiler to 1.2.70 --- .../src/main/kotlin/com/beust/kobalt/Constants.kt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/kobalt-plugin-api/src/main/kotlin/com/beust/kobalt/Constants.kt b/modules/kobalt-plugin-api/src/main/kotlin/com/beust/kobalt/Constants.kt index 0dba3e61..053d0b92 100644 --- a/modules/kobalt-plugin-api/src/main/kotlin/com/beust/kobalt/Constants.kt +++ b/modules/kobalt-plugin-api/src/main/kotlin/com/beust/kobalt/Constants.kt @@ -9,7 +9,7 @@ object Constants { val BUILD_FILE_NAME = "Build.kt" val BUILD_FILE_DIRECTORY = "kobalt/src" val BUILD_FILE_PATH = KFiles.joinDir(BUILD_FILE_DIRECTORY, BUILD_FILE_NAME) - val KOTLIN_COMPILER_VERSION = "1.2.10" + val KOTLIN_COMPILER_VERSION = "1.2.70" internal val DEFAULT_REPOS = listOf( // "https://maven-central.storage.googleapis.com/", From 7cf19b3f9540d19a221971ccbaa45f3dc87cb8b3 Mon Sep 17 00:00:00 2001 From: Juan Liska Date: Mon, 17 Sep 2018 05:00:19 -0600 Subject: [PATCH 5/6] fix test assertion, enable kobalt logging for tests --- .../main/kotlin/com/beust/kobalt/misc/KobaltLogger.kt | 10 +++++++++- src/main/kotlin/com/beust/kobalt/Main.kt | 6 +----- src/test/kotlin/com/beust/kobalt/BaseTest.kt | 4 ++++ .../beust/kobalt/internal/KotlinCompilerVersionTest.kt | 10 +++++----- 4 files changed, 19 insertions(+), 11 deletions(-) diff --git a/modules/kobalt-plugin-api/src/main/kotlin/com/beust/kobalt/misc/KobaltLogger.kt b/modules/kobalt-plugin-api/src/main/kotlin/com/beust/kobalt/misc/KobaltLogger.kt index 67d31496..e2bd89de 100644 --- a/modules/kobalt-plugin-api/src/main/kotlin/com/beust/kobalt/misc/KobaltLogger.kt +++ b/modules/kobalt-plugin-api/src/main/kotlin/com/beust/kobalt/misc/KobaltLogger.kt @@ -51,7 +51,7 @@ fun Any.error(text: CharSequence, e: Throwable? = null) { object KobaltLogger { var LOG_LEVEL: Int = 1 - + val isQuiet: Boolean get() = (LOG_LEVEL == Constants.LOG_QUIET_LEVEL) val logger: Logger get() = @@ -60,6 +60,14 @@ object KobaltLogger { } else { Logger(false) } + + fun setLogLevel(args: Args) { + LOG_LEVEL = when { + args.log < Constants.LOG_QUIET_LEVEL -> Constants.LOG_DEFAULT_LEVEL + args.log > Constants.LOG_MAX_LEVEL -> Constants.LOG_MAX_LEVEL + else -> args.log + } + } } class Logger(val dev: Boolean) { diff --git a/src/main/kotlin/com/beust/kobalt/Main.kt b/src/main/kotlin/com/beust/kobalt/Main.kt index 1cfa9902..19b85404 100644 --- a/src/main/kotlin/com/beust/kobalt/Main.kt +++ b/src/main/kotlin/com/beust/kobalt/Main.kt @@ -55,11 +55,7 @@ class Main @Inject constructor( val args = Args() val result = JCommander(args) result.parse(*argv) - KobaltLogger.LOG_LEVEL = if (args.log < Constants.LOG_QUIET_LEVEL) { - Constants.LOG_DEFAULT_LEVEL - } else if (args.log > Constants.LOG_MAX_LEVEL) { - Constants.LOG_MAX_LEVEL - } else args.log + KobaltLogger.setLogLevel(args) return Main.RunInfo(result, args) } diff --git a/src/test/kotlin/com/beust/kobalt/BaseTest.kt b/src/test/kotlin/com/beust/kobalt/BaseTest.kt index 51bbcf5e..3930f318 100644 --- a/src/test/kotlin/com/beust/kobalt/BaseTest.kt +++ b/src/test/kotlin/com/beust/kobalt/BaseTest.kt @@ -9,6 +9,7 @@ import com.beust.kobalt.internal.KobaltPluginXml import com.beust.kobalt.internal.PluginInfo import com.beust.kobalt.internal.build.SingleFileBuildSources import com.beust.kobalt.misc.KFiles +import com.beust.kobalt.misc.KobaltLogger import com.beust.kobalt.misc.log import org.testng.annotations.BeforeClass import org.testng.annotations.Guice @@ -121,6 +122,9 @@ open class BaseTest(val compilerFactory: BuildFileCompiler.IFactory? = null) { val main = Kobalt.INJECTOR.getInstance(Main::class.java) val args = Args() val jc = JCommander(args).apply { parse(*commandLine) } + + KobaltLogger.setLogLevel(args) + args.buildFile = KFiles.fixSlashes(project.file.absolutePath) + "/kobalt/src/Build.kt" val result = Main.launchMain(main, jc, args, arrayOf("assemble")) return LaunchProjectResult(project, result) diff --git a/src/test/kotlin/com/beust/kobalt/internal/KotlinCompilerVersionTest.kt b/src/test/kotlin/com/beust/kobalt/internal/KotlinCompilerVersionTest.kt index cc61c156..21eb6edc 100644 --- a/src/test/kotlin/com/beust/kobalt/internal/KotlinCompilerVersionTest.kt +++ b/src/test/kotlin/com/beust/kobalt/internal/KotlinCompilerVersionTest.kt @@ -19,7 +19,6 @@ class KotlinCompilerVersionTest : BaseTest() { """ kotlinCompiler { version = "1.2.60" - args("-jvm-target", "1.8") } assemble{ jar{} } """ @@ -30,7 +29,7 @@ class KotlinCompilerVersionTest : BaseTest() { ) ) - val result = launchProject(projectInfo, arrayOf("assemble")) + val result = launchProject(projectInfo, arrayOf("assemble", "--log", "2")) val project = result.projectDescription val jarFile = File(KFiles.joinDir(project.file.absolutePath, "kobaltBuild/libs", project.name + "-" @@ -49,10 +48,11 @@ class KotlinCompilerVersionTest : BaseTest() { assemble{ jar{} } """ ), - listOf(ProjectFile("src/main/kotlin/A.kt", "val a = \"foo\""))) + listOf(ProjectFile("src/main/kotlin/A.kt", "val a = \"foo\"")) + ) - val result = launchProject(projectInfo, arrayOf("assemble")) + val result = launchProject(projectInfo, arrayOf("assemble", "--log", "2")) - assertThat(result).isEqualTo(1) + assertThat(result.result).isEqualTo(1) } } From 65aedfebdcc76f4bafc60122b36d1c4173ea0e04 Mon Sep 17 00:00:00 2001 From: Juan Liska Date: Mon, 17 Sep 2018 05:09:43 -0600 Subject: [PATCH 6/6] bump version to 1.0.115 --- src/main/resources/kobalt.properties | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/resources/kobalt.properties b/src/main/resources/kobalt.properties index d630dffa..68b3ef5b 100644 --- a/src/main/resources/kobalt.properties +++ b/src/main/resources/kobalt.properties @@ -1 +1 @@ -kobalt.version=1.0.114 \ No newline at end of file +kobalt.version=1.0.115 \ No newline at end of file