From a20ae6bb1e8395a2ec8d1f9dbfeab7270f565245 Mon Sep 17 00:00:00 2001 From: Stefan Reisner Date: Thu, 23 Jan 2025 00:13:43 +0100 Subject: [PATCH 01/11] add test case which fails initially because 0 kotlin source files will be found in the non-existent src/main/kotlin --- .../java/org/openrewrite/maven/KotlinIT.java | 43 +++++++ .../KotlinIT/basic_kotlin_project/pom.xml | 111 ++++++++++++++++++ .../src/main/java/sample/MyClass.kt | 5 + 3 files changed, 159 insertions(+) create mode 100644 src/test/java/org/openrewrite/maven/KotlinIT.java create mode 100644 src/test/resources-its/org/openrewrite/maven/KotlinIT/basic_kotlin_project/pom.xml create mode 100644 src/test/resources-its/org/openrewrite/maven/KotlinIT/basic_kotlin_project/src/main/java/sample/MyClass.kt diff --git a/src/test/java/org/openrewrite/maven/KotlinIT.java b/src/test/java/org/openrewrite/maven/KotlinIT.java new file mode 100644 index 00000000..431c05ec --- /dev/null +++ b/src/test/java/org/openrewrite/maven/KotlinIT.java @@ -0,0 +1,43 @@ +/* + * Copyright 2020 the original author or authors. + *

+ * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + *

+ * https://www.apache.org/licenses/LICENSE-2.0 + *

+ * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.openrewrite.maven; + +import com.soebes.itf.jupiter.extension.*; +import com.soebes.itf.jupiter.maven.MavenExecutionResult; +import org.junit.jupiter.api.condition.DisabledOnOs; +import org.junit.jupiter.api.condition.OS; + +import static com.soebes.itf.extension.assertj.MavenITAssertions.assertThat; + +@MavenJupiterExtension +@MavenOption(MavenCLIOptions.NO_TRANSFER_PROGRESS) +@MavenOption(MavenCLIExtra.MUTE_PLUGIN_VALIDATION_WARNING) +@MavenOption(MavenCLIOptions.VERBOSE) +@DisabledOnOs(OS.WINDOWS) +@MavenGoal("install") +@MavenGoal("${project.groupId}:${project.artifactId}:${project.version}:run") +class KotlinIT { + @MavenTest + void basic_kotlin_project(MavenExecutionResult result) { + assertThat(result) + .isSuccessful() + .out() + .debug() + .anySatisfy(line -> assertThat(line).contains("Scanned 1 kotlin source files in main scope.")) + .anySatisfy(line -> assertThat(line).contains("org.openrewrite.kotlin.format.AutoFormat")); + ; + } +} diff --git a/src/test/resources-its/org/openrewrite/maven/KotlinIT/basic_kotlin_project/pom.xml b/src/test/resources-its/org/openrewrite/maven/KotlinIT/basic_kotlin_project/pom.xml new file mode 100644 index 00000000..ac0434e4 --- /dev/null +++ b/src/test/resources-its/org/openrewrite/maven/KotlinIT/basic_kotlin_project/pom.xml @@ -0,0 +1,111 @@ + + 4.0.0 + + org.openrewrite.maven + basic_kotlin_project + 1.0 + jar + KotlinIT#basic_kotlin_project + + + 1.9.10 + 17 + ${jdk.version} + ${jdk.version} + ${jdk.version} + UTF-8 + + + + + + org.jetbrains.kotlin + kotlin-maven-plugin + ${kotlin.version} + + + compile + process-sources + + compile + + + + ${project.basedir}/src/main/java + + + + + + + + org.apache.maven.plugins + maven-compiler-plugin + 3.13.0 + + ${java.version} + ${java.version} + + + + default-compile + none + + + default-testCompile + none + + + java-compile + compile + + compile + + + + java-test-compile + test-compile + + testCompile + + + + + + + @project.groupId@ + @project.artifactId@ + @project.version@ + + + org.openrewrite.kotlin.format.AutoFormat + + + + + org.openrewrite.recipe + rewrite-all + 1.3.4 + + + + + + + + + org.jetbrains.kotlin + kotlin-stdlib + ${kotlin.version} + + + + + + mavenCentral + https://repo1.maven.org/maven2/ + + + diff --git a/src/test/resources-its/org/openrewrite/maven/KotlinIT/basic_kotlin_project/src/main/java/sample/MyClass.kt b/src/test/resources-its/org/openrewrite/maven/KotlinIT/basic_kotlin_project/src/main/java/sample/MyClass.kt new file mode 100644 index 00000000..8c8386b8 --- /dev/null +++ b/src/test/resources-its/org/openrewrite/maven/KotlinIT/basic_kotlin_project/src/main/java/sample/MyClass.kt @@ -0,0 +1,5 @@ +package sample + +class MyClass { + +} From bc70ce390f20d2f0d1331f4802104a605e43f168 Mon Sep 17 00:00:00 2001 From: Stefan Reisner Date: Thu, 23 Jan 2025 00:36:31 +0100 Subject: [PATCH 02/11] minor cleanup --- src/test/java/org/openrewrite/maven/KotlinIT.java | 1 - 1 file changed, 1 deletion(-) diff --git a/src/test/java/org/openrewrite/maven/KotlinIT.java b/src/test/java/org/openrewrite/maven/KotlinIT.java index 431c05ec..38826090 100644 --- a/src/test/java/org/openrewrite/maven/KotlinIT.java +++ b/src/test/java/org/openrewrite/maven/KotlinIT.java @@ -38,6 +38,5 @@ void basic_kotlin_project(MavenExecutionResult result) { .debug() .anySatisfy(line -> assertThat(line).contains("Scanned 1 kotlin source files in main scope.")) .anySatisfy(line -> assertThat(line).contains("org.openrewrite.kotlin.format.AutoFormat")); - ; } } From b2fdf79f374eb2fae18b09f74625f5d49b648a6b Mon Sep 17 00:00:00 2001 From: Stefan Reisner Date: Thu, 23 Jan 2025 16:00:00 +0100 Subject: [PATCH 03/11] intentionally mess up formatting --- .../basic_kotlin_project/src/main/java/sample/MyClass.kt | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/test/resources-its/org/openrewrite/maven/KotlinIT/basic_kotlin_project/src/main/java/sample/MyClass.kt b/src/test/resources-its/org/openrewrite/maven/KotlinIT/basic_kotlin_project/src/main/java/sample/MyClass.kt index 8c8386b8..00842354 100644 --- a/src/test/resources-its/org/openrewrite/maven/KotlinIT/basic_kotlin_project/src/main/java/sample/MyClass.kt +++ b/src/test/resources-its/org/openrewrite/maven/KotlinIT/basic_kotlin_project/src/main/java/sample/MyClass.kt @@ -1,5 +1,5 @@ -package sample + package sample -class MyClass { + class MyClass { -} + } From 9e5e0db8b950d8933a0d33fd911cc902d1fd7696 Mon Sep 17 00:00:00 2001 From: Stefan Reisner Date: Sat, 25 Jan 2025 23:03:17 +0100 Subject: [PATCH 04/11] #936 in case of missing src/*/kotlin fall back to scanning for Kotlin sources in src/*/java instead --- .../org/openrewrite/maven/MavenMojoProjectParser.java | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/src/main/java/org/openrewrite/maven/MavenMojoProjectParser.java b/src/main/java/org/openrewrite/maven/MavenMojoProjectParser.java index 5660dc94..8a7e59fe 100644 --- a/src/main/java/org/openrewrite/maven/MavenMojoProjectParser.java +++ b/src/main/java/org/openrewrite/maven/MavenMojoProjectParser.java @@ -242,7 +242,7 @@ private SourceFile logParseErrors(SourceFile source) { source.getMarkers().findFirst(ParseExceptionResult.class).ifPresent(e -> { if (firstWarningLogged.compareAndSet(false, true)) { logger.warn("There were problems parsing some source files" + - (mavenSession.getRequest().isShowErrors() ? "" : ", run with --errors to see full stack traces")); + (mavenSession.getRequest().isShowErrors() ? "" : ", run with --errors to see full stack traces")); } logger.warn("There were problems parsing " + source.getSourcePath()); if (mavenSession.getRequest().isShowErrors()) { @@ -397,7 +397,7 @@ private Stream processMainSources( // scan Kotlin files String kotlinSourceDir = getKotlinDirectory(mavenProject.getBuild().getSourceDirectory()); - List mainKotlinSources = (kotlinSourceDir != null) ? listKotlinSources(mavenProject.getBasedir().toPath().resolve(kotlinSourceDir)) : Collections.emptyList(); + List mainKotlinSources = listKotlinSources(mavenProject.getBasedir().toPath().resolve(kotlinSourceDir != null ? kotlinSourceDir : mavenProject.getBuild().getSourceDirectory())); alreadyParsed.addAll(mainKotlinSources); logInfo(mavenProject, "Parsing source files"); @@ -466,7 +466,7 @@ private Stream processTestSources( // scan Kotlin files String kotlinSourceDir = getKotlinDirectory(mavenProject.getBuild().getTestSourceDirectory()); - List testKotlinSources = (kotlinSourceDir != null) ? listKotlinSources(mavenProject.getBasedir().toPath().resolve(kotlinSourceDir)) : Collections.emptyList(); + List testKotlinSources = listKotlinSources(mavenProject.getBasedir().toPath().resolve(kotlinSourceDir != null ? kotlinSourceDir : mavenProject.getBuild().getTestSourceDirectory())); alreadyParsed.addAll(testKotlinSources); Stream parsedJava = Stream.empty(); @@ -489,7 +489,7 @@ private Stream processTestSources( int sourcesParsedBefore = alreadyParsed.size(); Stream parsedResourceFiles = resourceParser.parse(mavenProject.getBasedir().toPath().resolve("src/test/resources"), alreadyParsed); logDebug(mavenProject, "Scanned " + (alreadyParsed.size() - sourcesParsedBefore) + " resource files in test scope."); - return Stream.concat(Stream.concat(parsedJava, parsedKotlin), parsedResourceFiles) + return Stream.concat(Stream.concat(parsedJava, kotlinParserBuilder.build().parse(testKotlinSources, baseDir, ctx)), parsedResourceFiles) .map(addProvenance(baseDir, markers, null)); } @@ -582,7 +582,7 @@ public Map parseMaven(List mavenProjec throw new MojoFailureException( mavenProject, "Failed to parse or resolve the Maven POM file or one of its dependencies; " + - "We can not reliably continue without this information.", + "We can not reliably continue without this information.", parseExceptionResult.get().getMessage()); } projectMap.put(mavenProject, (Xml.Document) document); From 15d5c582d5a8da3f05794b7f871f59d6f52225b5 Mon Sep 17 00:00:00 2001 From: Stefan Reisner Date: Tue, 28 Jan 2025 07:07:57 +0100 Subject: [PATCH 05/11] #936 rename variable in processTestSources more aptly to kotlinTestSourceDir (was kotlinSourceDir) --- .../java/org/openrewrite/maven/MavenMojoProjectParser.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/main/java/org/openrewrite/maven/MavenMojoProjectParser.java b/src/main/java/org/openrewrite/maven/MavenMojoProjectParser.java index 8a7e59fe..c5b2f903 100644 --- a/src/main/java/org/openrewrite/maven/MavenMojoProjectParser.java +++ b/src/main/java/org/openrewrite/maven/MavenMojoProjectParser.java @@ -465,8 +465,8 @@ private Stream processTestSources( alreadyParsed.addAll(testJavaSources); // scan Kotlin files - String kotlinSourceDir = getKotlinDirectory(mavenProject.getBuild().getTestSourceDirectory()); - List testKotlinSources = listKotlinSources(mavenProject.getBasedir().toPath().resolve(kotlinSourceDir != null ? kotlinSourceDir : mavenProject.getBuild().getTestSourceDirectory())); + String kotlinTestSourceDir = getKotlinDirectory(mavenProject.getBuild().getTestSourceDirectory()); + List testKotlinSources = listKotlinSources(mavenProject.getBasedir().toPath().resolve(kotlinTestSourceDir != null ? kotlinTestSourceDir : mavenProject.getBuild().getTestSourceDirectory())); alreadyParsed.addAll(testKotlinSources); Stream parsedJava = Stream.empty(); From 595b27ae23ebf0380807f3b62a016c778884e473 Mon Sep 17 00:00:00 2001 From: Stefan Reisner Date: Tue, 28 Jan 2025 07:28:49 +0100 Subject: [PATCH 06/11] #936 refactor listKotlinSources() --- .../maven/MavenMojoProjectParser.java | 22 ++++++++++--------- 1 file changed, 12 insertions(+), 10 deletions(-) diff --git a/src/main/java/org/openrewrite/maven/MavenMojoProjectParser.java b/src/main/java/org/openrewrite/maven/MavenMojoProjectParser.java index c5b2f903..7b688a78 100644 --- a/src/main/java/org/openrewrite/maven/MavenMojoProjectParser.java +++ b/src/main/java/org/openrewrite/maven/MavenMojoProjectParser.java @@ -31,6 +31,7 @@ import org.apache.maven.settings.crypto.SettingsDecryptionRequest; import org.apache.maven.settings.crypto.SettingsDecryptionResult; import org.codehaus.plexus.util.xml.Xpp3Dom; +import org.jetbrains.annotations.NotNull; import org.jspecify.annotations.Nullable; import org.openrewrite.ExecutionContext; import org.openrewrite.ParseExceptionResult; @@ -388,16 +389,16 @@ private Stream processMainSources( // Some annotation processors output generated sources to the /target directory. These are added for parsing but // should be filtered out of the final SourceFile list. List generatedSourcePaths = listJavaSources(mavenProject.getBasedir().toPath().resolve(mavenProject.getBuild().getDirectory())); + String mavenSourceDirectory = mavenProject.getBuild().getSourceDirectory(); List mainJavaSources = Stream.concat( generatedSourcePaths.stream(), - listJavaSources(mavenProject.getBasedir().toPath().resolve(mavenProject.getBuild().getSourceDirectory())).stream() + listJavaSources(mavenProject.getBasedir().toPath().resolve(mavenSourceDirectory)).stream() ).collect(toList()); alreadyParsed.addAll(mainJavaSources); // scan Kotlin files - String kotlinSourceDir = getKotlinDirectory(mavenProject.getBuild().getSourceDirectory()); - List mainKotlinSources = listKotlinSources(mavenProject.getBasedir().toPath().resolve(kotlinSourceDir != null ? kotlinSourceDir : mavenProject.getBuild().getSourceDirectory())); + List mainKotlinSources = listKotlinSources(mavenProject, mavenSourceDirectory); alreadyParsed.addAll(mainKotlinSources); logInfo(mavenProject, "Parsing source files"); @@ -465,8 +466,8 @@ private Stream processTestSources( alreadyParsed.addAll(testJavaSources); // scan Kotlin files - String kotlinTestSourceDir = getKotlinDirectory(mavenProject.getBuild().getTestSourceDirectory()); - List testKotlinSources = listKotlinSources(mavenProject.getBasedir().toPath().resolve(kotlinTestSourceDir != null ? kotlinTestSourceDir : mavenProject.getBuild().getTestSourceDirectory())); + String mavenTestSourceDirectory = mavenProject.getBuild().getTestSourceDirectory(); + List testKotlinSources = listKotlinSources(mavenProject, mavenTestSourceDirectory); alreadyParsed.addAll(testKotlinSources); Stream parsedJava = Stream.empty(); @@ -489,10 +490,15 @@ private Stream processTestSources( int sourcesParsedBefore = alreadyParsed.size(); Stream parsedResourceFiles = resourceParser.parse(mavenProject.getBasedir().toPath().resolve("src/test/resources"), alreadyParsed); logDebug(mavenProject, "Scanned " + (alreadyParsed.size() - sourcesParsedBefore) + " resource files in test scope."); - return Stream.concat(Stream.concat(parsedJava, kotlinParserBuilder.build().parse(testKotlinSources, baseDir, ctx)), parsedResourceFiles) + return Stream.concat(Stream.concat(parsedJava, parsedKotlin), parsedResourceFiles) .map(addProvenance(baseDir, markers, null)); } + private @NotNull List listKotlinSources(MavenProject mavenProject, String fallbackSourceDirectory) throws MojoExecutionException { + String kotlinSourceDir = getKotlinDirectory(fallbackSourceDirectory); + return listSources(mavenProject.getBasedir().toPath().resolve(kotlinSourceDir != null ? kotlinSourceDir : fallbackSourceDirectory), ".kt"); + } + private @Nullable String getKotlinDirectory(@Nullable String sourceDirectory) { if (sourceDirectory == null) { return null; @@ -760,10 +766,6 @@ private static List listJavaSources(Path sourceDirectory) throws MojoExecu return listSources(sourceDirectory, ".java"); } - private static List listKotlinSources(Path sourceDirectory) throws MojoExecutionException { - return listSources(sourceDirectory, ".kt"); - } - private static List listSources(Path sourceDirectory, String extension) throws MojoExecutionException { if (!Files.exists(sourceDirectory)) { return emptyList(); From 04d2104a67f4949178e5c72056d91606cb11d9c7 Mon Sep 17 00:00:00 2001 From: Stefan Reisner Date: Tue, 28 Jan 2025 09:50:52 +0100 Subject: [PATCH 07/11] #936 also verify that Kotlin source files are found unter src/test/java --- src/test/java/org/openrewrite/maven/KotlinIT.java | 11 ++++++----- .../src/test/java/sample/MyTest.kt | 4 ++++ 2 files changed, 10 insertions(+), 5 deletions(-) create mode 100644 src/test/resources-its/org/openrewrite/maven/KotlinIT/basic_kotlin_project/src/test/java/sample/MyTest.kt diff --git a/src/test/java/org/openrewrite/maven/KotlinIT.java b/src/test/java/org/openrewrite/maven/KotlinIT.java index 38826090..230e4d24 100644 --- a/src/test/java/org/openrewrite/maven/KotlinIT.java +++ b/src/test/java/org/openrewrite/maven/KotlinIT.java @@ -33,10 +33,11 @@ class KotlinIT { @MavenTest void basic_kotlin_project(MavenExecutionResult result) { assertThat(result) - .isSuccessful() - .out() - .debug() - .anySatisfy(line -> assertThat(line).contains("Scanned 1 kotlin source files in main scope.")) - .anySatisfy(line -> assertThat(line).contains("org.openrewrite.kotlin.format.AutoFormat")); + .isSuccessful() + .out() + .debug() + .anySatisfy(line -> assertThat(line).contains("Scanned 1 kotlin source files in main scope.")) + .anySatisfy(line -> assertThat(line).contains("Scanned 1 kotlin source files in test scope.")) + .anySatisfy(line -> assertThat(line).contains("org.openrewrite.kotlin.format.AutoFormat")); } } diff --git a/src/test/resources-its/org/openrewrite/maven/KotlinIT/basic_kotlin_project/src/test/java/sample/MyTest.kt b/src/test/resources-its/org/openrewrite/maven/KotlinIT/basic_kotlin_project/src/test/java/sample/MyTest.kt new file mode 100644 index 00000000..460bf796 --- /dev/null +++ b/src/test/resources-its/org/openrewrite/maven/KotlinIT/basic_kotlin_project/src/test/java/sample/MyTest.kt @@ -0,0 +1,4 @@ +package sample + + class MyTest { + } From b09a186f9b121e8c1d41cecc38b0747870735f45 Mon Sep 17 00:00:00 2001 From: Stefan Reisner Date: Tue, 28 Jan 2025 09:51:15 +0100 Subject: [PATCH 08/11] #936 fix debug log message --- src/main/java/org/openrewrite/maven/MavenMojoProjectParser.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/org/openrewrite/maven/MavenMojoProjectParser.java b/src/main/java/org/openrewrite/maven/MavenMojoProjectParser.java index 7b688a78..64075017 100644 --- a/src/main/java/org/openrewrite/maven/MavenMojoProjectParser.java +++ b/src/main/java/org/openrewrite/maven/MavenMojoProjectParser.java @@ -479,7 +479,7 @@ private Stream processTestSources( Stream parsedKotlin = Stream.empty(); if (!testKotlinSources.isEmpty()) { parsedKotlin = kotlinParserBuilder.build().parse(testKotlinSources, baseDir, ctx); - logDebug(mavenProject, "Scanned " + testKotlinSources.size() + " kotlin source files in main scope."); + logDebug(mavenProject, "Scanned " + testKotlinSources.size() + " kotlin source files in test scope."); } List markers = new ArrayList<>(projectProvenance); From 42d26c2a6ed934a6b20cbec1abd5375ffa3ecc2b Mon Sep 17 00:00:00 2001 From: Stefan Reisner Date: Tue, 28 Jan 2025 10:00:43 +0100 Subject: [PATCH 09/11] #936 separate tests of src/main/java and src/test/java into two independent testcases --- .../java/org/openrewrite/maven/KotlinIT.java | 12 +- .../pom.xml | 0 .../src/main/java/sample/MyClass.kt | 0 .../KotlinIT/kotlin_in_src_main_test/pom.xml | 111 ++++++++++++++++++ .../src/test/java/sample/MyTest.kt | 0 5 files changed, 122 insertions(+), 1 deletion(-) rename src/test/resources-its/org/openrewrite/maven/KotlinIT/{basic_kotlin_project => kotlin_in_src_main_java}/pom.xml (100%) rename src/test/resources-its/org/openrewrite/maven/KotlinIT/{basic_kotlin_project => kotlin_in_src_main_java}/src/main/java/sample/MyClass.kt (100%) create mode 100644 src/test/resources-its/org/openrewrite/maven/KotlinIT/kotlin_in_src_main_test/pom.xml rename src/test/resources-its/org/openrewrite/maven/KotlinIT/{basic_kotlin_project => kotlin_in_src_main_test}/src/test/java/sample/MyTest.kt (100%) diff --git a/src/test/java/org/openrewrite/maven/KotlinIT.java b/src/test/java/org/openrewrite/maven/KotlinIT.java index 230e4d24..cb98a8c4 100644 --- a/src/test/java/org/openrewrite/maven/KotlinIT.java +++ b/src/test/java/org/openrewrite/maven/KotlinIT.java @@ -31,13 +31,23 @@ @MavenGoal("${project.groupId}:${project.artifactId}:${project.version}:run") class KotlinIT { @MavenTest - void basic_kotlin_project(MavenExecutionResult result) { + void kotlin_in_src_main_java(MavenExecutionResult result) { assertThat(result) .isSuccessful() .out() .debug() .anySatisfy(line -> assertThat(line).contains("Scanned 1 kotlin source files in main scope.")) + .anySatisfy(line -> assertThat(line).contains("org.openrewrite.kotlin.format.AutoFormat")); + } + + @MavenTest + void kotlin_in_src_main_test(MavenExecutionResult result) { + assertThat(result) + .isSuccessful() + .out() + .debug() .anySatisfy(line -> assertThat(line).contains("Scanned 1 kotlin source files in test scope.")) .anySatisfy(line -> assertThat(line).contains("org.openrewrite.kotlin.format.AutoFormat")); } + } diff --git a/src/test/resources-its/org/openrewrite/maven/KotlinIT/basic_kotlin_project/pom.xml b/src/test/resources-its/org/openrewrite/maven/KotlinIT/kotlin_in_src_main_java/pom.xml similarity index 100% rename from src/test/resources-its/org/openrewrite/maven/KotlinIT/basic_kotlin_project/pom.xml rename to src/test/resources-its/org/openrewrite/maven/KotlinIT/kotlin_in_src_main_java/pom.xml diff --git a/src/test/resources-its/org/openrewrite/maven/KotlinIT/basic_kotlin_project/src/main/java/sample/MyClass.kt b/src/test/resources-its/org/openrewrite/maven/KotlinIT/kotlin_in_src_main_java/src/main/java/sample/MyClass.kt similarity index 100% rename from src/test/resources-its/org/openrewrite/maven/KotlinIT/basic_kotlin_project/src/main/java/sample/MyClass.kt rename to src/test/resources-its/org/openrewrite/maven/KotlinIT/kotlin_in_src_main_java/src/main/java/sample/MyClass.kt diff --git a/src/test/resources-its/org/openrewrite/maven/KotlinIT/kotlin_in_src_main_test/pom.xml b/src/test/resources-its/org/openrewrite/maven/KotlinIT/kotlin_in_src_main_test/pom.xml new file mode 100644 index 00000000..ac0434e4 --- /dev/null +++ b/src/test/resources-its/org/openrewrite/maven/KotlinIT/kotlin_in_src_main_test/pom.xml @@ -0,0 +1,111 @@ + + 4.0.0 + + org.openrewrite.maven + basic_kotlin_project + 1.0 + jar + KotlinIT#basic_kotlin_project + + + 1.9.10 + 17 + ${jdk.version} + ${jdk.version} + ${jdk.version} + UTF-8 + + + + + + org.jetbrains.kotlin + kotlin-maven-plugin + ${kotlin.version} + + + compile + process-sources + + compile + + + + ${project.basedir}/src/main/java + + + + + + + + org.apache.maven.plugins + maven-compiler-plugin + 3.13.0 + + ${java.version} + ${java.version} + + + + default-compile + none + + + default-testCompile + none + + + java-compile + compile + + compile + + + + java-test-compile + test-compile + + testCompile + + + + + + + @project.groupId@ + @project.artifactId@ + @project.version@ + + + org.openrewrite.kotlin.format.AutoFormat + + + + + org.openrewrite.recipe + rewrite-all + 1.3.4 + + + + + + + + + org.jetbrains.kotlin + kotlin-stdlib + ${kotlin.version} + + + + + + mavenCentral + https://repo1.maven.org/maven2/ + + + diff --git a/src/test/resources-its/org/openrewrite/maven/KotlinIT/basic_kotlin_project/src/test/java/sample/MyTest.kt b/src/test/resources-its/org/openrewrite/maven/KotlinIT/kotlin_in_src_main_test/src/test/java/sample/MyTest.kt similarity index 100% rename from src/test/resources-its/org/openrewrite/maven/KotlinIT/basic_kotlin_project/src/test/java/sample/MyTest.kt rename to src/test/resources-its/org/openrewrite/maven/KotlinIT/kotlin_in_src_main_test/src/test/java/sample/MyTest.kt From 3d5c9e5937be3243b940c1d0fd579ee648a2fb43 Mon Sep 17 00:00:00 2001 From: Stefan Reisner Date: Tue, 28 Jan 2025 10:45:58 +0100 Subject: [PATCH 10/11] #936 removed @NotNull annotation and annotated package as @NullMarked --- .../java/org/openrewrite/maven/MavenMojoProjectParser.java | 3 +-- src/main/java/org/openrewrite/maven/package-info.java | 3 +++ 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/src/main/java/org/openrewrite/maven/MavenMojoProjectParser.java b/src/main/java/org/openrewrite/maven/MavenMojoProjectParser.java index 64075017..02b1b093 100644 --- a/src/main/java/org/openrewrite/maven/MavenMojoProjectParser.java +++ b/src/main/java/org/openrewrite/maven/MavenMojoProjectParser.java @@ -31,7 +31,6 @@ import org.apache.maven.settings.crypto.SettingsDecryptionRequest; import org.apache.maven.settings.crypto.SettingsDecryptionResult; import org.codehaus.plexus.util.xml.Xpp3Dom; -import org.jetbrains.annotations.NotNull; import org.jspecify.annotations.Nullable; import org.openrewrite.ExecutionContext; import org.openrewrite.ParseExceptionResult; @@ -494,7 +493,7 @@ private Stream processTestSources( .map(addProvenance(baseDir, markers, null)); } - private @NotNull List listKotlinSources(MavenProject mavenProject, String fallbackSourceDirectory) throws MojoExecutionException { + private List listKotlinSources(MavenProject mavenProject, String fallbackSourceDirectory) throws MojoExecutionException { String kotlinSourceDir = getKotlinDirectory(fallbackSourceDirectory); return listSources(mavenProject.getBasedir().toPath().resolve(kotlinSourceDir != null ? kotlinSourceDir : fallbackSourceDirectory), ".kt"); } diff --git a/src/main/java/org/openrewrite/maven/package-info.java b/src/main/java/org/openrewrite/maven/package-info.java index 932f61ce..5f5a1e40 100644 --- a/src/main/java/org/openrewrite/maven/package-info.java +++ b/src/main/java/org/openrewrite/maven/package-info.java @@ -13,4 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ +@NullMarked package org.openrewrite.maven; + +import org.jspecify.annotations.NullMarked; From 3295c1a5c59221e63bd325c61d3381f02fd3400c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Merlin=20B=C3=B6gershausen?= Date: Tue, 28 Jan 2025 14:26:54 +0100 Subject: [PATCH 11/11] polishing with best practices subset --- src/main/java/org/openrewrite/maven/package-info.java | 4 +--- .../recipe_order/src/main/java/sample/EmptyBlockSample.java | 3 ++- 2 files changed, 3 insertions(+), 4 deletions(-) diff --git a/src/main/java/org/openrewrite/maven/package-info.java b/src/main/java/org/openrewrite/maven/package-info.java index 5f5a1e40..64cbe28c 100644 --- a/src/main/java/org/openrewrite/maven/package-info.java +++ b/src/main/java/org/openrewrite/maven/package-info.java @@ -13,7 +13,5 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -@NullMarked +@org.jspecify.annotations.NullMarked package org.openrewrite.maven; - -import org.jspecify.annotations.NullMarked; diff --git a/src/test/resources-its/org/openrewrite/maven/RewriteDryRunIT/recipe_order/src/main/java/sample/EmptyBlockSample.java b/src/test/resources-its/org/openrewrite/maven/RewriteDryRunIT/recipe_order/src/main/java/sample/EmptyBlockSample.java index 98161ca1..dcedad3a 100644 --- a/src/test/resources-its/org/openrewrite/maven/RewriteDryRunIT/recipe_order/src/main/java/sample/EmptyBlockSample.java +++ b/src/test/resources-its/org/openrewrite/maven/RewriteDryRunIT/recipe_order/src/main/java/sample/EmptyBlockSample.java @@ -1,6 +1,7 @@ package sample; -import java.nio.file.*; +import java.nio.file.Files; +import java.nio.file.Paths; import java.util.Random; public class EmptyBlockSample {