@@ -3506,6 +3506,94 @@ public String getHtml() {
35063506 """ ));
35073507 }
35083508
3509+ @ Test
3510+ void migrateCommonsLangToJdkApi () {
3511+ rewriteRun (
3512+ spec -> {
3513+ var parser = JavaParser .fromJavaVersion ().logCompilationWarningsAndErrors (true );
3514+
3515+ collectRewriteTestDependencies ().forEach (parser ::addClasspathEntry );
3516+
3517+ spec .recipeFromResource (
3518+ "/META-INF/rewrite/recipes.yml" ,
3519+ "io.jenkins.tools.pluginmodernizer.MigrateCommonsLangToJdkApi" )
3520+ .parser (parser );
3521+ },
3522+ // Stub
3523+ java ("""
3524+ package org.apache.commons.lang3;
3525+ public class StringUtils {
3526+ public static String defaultString(String str) {
3527+ return str == null ? "" : str;
3528+ }
3529+ public static String defaultString(String str, String defaultStr) {
3530+ return str == null ? defaultStr : str;
3531+ }
3532+ public static boolean isNotEmpty(String str) {
3533+ return str != null && !str.isEmpty();
3534+ }
3535+ }
3536+ """ ),
3537+ // Input → Output
3538+ java ("""
3539+ import org.apache.commons.lang3.StringUtils;
3540+
3541+ class MyComponent {
3542+ public String getDefault(String input) {
3543+ return StringUtils.defaultString(input);
3544+ }
3545+ public String getDefaultWithFallback(String input) {
3546+ return StringUtils.defaultString(input, "N/A");
3547+ }
3548+ }
3549+ """ , """
3550+ import java.util.Objects;
3551+
3552+ class MyComponent {
3553+ public String getDefault(String input) {
3554+ return Objects.toString(input, "");
3555+ }
3556+ public String getDefaultWithFallback(String input) {
3557+ return Objects.toString(input, "N/A");
3558+ }
3559+ }
3560+ """ ),
3561+ java ("""
3562+ import org.apache.commons.lang3.StringUtils;
3563+
3564+ class Test {
3565+ boolean check(String str) {
3566+ return StringUtils.isNotEmpty(str);
3567+ }
3568+ }
3569+ """ , """
3570+ class Test {
3571+ boolean check(String str) {
3572+ return str != null && !str.isEmpty();
3573+ }
3574+ }
3575+ """ ));
3576+ }
3577+
3578+ @ Test
3579+ void noChangeWhenNoCommonsLang () {
3580+ rewriteRun (
3581+ spec -> {
3582+ var parser = JavaParser .fromJavaVersion ().logCompilationWarningsAndErrors (true );
3583+ collectRewriteTestDependencies ().forEach (parser ::addClasspathEntry );
3584+
3585+ spec .recipeFromResource (
3586+ "/META-INF/rewrite/recipes.yml" ,
3587+ "io.jenkins.tools.pluginmodernizer.MigrateCommonsLangToJdkApi" )
3588+ .parser (parser );
3589+ },
3590+ java ("""
3591+ class Test {
3592+ String s = "hello";
3593+ }
3594+ """ ));
3595+ }
3596+
35093597 @ Test
35103598 void migrateToJUnit5 () {
35113599 rewriteRun (
0 commit comments