diff --git a/src/main/resources/META-INF/rewrite/examples.yml b/src/main/resources/META-INF/rewrite/examples.yml index 3fcc0be98a..fb9ee482fa 100644 --- a/src/main/resources/META-INF/rewrite/examples.yml +++ b/src/main/resources/META-INF/rewrite/examples.yml @@ -384,6 +384,47 @@ examples: language: java --- type: specs.openrewrite.org/v1beta/example +recipeName: org.openrewrite.java.migrate.DontOverfetchDto +examples: +- description: '`DontOverfetchDtoTest#findDtoOverfetching`' + parameters: + - animals.Dog + - name + sources: + - before: | + import animals.Dog; + + class Test { + boolean test(Dog dog, int age) { + if(dog.getName() != null) { + return true; + } + } + } + after: | + class Test { + boolean test(java.lang.String name, int age) { + if(name != null) { + return true; + } + } + } + language: java + - before: | + package animals; + public class Dog { + String name; + String breed; + public String getName() { + return name; + } + public String getBreed() { + return breed; + } + } + language: java +--- +type: specs.openrewrite.org/v1beta/example recipeName: org.openrewrite.java.migrate.IBMJDKtoOracleJDK examples: - description: '`IBMJDKtoOracleJDKTest#Krb5LoginModuleTest`' @@ -3364,6 +3405,23 @@ examples: type: specs.openrewrite.org/v1beta/example recipeName: org.openrewrite.java.migrate.guava.NoGuava examples: +- description: '`NoGuavaJava21Test#preferMathClampForDouble`' + sources: + - before: | + import com.google.common.primitives.Doubles; + + class Test { + public double testMethod() { + return Doubles.constrainToRange(20D, 10D, 100D); + } + } + after: | + class Test { + public double testMethod() { + return Math.clamp(20D, 10D, 100D); + } + } + language: java - description: '`NoGuavaTest#moreObjectsFirstNonNullToObjectsRequireNonNullElse`' sources: - before: | @@ -3509,6 +3567,46 @@ examples: language: java --- type: specs.openrewrite.org/v1beta/example +recipeName: org.openrewrite.java.migrate.guava.NoGuavaImmutableListOf +examples: +- description: '`NoGuavaImmutableListOfTest#replaceArguments`' + sources: + - before: | + import java.util.List; + import com.google.common.collect.ImmutableList; + + class Test { + List m = ImmutableList.of("A", "B", "C", "D"); + } + after: | + import java.util.List; + + class Test { + List m = List.of("A", "B", "C", "D"); + } + language: java +--- +type: specs.openrewrite.org/v1beta/example +recipeName: org.openrewrite.java.migrate.guava.NoGuavaImmutableMapOf +examples: +- description: '`NoGuavaImmutableMapOfTest#replaceArguments`' + sources: + - before: | + import java.util.Map; + import com.google.common.collect.ImmutableMap; + + class Test { + Map m = ImmutableMap.of("A", "B", "C", "D"); + } + after: | + import java.util.Map; + + class Test { + Map m = Map.of("A", "B", "C", "D"); + } + language: java +--- +type: specs.openrewrite.org/v1beta/example recipeName: org.openrewrite.java.migrate.guava.NoGuavaImmutableSetOf examples: - description: '`NoGuavaImmutableSetOfTest#replaceArguments`' @@ -4592,6 +4690,39 @@ examples: language: xml --- type: specs.openrewrite.org/v1beta/example +recipeName: org.openrewrite.java.migrate.jakarta.JavaxMailToJakartaMail +examples: +- description: '`JavaxMailToJakartaMailTest#switchesJavaxMailApiDependencyToJakartaMailApiDependency`' + sources: + - before: | + import javax.mail.Session; + public class TestApplication { + } + after: | + import jakarta.mail.Session; + public class TestApplication { + } + language: java + - before: Sample + language: mavenProject + - before: | + + 4.0.0 + com.example + demo + 0.0.1-SNAPSHOT + + + javax.mail + javax.mail-api + 1.4.7 + + + + path: pom.xml + language: xml +--- +type: specs.openrewrite.org/v1beta/example recipeName: org.openrewrite.java.migrate.jakarta.JavaxMigrationToJakarta examples: - description: '`JavaxToJakartaTest#changeImport`' @@ -4607,6 +4738,39 @@ examples: language: java --- type: specs.openrewrite.org/v1beta/example +recipeName: org.openrewrite.java.migrate.jakarta.JavaxServletToJakartaServlet +examples: +- description: '`JavaxServletToJakartaServletTest#switchesJavaxServletApiDependencyToJakartaServletApiDependency`' + sources: + - before: | + import javax.servlet.Filter; + public class TestApplication { + } + after: | + import jakarta.servlet.Filter; + public class TestApplication { + } + language: java + - before: Sample + language: mavenProject + - before: | + + 4.0.0 + com.example + demo + 0.0.1-SNAPSHOT + + + javax.servlet + javax.servlet-api + 4.0.1 + + + + path: pom.xml + language: xml +--- +type: specs.openrewrite.org/v1beta/example recipeName: org.openrewrite.java.migrate.jakarta.JavaxTransactionMigrationToJakartaTransaction examples: - description: '`JavaxTransactionMigrationToJakartaTransactionTest#changeImportWhenPackageFromJakartaTransaction`' @@ -4684,6 +4848,63 @@ examples: language: xml --- type: specs.openrewrite.org/v1beta/example +recipeName: org.openrewrite.java.migrate.jakarta.JavaxWsToJakartaWs +examples: +- description: '`JavaxWsToJakartaWsTest#switchesJavaxWsApiDependencyToJakartaWsApiDependency`' + sources: + - before: | + import javax.ws.rs.core.MediaType; + public class TestApplication { + MediaType getType() { + return MediaType.APPLICATION_JSON_TYPE; + } + } + after: | + import jakarta.ws.rs.core.MediaType; + public class TestApplication { + MediaType getType() { + return MediaType.APPLICATION_JSON_TYPE; + } + } + language: java + - before: Sample + language: mavenProject + - before: | + + + 4.0.0 + com.example + demo + 0.0.1-SNAPSHOT + + + javax.ws.rs + javax.ws.rs-api + 2.1.1 + + + + after: | + + + 4.0.0 + com.example + demo + 0.0.1-SNAPSHOT + + + jakarta.ws.rs + jakarta.ws.rs-api + 3.0.0 + + + + path: pom.xml + language: xml +--- +type: specs.openrewrite.org/v1beta/example recipeName: org.openrewrite.java.migrate.jakarta.JavaxXmlToJakartaXmlXJCBinding examples: - description: '`Migrate#both`' @@ -5408,6 +5629,45 @@ examples: language: java --- type: specs.openrewrite.org/v1beta/example +recipeName: org.openrewrite.java.migrate.javax.AddCommonAnnotationsDependencies +examples: +- description: '`AddCommonAnnotationsDependenciesTest#addDependencyIfAnnotationJsr250Present`' + sources: + - before: | + import javax.annotation.Generated; + + @Generated("Hello") + class A { + } + language: java + - before: my-project + language: mavenProject + - before: | + + 4.0.0 + org.sample + sample + 1.0.0 + + after: | + + 4.0.0 + org.sample + sample + 1.0.0 + + + jakarta.annotation + jakarta.annotation-api + 1.3.5 + provided + + + + path: pom.xml + language: xml +--- +type: specs.openrewrite.org/v1beta/example recipeName: org.openrewrite.java.migrate.javax.AddDefaultConstructorToEntityClass examples: - description: '`AddDefaultConstructorToEntityClassTest#addMissingDefaultConstructorToEntity`' @@ -6249,6 +6509,27 @@ examples: language: java --- type: specs.openrewrite.org/v1beta/example +recipeName: org.openrewrite.java.migrate.lang.StringFormatted +examples: +- description: '`StringFormattedTest#concatenatedText`' + parameters: + - 'null' + sources: + - before: | + package com.example.app; + class A { + String str = String.format("foo" + + "%s", "a"); + } + after: | + package com.example.app; + class A { + String str = ("foo" + + "%s").formatted("a"); + } + language: java +--- +type: specs.openrewrite.org/v1beta/example recipeName: org.openrewrite.java.migrate.lang.StringRulesRecipes examples: - description: '`StringRulesTest#substring`' @@ -6917,6 +7198,53 @@ examples: language: java --- type: specs.openrewrite.org/v1beta/example +recipeName: org.openrewrite.java.migrate.lombok.UpdateLombokToJava11 +examples: +- description: '`UpdateLombokToJava11Test#updateLombokToJava11`' + sources: + - before: | + import lombok.experimental.Wither; + import lombok.experimental.Builder; + import lombok.experimental.Value; + + @Wither + @Builder + @Value + public class Fred { + private String firstName; + private String lastName; + } + after: | + import lombok.Value; + import lombok.With; + import lombok.Builder; + + @With + @Builder + @Value + public class Fred { + private String firstName; + private String lastName; + } + language: java + - before: | + + 4.0.0 + com.example.jackson + jackson-legacy + 1.0.0 + + + org.projectlombok + lombok + 1.18.6 + + + + path: pom.xml + language: xml +--- +type: specs.openrewrite.org/v1beta/example recipeName: org.openrewrite.java.migrate.lombok.UseLombokGetter examples: - description: '`UseLombokGetterTest#replaceGetter`' @@ -7394,6 +7722,42 @@ examples: language: java --- type: specs.openrewrite.org/v1beta/example +recipeName: org.openrewrite.java.migrate.search.FindInternalJavaxApis +examples: +- description: '`FindInternalJavaxApisTest#returnsJavaxApi`' + parameters: + - 'null' + sources: + - before: | + package org.openrewrite; + + import javax.xml.stream.StreamFilter; + + class Consumer { + void test(Api api) { + StreamFilter sf = api.test(); + } + } + after: | + package org.openrewrite; + + import javax.xml.stream.StreamFilter; + + class Consumer { + void test(Api api) { + StreamFilter sf = /*~~>*/api.test(); + } + } + language: java + - before: | + package org.openrewrite; + + interface Api { + javax.xml.stream.StreamFilter test(); + } + language: java +--- +type: specs.openrewrite.org/v1beta/example recipeName: org.openrewrite.java.migrate.search.FindJavaVersion examples: - description: '`FindJavaVersionTest#twoClassesWithSameMarkerLeadToOneRow`' @@ -7553,6 +7917,52 @@ examples: language: java --- type: specs.openrewrite.org/v1beta/example +recipeName: org.openrewrite.java.migrate.util.OptionalNotEmptyToIsPresent +examples: +- description: '`OptionalNotEmptyToIsPresentTest#replaceNotIsEmptyWithIsPresent`' + sources: + - before: | + package com.example.app; + import java.util.Optional; + class App { + boolean notEmpty(Optional bar){ + return !bar.isEmpty(); + } + } + after: | + package com.example.app; + import java.util.Optional; + class App { + boolean notEmpty(Optional bar){ + return bar.isPresent(); + } + } + language: java +--- +type: specs.openrewrite.org/v1beta/example +recipeName: org.openrewrite.java.migrate.util.OptionalNotPresentToIsEmpty +examples: +- description: '`OptionalNotPresentToIsEmptyTest#replaceNotIsPresentWithIsEmpty`' + sources: + - before: | + package com.example.app; + import java.util.Optional; + class App { + boolean notPresent(Optional bar){ + return !bar.isPresent(); + } + } + after: | + package com.example.app; + import java.util.Optional; + class App { + boolean notPresent(Optional bar){ + return bar.isEmpty(); + } + } + language: java +--- +type: specs.openrewrite.org/v1beta/example recipeName: org.openrewrite.java.migrate.util.OptionalStreamRecipe examples: - description: '`OptionalStreamRecipeTest#basic_case`' @@ -7677,6 +8087,59 @@ examples: language: java --- type: specs.openrewrite.org/v1beta/example +recipeName: org.openrewrite.java.migrate.util.UseEnumSetOf +examples: +- description: '`UseEnumSetOfTest#changeDeclaration`' + sources: + - before: | + import java.util.Set; + + class Test { + public enum Color { + RED, GREEN, BLUE + } + public void method() { + Set warm = Set.of(Color.RED, Color.GREEN); + } + } + after: | + import java.util.EnumSet; + import java.util.Set; + + class Test { + public enum Color { + RED, GREEN, BLUE + } + public void method() { + Set warm = EnumSet.of(Color.RED, Color.GREEN); + } + } + language: java +--- +type: specs.openrewrite.org/v1beta/example +recipeName: org.openrewrite.java.migrate.util.UseLocaleOf +examples: +- description: '`UseLocaleOfTest#localeOf`' + sources: + - before: | + import java.util.Locale; + + class Test { + Locale locale1 = new Locale("english"); + Locale locale2 = new Locale("english", "us"); + Locale locale3 = new Locale("english", "us", ""); + } + after: | + import java.util.Locale; + + class Test { + Locale locale1 = Locale.of("english"); + Locale locale2 = Locale.of("english", "us"); + Locale locale3 = Locale.of("english", "us", ""); + } + language: java +--- +type: specs.openrewrite.org/v1beta/example recipeName: org.openrewrite.java.migrate.util.UseMapOf examples: - description: '`UseMapOfTest#anonymousClass`'