diff --git a/.github/dependabot.yml b/.github/dependabot.yml index 91298fe..26e5edc 100644 --- a/.github/dependabot.yml +++ b/.github/dependabot.yml @@ -36,15 +36,6 @@ updates: open-pull-requests-limit: 50 schedule: interval: monthly - - package-ecosystem: gradle - directory: /test-project-kotlin-pre-1-7 - open-pull-requests-limit: 50 - schedule: - interval: monthly - ignore: - - dependency-name: "org.jetbrains.kotlin.jvm:org.jetbrains.kotlin.jvm.gradle.plugin" - # This pre-Kotlin-1.7 project must not have the Kotlin major version updated: - update-types: [ "version-update:semver-major" ] - package-ecosystem: gradle directory: /test-project-mixed open-pull-requests-limit: 50 diff --git a/README.md b/README.md index 6537db1..ba55d8b 100644 --- a/README.md +++ b/README.md @@ -22,8 +22,8 @@ The plugin currently supports: The plugin supports the following test engines: -* JUnit 5 -* JUnit 4 +* JUnit 5 (for JUnit versions before 5.8.0 use plugin version v1.8.15, higher versions of JUnit 5 can use the latest version of the plugin) +* JUnit 4 (Use plugin version v1.8.15) * TestNG * ![Since 1.7.0](https://img.shields.io/badge/since-1.7.0-brightgreen) Spock 2 with Groovy 3 * ![Since 1.7.0](https://img.shields.io/badge/since-1.7.0-brightgreen) AssertJ @@ -102,10 +102,10 @@ subprojects { } dependencies { - testImplementation 'org.junit.jupiter:junit-jupiter-api:5.10.2' - testImplementation 'org.junit.jupiter:junit-jupiter-params:5.10.2' - testImplementation 'org.junit.jupiter:junit-jupiter-engine:5.10.2' - testRuntimeOnly "org.junit.platform:junit-platform-launcher:1.10.2" + testImplementation 'org.junit.jupiter:junit-jupiter-api:5.14.0' + testImplementation 'org.junit.jupiter:junit-jupiter-params:5.14.0' + testImplementation 'org.junit.jupiter:junit-jupiter-engine:5.14.0' + testRuntimeOnly "org.junit.platform:junit-platform-launcher:1.14.0" } } ``` @@ -144,10 +144,10 @@ subprojects { } dependencies { - testImplementation("org.junit.jupiter:junit-jupiter-api:5.10.1") - testImplementation("org.junit.jupiter:junit-jupiter-params:5.10.2") - testImplementation("org.junit.jupiter:junit-jupiter-engine:5.10.2") - testRuntimeOnly("org.junit.platform:junit-platform-launcher:1.10.2") + testImplementation("org.junit.jupiter:junit-jupiter-api:5.14.0") + testImplementation("org.junit.jupiter:junit-jupiter-params:5.14.0") + testImplementation("org.junit.jupiter:junit-jupiter-engine:5.14.0") + testRuntimeOnly("org.junit.platform:junit-platform-launcher:1.14.0") } } ``` diff --git a/build.gradle b/build.gradle index 52566f7..f78bd6f 100644 --- a/build.gradle +++ b/build.gradle @@ -31,7 +31,7 @@ configurations { compile.extendsFrom plugin } -def jUnitVersion = '5.10.2' +def jUnitVersion = '5.14.0' dependencies { implementation gradleApi() diff --git a/src/test/java/org/javamodularity/moduleplugin/ModulePluginSmokeTest.java b/src/test/java/org/javamodularity/moduleplugin/ModulePluginSmokeTest.java index b10be5c..e35d6ab 100644 --- a/src/test/java/org/javamodularity/moduleplugin/ModulePluginSmokeTest.java +++ b/src/test/java/org/javamodularity/moduleplugin/ModulePluginSmokeTest.java @@ -36,7 +36,7 @@ class ModulePluginSmokeTest { @SuppressWarnings("unused") private enum GradleVersion { v8_11, v8_14_3, - v9_0, v9_1_0 + v9_0, v9_2_0 ; @Override @@ -58,14 +58,11 @@ void before() throws IOException { void smokeTest( @CartesianTest.Values(strings = { "test-project", - "test-project-kotlin-pre-1-7", "test-project-kotlin", "test-project-groovy" }) String projectName, @CartesianTest.Enum GradleVersion gradleVersion) { LOGGER.lifecycle("Executing smokeTest of {} with Gradle {}", projectName, gradleVersion); - assumeTrue(jdkSupported(gradleVersion)); - assumeTrue(checkKotlinCombination(projectName, gradleVersion)); var result = GradleRunner.create() .withProjectDir(new File(projectName + "/")) .withPluginClasspath(pluginClasspath) @@ -88,14 +85,11 @@ void smokeTest( void smokeTestRun( @CartesianTest.Values(strings = { "test-project", - "test-project-kotlin-pre-1-7", "test-project-kotlin", "test-project-groovy" }) String projectName, @CartesianTest.Enum GradleVersion gradleVersion) { LOGGER.lifecycle("Executing smokeTestRun of {} with Gradle {}", projectName, gradleVersion); - assumeTrue(jdkSupported(gradleVersion)); - assumeTrue(checkKotlinCombination(projectName, gradleVersion)); var writer = new StringWriter(256); var result = GradleRunner.create() .withProjectDir(new File(projectName + "/")) @@ -117,18 +111,14 @@ void smokeTestRun( @CartesianTest(name = "smokeTestJunit5({arguments})") void smokeTestJunit5( @CartesianTest.Values(strings = { - "5.4.2/1.4.2", - "5.5.2/1.5.2", - "5.7.1/1.7.1", "5.8.0/1.8.0", - "5.10.2/1.10.2" + "5.10.2/1.10.2", + "5.14.0/1.14.0" }) String junitVersionPair, @CartesianTest.Enum GradleVersion gradleVersion) { LOGGER.lifecycle("Executing smokeTestJunit5 with junitVersionPair {} and Gradle {}", junitVersionPair, gradleVersion); - assumeTrue(jdkSupported(gradleVersion)); var junitVersionParts = junitVersionPair.split("/"); final String junitVersion = junitVersionParts[0]; - assumeTrue(checkJUnitCombination(junitVersion, gradleVersion)); var junitVersionProperty = String.format("-PjUnitVersion=%s", junitVersion); var junitPlatformVersionProperty = String.format("-PjUnitPlatformVersion=%s", junitVersionParts[1]); var result = GradleRunner.create() @@ -148,7 +138,6 @@ void smokeTestJunit5( @CartesianTest(name = "smokeTestMixed({arguments})") void smokeTestMixed(@CartesianTest.Enum GradleVersion gradleVersion) { LOGGER.lifecycle("Executing smokeTestMixed with Gradle {}", gradleVersion); - assumeTrue(jdkSupported(gradleVersion)); var result = GradleRunner.create() .withProjectDir(new File("test-project-mixed")) .withPluginClasspath(pluginClasspath) @@ -200,14 +189,11 @@ private static void assertExpectedClassFileFormats( void smokeTestDist( @CartesianTest.Values(strings = { "test-project", - "test-project-kotlin-pre-1-7", "test-project-kotlin", "test-project-groovy" }) String projectName, @CartesianTest.Enum GradleVersion gradleVersion) { LOGGER.lifecycle("Executing smokeTestDist of {} with Gradle {}", projectName, gradleVersion); - assumeTrue(jdkSupported(gradleVersion)); - assumeTrue(checkKotlinCombination(projectName, gradleVersion)); var result = GradleRunner.create() .withProjectDir(new File(projectName + "/")) .withPluginClasspath(pluginClasspath) @@ -247,14 +233,11 @@ void smokeTestDist( void smokeTestRunDemo( @CartesianTest.Values(strings = { "test-project", - "test-project-kotlin-pre-1-7", "test-project-kotlin", "test-project-groovy" }) String projectName, @CartesianTest.Enum GradleVersion gradleVersion) { LOGGER.lifecycle("Executing smokeTestRunDemo of {} with Gradle {}", projectName, gradleVersion); - assumeTrue(jdkSupported(gradleVersion)); - assumeTrue(checkKotlinCombination(projectName, gradleVersion)); var result = GradleRunner.create() .withProjectDir(new File(projectName + "/")) .withPluginClasspath(pluginClasspath) @@ -272,14 +255,11 @@ void smokeTestRunDemo( void smokeTestRunStartScripts( @CartesianTest.Values(strings = { "test-project", - "test-project-kotlin-pre-1-7", "test-project-kotlin", "test-project-groovy" }) String projectName, @CartesianTest.Enum GradleVersion gradleVersion) { LOGGER.lifecycle("Executing smokeTestRunScripts of {} with Gradle {}", projectName, gradleVersion); - assumeTrue(jdkSupported(gradleVersion)); - assumeTrue(checkKotlinCombination(projectName, gradleVersion)); var result = GradleRunner.create() .withProjectDir(new File(projectName + "/")) .withPluginClasspath(pluginClasspath) @@ -313,54 +293,4 @@ private static void assertOutputDoesNotContain(BuildResult result, String text) final String output = result.getOutput(); assertFalse(output.contains(text), "Output should not contain '" + text + "', but was: " + output); } - - private static boolean checkKotlinCombination(String projectName, GradleVersion gradleVersion) { - final boolean kotlin_NotSupported = projectName.startsWith("test-project-kotlin") && gradleVersion.toString().compareTo("6.4") < 0; - final boolean kotlinPost1_7_NotSupported = projectName.equals("test-project-kotlin") && gradleVersion.toString().compareTo("6.6") < 0; - final boolean kotlinPre1_7_NotSupported = projectName.equals("test-project-kotlin-pre-1-7") && gradleVersion.toString().compareTo("8.0") >= 0; - if (kotlin_NotSupported || kotlinPost1_7_NotSupported || kotlinPre1_7_NotSupported) { - LOGGER.lifecycle("Unsupported combination: {} / Gradle {}. Test skipped", projectName, gradleVersion); - return false; - } - return true; - } - - private boolean checkJUnitCombination(final String junitVersion, final GradleVersion gradleVersion) { - final boolean gradleEighthPlus = gradleVersion.ordinal() >= GradleVersion.v8_11.ordinal(); - final Matcher m = SEMANTIC_VERSION.matcher(junitVersion); - assumeTrue(m.matches(), "JUnit version not semantic: " + junitVersion); - final boolean junitOlderThan5_8_0 = Integer.parseInt(m.group("major")) < 5 || - (Integer.parseInt(m.group("major")) == 5 && Integer.parseInt(m.group("minor")) < 8); - - if (gradleEighthPlus && junitOlderThan5_8_0) { - LOGGER.lifecycle("Unsupported JUnit and Gradle combination. Gradle: {}, JUnit: {}: Test skipped", gradleVersion, junitVersion); - return false; - } - return true; - } - - private static int javaMajorVersion() { - final String version = System.getProperty("java.version"); - - // Java 9+ (9.0.1, 11.0.2, 17.0.2 format) - int dotIndex = version.indexOf("."); - if (dotIndex == -1) { - // Handle cases like "17" without dot - return Integer.parseInt(version); - } - - return Integer.parseInt(version.substring(0, dotIndex)); - } - - private boolean jdkSupported(final GradleVersion gradleVersion) { - final int javaMajor = javaMajorVersion(); - - // All supported Gradle versions (8.11+) require Java 17+ - if (javaMajor < 17) { - LOGGER.lifecycle("Gradle {} requires Java 17+, but running Java {}: Test skipped", gradleVersion, javaMajor); - return false; - } - - return true; - } } diff --git a/test-project-groovy/gradle.properties b/test-project-groovy/gradle.properties index ab1f457..1206691 100644 --- a/test-project-groovy/gradle.properties +++ b/test-project-groovy/gradle.properties @@ -1,2 +1,2 @@ -jUnitVersion = 5.10.2 -jUnitPlatformVersion = 1.10.2 +jUnitVersion = 5.14.0 +jUnitPlatformVersion = 1.14.0 \ No newline at end of file diff --git a/test-project-kotlin-pre-1-7/README.md b/test-project-kotlin-pre-1-7/README.md deleted file mode 100644 index 58bcca6..0000000 --- a/test-project-kotlin-pre-1-7/README.md +++ /dev/null @@ -1,40 +0,0 @@ -Introduction -=== - -This Kotlin test project can be used as a standalone test project to verify the published plugin. -It is also used as an internal test project for testing unpublished plugin changes. - -Standalone test product -=== -To run this product as a standalone test product use this command (launched from `test-project-kotlin` directory): -``` -../gradlew clean build -``` - -It will use the most recent plugin version from Gradle maven repository to compile the test project with -modules and run the unit tests. - -Testing locally published plugin -=== - -You can publish the plugin locally by running this command from the root directory: - -`./gradlew publishToMavenLocal` - -You can test the locally published plugin by running the following command from `test-project-kotlin` directory. - -`../gradlew -c local_maven_settings.gradle clean build` - -It will use the locally published version of the plugin to compile the test project with -modules and run the unit tests. - - -Internal test project -=== - -This mode is enabled in `ModulePluginSmokeTest` by passing an extra parameter (`-c smoke_test_settings.gradle`). -`smoke_test_settings.gradle` script configures plugin management for `build.gradle.kts` so that the plugin cannot be resolved from -a Gradle plugin repository. Instead, it relies on the smoke test to make the plugin under development available -to the test project by sharing a classpath (using Gradle TestKit). - -__CAUTION:__ This approach won't work outside of the smoke test, it will break the build because the plugin jar won't be resolved. diff --git a/test-project-kotlin-pre-1-7/build.gradle.kts b/test-project-kotlin-pre-1-7/build.gradle.kts deleted file mode 100644 index b78ee60..0000000 --- a/test-project-kotlin-pre-1-7/build.gradle.kts +++ /dev/null @@ -1,64 +0,0 @@ -import org.jetbrains.kotlin.gradle.tasks.KotlinCompile - -plugins { - kotlin("jvm") version "1.3.72" apply false - id("org.javamodularity.moduleplugin") version "2.0.0" apply false -} - -if (gradle.gradleVersion >= "8.0") { - throw GradleException("The Kotlin version used in this build isn't compatible with Gradle 8. " + - "This project should be excluded when testing with Gradle version 8 and above.") -} - -subprojects { - apply(plugin = "kotlin") - apply(plugin = "org.javamodularity.moduleplugin") - - //region https://docs.gradle.org/current/userguide/kotlin_dsl.html#using_kotlin_delegated_properties - val test by tasks.existing(Test::class) - val build by tasks - val javadoc by tasks - - val implementation by configurations - val testImplementation by configurations - val testRuntimeOnly by configurations - - val jUnitVersion: String by project - val jUnitPlatformVersion: String by project - //endregion - - //region KOTLIN - tasks.withType { - kotlinOptions.jvmTarget = "1.8" - } - dependencies { - implementation(kotlin("stdlib-jdk8")) - } - //endregion - - repositories { - mavenCentral() - } - - configure { - improveEclipseClasspathFile() - moduleVersion("1.2.3") - } - - test { - useJUnitPlatform() - - testLogging { - events("PASSED", "FAILED", "SKIPPED", "STANDARD_OUT") - } - } - - dependencies { - testImplementation("org.junit.jupiter:junit-jupiter-api:$jUnitVersion") - testImplementation("org.junit.jupiter:junit-jupiter-params:$jUnitVersion") - testRuntimeOnly("org.junit.jupiter:junit-jupiter-engine:$jUnitVersion") - testRuntimeOnly("org.junit.platform:junit-platform-launcher:$jUnitPlatformVersion") - } - -// build.dependsOn(javadoc) // TODO: No public or protected classes found to document -} diff --git a/test-project-kotlin-pre-1-7/gradle.properties b/test-project-kotlin-pre-1-7/gradle.properties deleted file mode 100644 index ab1f457..0000000 --- a/test-project-kotlin-pre-1-7/gradle.properties +++ /dev/null @@ -1,2 +0,0 @@ -jUnitVersion = 5.10.2 -jUnitPlatformVersion = 1.10.2 diff --git a/test-project-kotlin-pre-1-7/greeter.api/build.gradle.kts b/test-project-kotlin-pre-1-7/greeter.api/build.gradle.kts deleted file mode 100644 index 1b1e61f..0000000 --- a/test-project-kotlin-pre-1-7/greeter.api/build.gradle.kts +++ /dev/null @@ -1,21 +0,0 @@ -import org.javamodularity.moduleplugin.extensions.CompileModuleOptions -import org.javamodularity.moduleplugin.extensions.TestModuleOptions - -//region NO-OP (DSL testing) -tasks.compileJava { - extensions.configure { - addModules = listOf() - compileModuleInfoSeparately = false - } -} - -tasks.test { - extensions.configure { - addModules = listOf() - runOnClasspath = false - } -} - -modularity { -} -//endregion diff --git a/test-project-kotlin-pre-1-7/greeter.api/src/main/java/module-info.java b/test-project-kotlin-pre-1-7/greeter.api/src/main/java/module-info.java deleted file mode 100644 index 3668393..0000000 --- a/test-project-kotlin-pre-1-7/greeter.api/src/main/java/module-info.java +++ /dev/null @@ -1,4 +0,0 @@ -module greeter.api { - exports examples.greeter.api; - requires kotlin.stdlib; -} diff --git a/test-project-kotlin-pre-1-7/greeter.api/src/main/kotlin/examples/greeter/api/Greeter.kt b/test-project-kotlin-pre-1-7/greeter.api/src/main/kotlin/examples/greeter/api/Greeter.kt deleted file mode 100644 index b3c479e..0000000 --- a/test-project-kotlin-pre-1-7/greeter.api/src/main/kotlin/examples/greeter/api/Greeter.kt +++ /dev/null @@ -1,5 +0,0 @@ -package examples.greeter.api - -interface Greeter { - fun hello(): String -} diff --git a/test-project-kotlin-pre-1-7/greeter.javaexec/build.gradle.kts b/test-project-kotlin-pre-1-7/greeter.javaexec/build.gradle.kts deleted file mode 100644 index f193b76..0000000 --- a/test-project-kotlin-pre-1-7/greeter.javaexec/build.gradle.kts +++ /dev/null @@ -1,28 +0,0 @@ -import org.javamodularity.moduleplugin.tasks.ModularJavaExec - -val moduleName: String by project - -dependencies { - implementation(project(":greeter.api")) - runtimeOnly(project(":greeter.provider")) -} - -patchModules.config = listOf( - "java.annotation=jsr305-3.0.2.jar" -) -modularity { - patchModule("java.annotation", "jsr250-api-1.0.jar") -} - -File("${project.projectDir}/src/main/kotlin/demo") - .listFiles({ _, name -> Regex("Demo.*\\.kt") matches name }) - .forEach { file -> - val demoClassName = file.name.removeSuffix(".kt") - tasks.create("run$demoClassName") { - group = "Demo" - description = "Run the $demoClassName program" - mainClass.set("demo.${demoClassName}Kt") - mainModule.set(moduleName) - jvmArgs = listOf("-Xmx128m") - } - } diff --git a/test-project-kotlin-pre-1-7/greeter.javaexec/src/main/java/module-info.java b/test-project-kotlin-pre-1-7/greeter.javaexec/src/main/java/module-info.java deleted file mode 100644 index c5f2162..0000000 --- a/test-project-kotlin-pre-1-7/greeter.javaexec/src/main/java/module-info.java +++ /dev/null @@ -1,8 +0,0 @@ -import examples.greeter.api.Greeter; - -module greeter.javaexec { - requires greeter.api; - requires kotlin.stdlib; - - uses Greeter; -} diff --git a/test-project-kotlin-pre-1-7/greeter.javaexec/src/main/kotlin/demo/Demo1.kt b/test-project-kotlin-pre-1-7/greeter.javaexec/src/main/kotlin/demo/Demo1.kt deleted file mode 100644 index a94be04..0000000 --- a/test-project-kotlin-pre-1-7/greeter.javaexec/src/main/kotlin/demo/Demo1.kt +++ /dev/null @@ -1,12 +0,0 @@ -package demo - -import examples.greeter.api.Greeter - -import java.util.ServiceLoader - -fun main(args: Array) { - val greeter = ServiceLoader.load(Greeter::class.java) - .findFirst() - .orElseThrow{RuntimeException("No Greeter found!")} - println("Demo1: " + greeter.hello()) -} diff --git a/test-project-kotlin-pre-1-7/greeter.javaexec/src/main/kotlin/demo/Demo2.kt b/test-project-kotlin-pre-1-7/greeter.javaexec/src/main/kotlin/demo/Demo2.kt deleted file mode 100644 index 1b3865b..0000000 --- a/test-project-kotlin-pre-1-7/greeter.javaexec/src/main/kotlin/demo/Demo2.kt +++ /dev/null @@ -1,12 +0,0 @@ -package demo - -import examples.greeter.api.Greeter - -import java.util.ServiceLoader - -fun main(args: Array) { - val greeter = ServiceLoader.load(Greeter::class.java) - .findFirst() - .orElseThrow { RuntimeException("No Greeter found!") } - println("Demo2: " + greeter.hello()) -} diff --git a/test-project-kotlin-pre-1-7/greeter.provider.test/build.gradle.kts b/test-project-kotlin-pre-1-7/greeter.provider.test/build.gradle.kts deleted file mode 100644 index 8a82ac1..0000000 --- a/test-project-kotlin-pre-1-7/greeter.provider.test/build.gradle.kts +++ /dev/null @@ -1,13 +0,0 @@ -dependencies { - implementation(project(":greeter.api")) - runtimeOnly(project(":greeter.provider")) -} - -modularity { - patchModule("java.annotation", "jsr305-3.0.2.jar") - patchModule("java.annotation", "jsr250-api-1.0.jar") -} - -val compileTestJava: JavaCompile by tasks.named("compileTestJava") -val moduleOptions: org.javamodularity.moduleplugin.extensions.ModuleOptions by compileTestJava.extensions -moduleOptions.addModules = listOf("jdk.unsupported") diff --git a/test-project-kotlin-pre-1-7/greeter.provider.test/src/main/java/module-info.java b/test-project-kotlin-pre-1-7/greeter.provider.test/src/main/java/module-info.java deleted file mode 100644 index 35af0fc..0000000 --- a/test-project-kotlin-pre-1-7/greeter.provider.test/src/main/java/module-info.java +++ /dev/null @@ -1,7 +0,0 @@ -import examples.greeter.api.Greeter; - -module greeter.provider.test { - requires greeter.api; - requires kotlin.stdlib; - uses Greeter; -} diff --git a/test-project-kotlin-pre-1-7/greeter.provider.test/src/main/kotlin/tests/GreeterLocator.kt b/test-project-kotlin-pre-1-7/greeter.provider.test/src/main/kotlin/tests/GreeterLocator.kt deleted file mode 100644 index ad4ec65..0000000 --- a/test-project-kotlin-pre-1-7/greeter.provider.test/src/main/kotlin/tests/GreeterLocator.kt +++ /dev/null @@ -1,13 +0,0 @@ -package tests - -import examples.greeter.api.Greeter - -import java.util.ServiceLoader - -class GreeterLocator { - fun findGreeter(): Greeter { - return ServiceLoader.load(Greeter::class.java) - .findFirst() - .orElseThrow{RuntimeException("No Greeter found")} - } -} diff --git a/test-project-kotlin-pre-1-7/greeter.provider.test/src/test/kotlin/tests/GreeterTest.kt b/test-project-kotlin-pre-1-7/greeter.provider.test/src/test/kotlin/tests/GreeterTest.kt deleted file mode 100644 index 22ceefa..0000000 --- a/test-project-kotlin-pre-1-7/greeter.provider.test/src/test/kotlin/tests/GreeterTest.kt +++ /dev/null @@ -1,13 +0,0 @@ -package tests - -import org.junit.jupiter.api.Test - -import org.junit.jupiter.api.Assertions.assertFalse - -class GreeterTest { - @Test - fun testLocate() { - val greeter = GreeterLocator().findGreeter() - assertFalse(greeter.hello().isBlank()) - } -} diff --git a/test-project-kotlin-pre-1-7/greeter.provider.testfixture/build.gradle.kts b/test-project-kotlin-pre-1-7/greeter.provider.testfixture/build.gradle.kts deleted file mode 100644 index e77802d..0000000 --- a/test-project-kotlin-pre-1-7/greeter.provider.testfixture/build.gradle.kts +++ /dev/null @@ -1,19 +0,0 @@ -plugins { - `java-test-fixtures` -} - -//// Include the main sourceset as a dependency of testFixtures. -//kotlin.target.compilations.getByName("testFixtures") { -// associateWith(target.compilations.getByName("main")) -//} - -dependencies { - implementation(project(":greeter.api")) - testFixturesImplementation(project(":greeter.api")) - runtimeOnly(project(":greeter.provider")) -} - -modularity { - patchModule("java.annotation", "jsr305-3.0.2.jar") - patchModule("java.annotation", "jsr250-api-1.0.jar") -} diff --git a/test-project-kotlin-pre-1-7/greeter.provider.testfixture/src/main/java/module-info.java b/test-project-kotlin-pre-1-7/greeter.provider.testfixture/src/main/java/module-info.java deleted file mode 100644 index 64302f6..0000000 --- a/test-project-kotlin-pre-1-7/greeter.provider.testfixture/src/main/java/module-info.java +++ /dev/null @@ -1,7 +0,0 @@ -import examples.greeter.api.Greeter; - -module greeter.provider.testfixture { - requires greeter.api; - requires kotlin.stdlib; - uses Greeter; -} diff --git a/test-project-kotlin-pre-1-7/greeter.provider.testfixture/src/main/kotlin/testfixture/GreeterLocator.kt b/test-project-kotlin-pre-1-7/greeter.provider.testfixture/src/main/kotlin/testfixture/GreeterLocator.kt deleted file mode 100644 index b82f6b5..0000000 --- a/test-project-kotlin-pre-1-7/greeter.provider.testfixture/src/main/kotlin/testfixture/GreeterLocator.kt +++ /dev/null @@ -1,13 +0,0 @@ -package testfixture - -import examples.greeter.api.Greeter - -import java.util.ServiceLoader - -class GreeterLocator { - fun findGreeter(): Greeter { - return ServiceLoader.load(Greeter::class.java) - .findFirst() - .orElseThrow{RuntimeException("No Greeter found")} - } -} diff --git a/test-project-kotlin-pre-1-7/greeter.provider.testfixture/src/test/kotlin/testfixture/GreeterTest.kt b/test-project-kotlin-pre-1-7/greeter.provider.testfixture/src/test/kotlin/testfixture/GreeterTest.kt deleted file mode 100644 index 2a5808d..0000000 --- a/test-project-kotlin-pre-1-7/greeter.provider.testfixture/src/test/kotlin/testfixture/GreeterTest.kt +++ /dev/null @@ -1,13 +0,0 @@ -package testfixture - -import org.junit.jupiter.api.Test - -import org.junit.jupiter.api.Assertions.assertFalse - -class GreeterTest: GreeterFixture() { - @Test - fun testLocate() { - val greeter = locator().findGreeter() - assertFalse(greeter.hello().isBlank()) - } -} diff --git a/test-project-kotlin-pre-1-7/greeter.provider.testfixture/src/testFixtures/kotlin/testfixture/GreeterFixture.kt b/test-project-kotlin-pre-1-7/greeter.provider.testfixture/src/testFixtures/kotlin/testfixture/GreeterFixture.kt deleted file mode 100644 index 5aa87b7..0000000 --- a/test-project-kotlin-pre-1-7/greeter.provider.testfixture/src/testFixtures/kotlin/testfixture/GreeterFixture.kt +++ /dev/null @@ -1,5 +0,0 @@ -package testfixture - -open class GreeterFixture { - fun locator() = GreeterLocator() -} diff --git a/test-project-kotlin-pre-1-7/greeter.provider/build.gradle.kts b/test-project-kotlin-pre-1-7/greeter.provider/build.gradle.kts deleted file mode 100644 index 4e7e542..0000000 --- a/test-project-kotlin-pre-1-7/greeter.provider/build.gradle.kts +++ /dev/null @@ -1,24 +0,0 @@ -import org.javamodularity.moduleplugin.extensions.JavadocModuleOptions - -dependencies { - implementation(project(":greeter.api")) - implementation("javax.annotation:javax.annotation-api:1.3.2") - implementation("com.google.code.findbugs:jsr305:3.0.2") - implementation("javax.annotation:jsr250-api:1.0") - - testImplementation("org.hamcrest:hamcrest:3.0+") -} - -patchModules.config = listOf( - "java.annotation=jsr305-3.0.2.jar" -) - -modularity { - patchModule("java.annotation", "jsr250-api-1.0.jar") -} - -tasks.javadoc { - extensions.configure { - addModules = listOf("java.sql") - } -} diff --git a/test-project-kotlin-pre-1-7/greeter.provider/src/main/java/module-info.java b/test-project-kotlin-pre-1-7/greeter.provider/src/main/java/module-info.java deleted file mode 100644 index e89428a..0000000 --- a/test-project-kotlin-pre-1-7/greeter.provider/src/main/java/module-info.java +++ /dev/null @@ -1,7 +0,0 @@ -import examples.greeter.api.Greeter; - -module greeter.provider { - requires greeter.api; - requires kotlin.stdlib; - provides Greeter with examples.greeter.Friendly; -} diff --git a/test-project-kotlin-pre-1-7/greeter.provider/src/main/kotlin/examples/greeter/Friendly.kt b/test-project-kotlin-pre-1-7/greeter.provider/src/main/kotlin/examples/greeter/Friendly.kt deleted file mode 100644 index 0195604..0000000 --- a/test-project-kotlin-pre-1-7/greeter.provider/src/main/kotlin/examples/greeter/Friendly.kt +++ /dev/null @@ -1,12 +0,0 @@ -package examples.greeter - -import examples.greeter.api.Greeter -import java.io.* - -class Friendly: Greeter { - override fun hello(): String { - val stream = javaClass.getResourceAsStream("/greeting.txt") - val reader = BufferedReader(InputStreamReader(stream, "utf-8")) - return reader.readLine() - } -} diff --git a/test-project-kotlin-pre-1-7/greeter.provider/src/main/resources/greeting.txt b/test-project-kotlin-pre-1-7/greeter.provider/src/main/resources/greeting.txt deleted file mode 100644 index b6cbc2d..0000000 --- a/test-project-kotlin-pre-1-7/greeter.provider/src/main/resources/greeting.txt +++ /dev/null @@ -1 +0,0 @@ -welcome \ No newline at end of file diff --git a/test-project-kotlin-pre-1-7/greeter.provider/src/test/kotlin/examples/greeter/FriendlyTest.kt b/test-project-kotlin-pre-1-7/greeter.provider/src/test/kotlin/examples/greeter/FriendlyTest.kt deleted file mode 100644 index 25a8faf..0000000 --- a/test-project-kotlin-pre-1-7/greeter.provider/src/test/kotlin/examples/greeter/FriendlyTest.kt +++ /dev/null @@ -1,12 +0,0 @@ -package examples.greeter - -import org.junit.jupiter.api.Test -import org.junit.jupiter.api.Assertions.* - -class FriendlyTest { - @Test - fun testGreeting() { - val greeting = Friendly().hello() - assertTrue(greeting.contains("welcome")) - } -} diff --git a/test-project-kotlin-pre-1-7/greeter.provider/src/test/kotlin/examples/greeter/ScriptingTest.kt b/test-project-kotlin-pre-1-7/greeter.provider/src/test/kotlin/examples/greeter/ScriptingTest.kt deleted file mode 100644 index 5d8d127..0000000 --- a/test-project-kotlin-pre-1-7/greeter.provider/src/test/kotlin/examples/greeter/ScriptingTest.kt +++ /dev/null @@ -1,14 +0,0 @@ -package examples.greeter - -import javax.script.* -import org.junit.jupiter.api.* -import org.hamcrest.MatcherAssert.assertThat -import org.hamcrest.Matchers.* - -class ScriptingTest { - @Test - fun testScripting() { - val manager = ScriptEngineManager() - assertThat(manager.getEngineFactories(), not(nullValue())) - } -} diff --git a/test-project-kotlin-pre-1-7/greeter.provider/src/test/kotlin/module-info.test b/test-project-kotlin-pre-1-7/greeter.provider/src/test/kotlin/module-info.test deleted file mode 100644 index 4aa1e83..0000000 --- a/test-project-kotlin-pre-1-7/greeter.provider/src/test/kotlin/module-info.test +++ /dev/null @@ -1,7 +0,0 @@ -// make module visible ---add-modules - java.scripting,org.hamcrest - -// "requires java.scripting" ---add-reads - greeter.provider=java.scripting,org.hamcrest diff --git a/test-project-kotlin-pre-1-7/greeter.runner/build.gradle.kts b/test-project-kotlin-pre-1-7/greeter.runner/build.gradle.kts deleted file mode 100644 index 53c00fa..0000000 --- a/test-project-kotlin-pre-1-7/greeter.runner/build.gradle.kts +++ /dev/null @@ -1,36 +0,0 @@ -import org.javamodularity.moduleplugin.extensions.RunModuleOptions - -plugins { - application -} - -//region https://docs.gradle.org/current/userguide/kotlin_dsl.html#using_kotlin_delegated_properties -val moduleName: String by project -val run by tasks.existing(JavaExec::class) // https://youtrack.jetbrains.com/issue/KT-28013 -//endregion - -dependencies { - implementation(project(":greeter.api")) - runtimeOnly(project(":greeter.provider")) -} - -application { - mainClass.set("examples.RunnerKt") - mainModule.set(moduleName) - applicationDefaultJvmArgs = listOf("-Dgreeter.sender=gradle-modules-plugin") -} - -modularity { - patchModule("java.annotation", "jsr305-3.0.2.jar") -} -patchModules.config = listOf( - "java.annotation=jsr250-api-1.0.jar" -) - -(run) { - extensions.configure { - addModules = listOf("java.sql") - } - - jvmArgs = listOf("-Dgreeter.sender=gradle-modules-plugin") -} diff --git a/test-project-kotlin-pre-1-7/greeter.runner/src/main/java/module-info.java b/test-project-kotlin-pre-1-7/greeter.runner/src/main/java/module-info.java deleted file mode 100644 index 8151796..0000000 --- a/test-project-kotlin-pre-1-7/greeter.runner/src/main/java/module-info.java +++ /dev/null @@ -1,7 +0,0 @@ -import examples.greeter.api.Greeter; - -module greeter.runner { - requires greeter.api; - requires kotlin.stdlib; - uses Greeter; -} diff --git a/test-project-kotlin-pre-1-7/greeter.runner/src/main/kotlin/examples/Runner.kt b/test-project-kotlin-pre-1-7/greeter.runner/src/main/kotlin/examples/Runner.kt deleted file mode 100644 index 03491ee..0000000 --- a/test-project-kotlin-pre-1-7/greeter.runner/src/main/kotlin/examples/Runner.kt +++ /dev/null @@ -1,21 +0,0 @@ -package examples - -import examples.greeter.api.Greeter - -import java.util.ServiceLoader - -fun main(args: Array) { - println("args: " + java.util.Arrays.asList(*args)) - println("greeter.sender: " + System.getProperty("greeter.sender")) - val greeter = ServiceLoader.load(Greeter::class.java) - .findFirst() - .orElseThrow{RuntimeException("No Greeter found!")} - println(greeter.hello()) - - val resource = object: Any() {}.javaClass.getResourceAsStream("/resourcetest.txt") - if(resource == null) { - throw RuntimeException("Couldn't load resource") - } - ModuleLayer.boot().modules().map(Module::getName) - .find{it == "java.sql"} ?: throw RuntimeException("Expected module java.sql not found") -} diff --git a/test-project-kotlin-pre-1-7/greeter.runner/src/main/resources/resourcetest.txt b/test-project-kotlin-pre-1-7/greeter.runner/src/main/resources/resourcetest.txt deleted file mode 100644 index e69de29..0000000 diff --git a/test-project-kotlin-pre-1-7/greeter.startscripts/build.gradle.kts b/test-project-kotlin-pre-1-7/greeter.startscripts/build.gradle.kts deleted file mode 100644 index 14187b2..0000000 --- a/test-project-kotlin-pre-1-7/greeter.startscripts/build.gradle.kts +++ /dev/null @@ -1,48 +0,0 @@ -import org.javamodularity.moduleplugin.tasks.ModularCreateStartScripts -import org.javamodularity.moduleplugin.tasks.ModularJavaExec - -plugins { - application -} - -//region https://docs.gradle.org/current/userguide/kotlin_dsl.html#using_kotlin_delegated_properties -val moduleName: String by project -val installDist by tasks -//endregion - -dependencies { - implementation(project(":greeter.api")) - runtimeOnly(project(":greeter.provider")) -} - -modularity { - patchModule("java.annotation", "jsr250-api-1.0.jar") - patchModule("java.annotation", "jsr305-3.0.2.jar") -} - -application { - mainClass.set("startscripts.MainDemoKt") - mainModule.set(moduleName) - applicationName = "demo" - applicationDefaultJvmArgs = listOf("-Xmx128m") -} - -File("${project.projectDir}/src/main/kotlin/startscripts") - .listFiles({ _, name -> Regex("Demo.*\\.kt") matches name }) - .forEach { file -> - val demoClassName = file.name.removeSuffix(".kt") - - val runDemo = tasks.create("run$demoClassName") { - group = "Demo" - description = "Run the $demoClassName program" - main = "$moduleName/startscripts.${demoClassName}Kt" - jvmArgs = listOf("-Xmx128m") - } - - val createScripts = tasks.create("createStartScripts$demoClassName") { - runTask = runDemo - applicationName = demoClassName.decapitalize() - } - - installDist.finalizedBy(createScripts) - } diff --git a/test-project-kotlin-pre-1-7/greeter.startscripts/src/main/java/module-info.java b/test-project-kotlin-pre-1-7/greeter.startscripts/src/main/java/module-info.java deleted file mode 100644 index 8df89e5..0000000 --- a/test-project-kotlin-pre-1-7/greeter.startscripts/src/main/java/module-info.java +++ /dev/null @@ -1,8 +0,0 @@ -import examples.greeter.api.Greeter; - -module greeter.startscripts { - requires greeter.api; - requires kotlin.stdlib; - - uses Greeter; -} diff --git a/test-project-kotlin-pre-1-7/greeter.startscripts/src/main/kotlin/startscripts/Demo1.kt b/test-project-kotlin-pre-1-7/greeter.startscripts/src/main/kotlin/startscripts/Demo1.kt deleted file mode 100644 index 34f7830..0000000 --- a/test-project-kotlin-pre-1-7/greeter.startscripts/src/main/kotlin/startscripts/Demo1.kt +++ /dev/null @@ -1,5 +0,0 @@ -package startscripts - -fun main(args: Array) { - DemoHelper.greet("Demo1", args) -} diff --git a/test-project-kotlin-pre-1-7/greeter.startscripts/src/main/kotlin/startscripts/Demo2.kt b/test-project-kotlin-pre-1-7/greeter.startscripts/src/main/kotlin/startscripts/Demo2.kt deleted file mode 100644 index 5bf75bc..0000000 --- a/test-project-kotlin-pre-1-7/greeter.startscripts/src/main/kotlin/startscripts/Demo2.kt +++ /dev/null @@ -1,5 +0,0 @@ -package startscripts - -fun main(args: Array) { - DemoHelper.greet("Demo2", args) -} diff --git a/test-project-kotlin-pre-1-7/greeter.startscripts/src/main/kotlin/startscripts/DemoHelper.kt b/test-project-kotlin-pre-1-7/greeter.startscripts/src/main/kotlin/startscripts/DemoHelper.kt deleted file mode 100644 index dc34d34..0000000 --- a/test-project-kotlin-pre-1-7/greeter.startscripts/src/main/kotlin/startscripts/DemoHelper.kt +++ /dev/null @@ -1,16 +0,0 @@ -package startscripts - -import examples.greeter.api.Greeter -import java.util.ServiceLoader - -object DemoHelper { - fun greet(appName: String, args: Array) { - val greeter = ServiceLoader.load(Greeter::class.java) - .findFirst() - .orElseThrow{RuntimeException("No Greeter found!")} - val addition = System.getProperty("greeting.addition", "").let { - if(it.isBlank()) "" else " $it" - } - println("$appName: ${greeter.hello()}$addition" + args.joinToString(" and ", ", ", "!")) - } -} diff --git a/test-project-kotlin-pre-1-7/greeter.startscripts/src/main/kotlin/startscripts/MainDemo.kt b/test-project-kotlin-pre-1-7/greeter.startscripts/src/main/kotlin/startscripts/MainDemo.kt deleted file mode 100644 index a8f5af3..0000000 --- a/test-project-kotlin-pre-1-7/greeter.startscripts/src/main/kotlin/startscripts/MainDemo.kt +++ /dev/null @@ -1,5 +0,0 @@ -package startscripts - -fun main(args: Array) { - DemoHelper.greet("MainDemo", args) -} diff --git a/test-project-kotlin-pre-1-7/local_maven_settings.gradle b/test-project-kotlin-pre-1-7/local_maven_settings.gradle deleted file mode 100644 index 559bf61..0000000 --- a/test-project-kotlin-pre-1-7/local_maven_settings.gradle +++ /dev/null @@ -1,16 +0,0 @@ -pluginManagement { - repositories { - mavenLocal { - content { - includeGroup 'org.javamodularity.moduleplugin' // by 'publishToMavenLocal' task - } - } - mavenCentral { - content { - includeGroup 'com.github.javaparser' - } - } - } -} - -apply from: 'settings.gradle' diff --git a/test-project-kotlin-pre-1-7/settings.gradle b/test-project-kotlin-pre-1-7/settings.gradle deleted file mode 100644 index 911eb20..0000000 --- a/test-project-kotlin-pre-1-7/settings.gradle +++ /dev/null @@ -1,26 +0,0 @@ -pluginManagement { - repositories { - gradlePluginPortal().with { - content { - excludeGroup 'org.javamodularity.moduleplugin' // added to the classpath by the smoke test - } - } - } -} - -import org.gradle.util.GradleVersion - -rootProject.name = 'test-project-kotlin-pre-1-7' - -include 'greeter.api' - -include 'greeter.provider' -include 'greeter.provider.test' - -if(GradleVersion.current().compareTo(GradleVersion.version("5.6")) >= 0) { - include 'greeter.provider.testfixture' -} - -include 'greeter.runner' -include 'greeter.javaexec' -include 'greeter.startscripts' diff --git a/test-project-kotlin/build.gradle.kts b/test-project-kotlin/build.gradle.kts index 31e2bd5..a233165 100644 --- a/test-project-kotlin/build.gradle.kts +++ b/test-project-kotlin/build.gradle.kts @@ -22,15 +22,9 @@ subprojects { //endregion //region KOTLIN - if (gradle.gradleVersion >= "8.0") { - configure { - toolchain { - languageVersion.set(JavaLanguageVersion.of(11)) - } - } - } else { - tasks.withType { - kotlinOptions.jvmTarget = "1.8" + configure { + toolchain { + languageVersion.set(JavaLanguageVersion.of(11)) } } diff --git a/test-project-kotlin/gradle.properties b/test-project-kotlin/gradle.properties index ab1f457..1206691 100644 --- a/test-project-kotlin/gradle.properties +++ b/test-project-kotlin/gradle.properties @@ -1,2 +1,2 @@ -jUnitVersion = 5.10.2 -jUnitPlatformVersion = 1.10.2 +jUnitVersion = 5.14.0 +jUnitPlatformVersion = 1.14.0 \ No newline at end of file diff --git a/test-project-mixed/gradle.properties b/test-project-mixed/gradle.properties index ab1f457..1206691 100644 --- a/test-project-mixed/gradle.properties +++ b/test-project-mixed/gradle.properties @@ -1,2 +1,2 @@ -jUnitVersion = 5.10.2 -jUnitPlatformVersion = 1.10.2 +jUnitVersion = 5.14.0 +jUnitPlatformVersion = 1.14.0 \ No newline at end of file diff --git a/test-project/gradle.properties b/test-project/gradle.properties index ab1f457..d366e77 100644 --- a/test-project/gradle.properties +++ b/test-project/gradle.properties @@ -1,2 +1,2 @@ -jUnitVersion = 5.10.2 -jUnitPlatformVersion = 1.10.2 +jUnitVersion = 5.14.0 +jUnitPlatformVersion = 1.14.0