Skip to content

Commit 739a032

Browse files
committed
Create a Guava recipe to inline methods and move the tests there
1 parent 5a4359f commit 739a032

3 files changed

Lines changed: 95 additions & 80 deletions

File tree

src/main/resources/META-INF/rewrite/no-guava.yml

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,7 @@ recipeList:
2929
- org.openrewrite.java.migrate.guava.NoGuavaJava21
3030
- org.openrewrite.java.migrate.guava.NoGuavaCreateTempDir
3131
- org.openrewrite.java.migrate.guava.NoGuavaDirectExecutor
32+
- org.openrewrite.java.migrate.guava.NoGuavaInlineMeMethods
3233
- org.openrewrite.java.migrate.guava.NoGuavaListsNewArrayList
3334
- org.openrewrite.java.migrate.guava.NoGuavaListsNewCopyOnWriteArrayList
3435
- org.openrewrite.java.migrate.guava.NoGuavaListsNewLinkedList
@@ -108,6 +109,20 @@ recipeList:
108109
- org.openrewrite.java.migrate.guava.NoMapsAndSetsWithExpectedSize
109110
- org.openrewrite.java.migrate.guava.PreferMathClamp
110111

112+
---
113+
type: specs.openrewrite.org/v1beta/recipe
114+
name: org.openrewrite.java.migrate.guava.NoGuavaInlineMeMethods
115+
displayName: Inline Guava method calls
116+
description: >-
117+
Inline Guava method calls that are annotated with `@InlineMe` to their replacement method.
118+
tags:
119+
- guava
120+
preconditions:
121+
- org.openrewrite.analysis.search.FindMethods:
122+
methodPattern: com.google.common..* *(..)
123+
recipeList:
124+
- org.openrewrite.java.migrate.InlineMethodCalls
125+
111126
---
112127
type: specs.openrewrite.org/v1beta/recipe
113128
name: org.openrewrite.java.migrate.guava.PreferJavaNioCharsetStandardCharsets

src/test/java/org/openrewrite/java/migrate/InlineMethodCallsTest.java

Lines changed: 0 additions & 80 deletions
Original file line numberDiff line numberDiff line change
@@ -15,19 +15,12 @@
1515
*/
1616
package org.openrewrite.java.migrate;
1717

18-
import org.junit.jupiter.api.Nested;
1918
import org.junit.jupiter.api.Test;
2019
import org.openrewrite.DocumentExample;
21-
import org.openrewrite.Recipe;
2220
import org.openrewrite.java.JavaParser;
23-
import org.openrewrite.java.tree.J;
24-
import org.openrewrite.java.tree.JavaSourceFile;
2521
import org.openrewrite.test.RecipeSpec;
2622
import org.openrewrite.test.RewriteTest;
2723

28-
import java.util.List;
29-
30-
import static org.assertj.core.api.Assertions.assertThat;
3124
import static org.openrewrite.java.Assertions.java;
3225

3326
class InlineMethodCallsTest implements RewriteTest {
@@ -444,77 +437,4 @@ void foo(Builder builder) {
444437
)
445438
);
446439
}
447-
448-
@Nested
449-
class Guava {
450-
@Test
451-
void stringsRegular() {
452-
rewriteRun(
453-
java(
454-
"""
455-
import com.google.common.base.Strings;
456-
class Regular {
457-
String repeatString(String s, int n) {
458-
return Strings.repeat(s, n);
459-
}
460-
}
461-
""",
462-
"""
463-
class Regular {
464-
String repeatString(String s, int n) {
465-
return s.repeat(n);
466-
}
467-
}
468-
"""
469-
)
470-
);
471-
}
472-
473-
@Test
474-
void stringsStaticImport() {
475-
rewriteRun(
476-
java(
477-
"""
478-
import static com.google.common.base.Strings.repeat;
479-
class StaticImport {
480-
String repeatString(String s, int n) {
481-
return repeat(s, n);
482-
}
483-
}
484-
""",
485-
"""
486-
class StaticImport {
487-
String repeatString(String s, int n) {
488-
return s.repeat(n);
489-
}
490-
}
491-
"""
492-
)
493-
);
494-
}
495-
496-
@Test
497-
void methodTypeParameterNames() {
498-
rewriteRun(
499-
spec -> spec.beforeRecipe(list -> {
500-
JavaSourceFile first = (JavaSourceFile) list.getFirst();
501-
J.MethodDeclaration foo = (J.MethodDeclaration) first.getClasses().getFirst().getBody().getStatements().getFirst();
502-
J.MethodInvocation repeat = (J.MethodInvocation) foo.getBody().getStatements().getFirst();
503-
List<String> parameterNames = repeat.getMethodType().getParameterNames();
504-
assertThat(parameterNames).containsExactly("string", "count");
505-
})
506-
.recipe(Recipe.noop()),
507-
java(
508-
"""
509-
import com.google.common.base.Strings;
510-
class Foo {
511-
void foo(String s, int n) {
512-
Strings.repeat(s, n);
513-
}
514-
}
515-
"""
516-
)
517-
);
518-
}
519-
}
520440
}
Lines changed: 80 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,80 @@
1+
/*
2+
* Copyright 2025 the original author or authors.
3+
* <p>
4+
* Licensed under the Moderne Source Available License (the "License");
5+
* you may not use this file except in compliance with the License.
6+
* You may obtain a copy of the License at
7+
* <p>
8+
* https://docs.moderne.io/licensing/moderne-source-available-license
9+
* <p>
10+
* Unless required by applicable law or agreed to in writing, software
11+
* distributed under the License is distributed on an "AS IS" BASIS,
12+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13+
* See the License for the specific language governing permissions and
14+
* limitations under the License.
15+
*/
16+
package org.openrewrite.java.migrate.guava;
17+
18+
import org.junit.jupiter.api.Test;
19+
import org.openrewrite.DocumentExample;
20+
import org.openrewrite.test.RecipeSpec;
21+
import org.openrewrite.test.RewriteTest;
22+
23+
import static org.openrewrite.java.Assertions.java;
24+
25+
class NoGuavaInlineMeMethods implements RewriteTest {
26+
27+
@Override
28+
public void defaults(RecipeSpec spec) {
29+
spec.recipeFromResource(
30+
"/META-INF/rewrite/no-guava.yml",
31+
"org.openrewrite.java.migrate.guava.NoGuavaInlineMeMethods");
32+
}
33+
34+
@DocumentExample
35+
@Test
36+
void stringsRegular() {
37+
rewriteRun(
38+
java(
39+
"""
40+
import com.google.common.base.Strings;
41+
class Regular {
42+
String repeatString(String s, int n) {
43+
return Strings.repeat(s, n);
44+
}
45+
}
46+
""",
47+
"""
48+
class Regular {
49+
String repeatString(String s, int n) {
50+
return s.repeat(n);
51+
}
52+
}
53+
"""
54+
)
55+
);
56+
}
57+
58+
@Test
59+
void stringsStaticImport() {
60+
rewriteRun(
61+
java(
62+
"""
63+
import static com.google.common.base.Strings.repeat;
64+
class StaticImport {
65+
String repeatString(String s, int n) {
66+
return repeat(s, n);
67+
}
68+
}
69+
""",
70+
"""
71+
class StaticImport {
72+
String repeatString(String s, int n) {
73+
return s.repeat(n);
74+
}
75+
}
76+
"""
77+
)
78+
);
79+
}
80+
}

0 commit comments

Comments
 (0)