diff options
author | Maria Sokolova <maria.sokolova@jetbrains.com> | 2024-01-17 17:44:28 +0100 |
---|---|---|
committer | Maria Sokolova <maria.sokolova@jetbrains.com> | 2024-01-17 17:44:28 +0100 |
commit | 6c7ca4b03d465f9f2ac399e9f11ef4b6a312f1d0 (patch) | |
tree | d9594cc0e4e77b9ca3bac63258f321798c1473e6 | |
parent | 31fe3fdffe6f4fb61d76b1f6942fbba2f140731a (diff) | |
download | kotlinx.atomicfu-6c7ca4b03d465f9f2ac399e9f11ef4b6a312f1d0.tar.gz |
Copy outputs of compileJava tasks to the transformed directory.
Java classes missed in the transformed atomicfu directory, because originalClassesDirs contained only outputs of compileKotlin tasks. This bug was introduced in #303.
Added a test for jar packing as well, as it was an initial problem that was fixed in #303.
Fixes #388
3 files changed, 11 insertions, 4 deletions
diff --git a/atomicfu-gradle-plugin/src/main/kotlin/kotlinx/atomicfu/plugin/gradle/AtomicFUGradlePlugin.kt b/atomicfu-gradle-plugin/src/main/kotlin/kotlinx/atomicfu/plugin/gradle/AtomicFUGradlePlugin.kt index 42c2bc9..eb4d858 100644 --- a/atomicfu-gradle-plugin/src/main/kotlin/kotlinx/atomicfu/plugin/gradle/AtomicFUGradlePlugin.kt +++ b/atomicfu-gradle-plugin/src/main/kotlin/kotlinx/atomicfu/plugin/gradle/AtomicFUGradlePlugin.kt @@ -337,9 +337,8 @@ private fun Project.configureTransformationForTarget(target: KotlinTarget) { it.destinationDirectory.value(originalDestinationDirectory) } } - val originalClassesDirs: FileCollection = project.objects.fileCollection().from( - compilationTask.flatMap { it.destinationDirectory } - ) + val originalClassesDirs: FileCollection = + project.files(classesDirs.from.toTypedArray()).filter { it.exists() } originalDirsByCompilation[compilation] = originalClassesDirs val transformedClassesDir = project.layout.buildDirectory .dir("classes/atomicfu/${target.name}/${compilation.name}") diff --git a/integration-testing/src/functionalTest/kotlin/kotlinx.atomicfu.gradle.plugin.test/cases/JvmProjectTest.kt b/integration-testing/src/functionalTest/kotlin/kotlinx.atomicfu.gradle.plugin.test/cases/JvmProjectTest.kt index 54198c7..15dea5a 100644 --- a/integration-testing/src/functionalTest/kotlin/kotlinx.atomicfu.gradle.plugin.test/cases/JvmProjectTest.kt +++ b/integration-testing/src/functionalTest/kotlin/kotlinx.atomicfu.gradle.plugin.test/cases/JvmProjectTest.kt @@ -6,7 +6,7 @@ package kotlinx.atomicfu.gradle.plugin.test.cases import kotlinx.atomicfu.gradle.plugin.test.framework.checker.* import kotlinx.atomicfu.gradle.plugin.test.framework.runner.* -import kotlin.test.Test +import kotlin.test.* class JvmProjectTest { @@ -27,4 +27,10 @@ class JvmProjectTest { jvmSample.checkConsumableDependencies() jvmSample.buildAndCheckBytecode() } + + // This test checks that jar is packed without duplicates, see #303 + @Test + fun testJar() { + assertTrue(jvmSample.cleanAndJar().isSuccessful) + } } diff --git a/integration-testing/src/functionalTest/kotlin/kotlinx.atomicfu.gradle.plugin.test/framework/runner/Commands.kt b/integration-testing/src/functionalTest/kotlin/kotlinx.atomicfu.gradle.plugin.test/framework/runner/Commands.kt index a5455ce..73346bf 100644 --- a/integration-testing/src/functionalTest/kotlin/kotlinx.atomicfu.gradle.plugin.test/framework/runner/Commands.kt +++ b/integration-testing/src/functionalTest/kotlin/kotlinx.atomicfu.gradle.plugin.test/framework/runner/Commands.kt @@ -8,6 +8,8 @@ import kotlinx.atomicfu.gradle.plugin.test.framework.checker.getProjectClasspath internal fun GradleBuild.cleanAndBuild(): BuildResult = runGradle(listOf("clean", "build")) +internal fun GradleBuild.cleanAndJar(): BuildResult = runGradle(listOf("clean", "jar")) + internal fun GradleBuild.dependencies(): BuildResult = runGradle(listOf("dependencies")).also { require(it.isSuccessful) { "${this.projectName}:dependencies task FAILED: ${it.output} " } |