diff --git a/spring-beans/src/main/java/org/springframework/beans/factory/aot/BeanDefinitionMethodGenerator.java b/spring-beans/src/main/java/org/springframework/beans/factory/aot/BeanDefinitionMethodGenerator.java index 9ad1b274cb6..b92945d7dfb 100644 --- a/spring-beans/src/main/java/org/springframework/beans/factory/aot/BeanDefinitionMethodGenerator.java +++ b/spring-beans/src/main/java/org/springframework/beans/factory/aot/BeanDefinitionMethodGenerator.java @@ -25,12 +25,12 @@ import org.springframework.aot.generate.GeneratedClass; import org.springframework.aot.generate.GeneratedMethod; import org.springframework.aot.generate.GeneratedMethods; import org.springframework.aot.generate.GenerationContext; -import org.springframework.aot.generate.MethodName; import org.springframework.aot.generate.MethodReference; import org.springframework.beans.factory.config.BeanDefinition; import org.springframework.beans.factory.support.RegisteredBean; import org.springframework.javapoet.ClassName; import org.springframework.lang.Nullable; +import org.springframework.util.StringUtils; /** * Generates a method that returns a {@link BeanDefinition} to be registered. @@ -153,7 +153,7 @@ class BeanDefinitionMethodGenerator { nonGeneratedParent = nonGeneratedParent.getParent(); } if (nonGeneratedParent != null) { - return MethodName.of(getSimpleBeanName(nonGeneratedParent.getBeanName()), "innerBean").toString(); + return StringUtils.uncapitalize(getSimpleBeanName(nonGeneratedParent.getBeanName()) + "InnerBean"); } return "innerBean"; } diff --git a/spring-core/src/main/java/org/springframework/aot/generate/GeneratedMethods.java b/spring-core/src/main/java/org/springframework/aot/generate/GeneratedMethods.java index 02069976d33..3d8e626a133 100644 --- a/spring-core/src/main/java/org/springframework/aot/generate/GeneratedMethods.java +++ b/spring-core/src/main/java/org/springframework/aot/generate/GeneratedMethods.java @@ -68,17 +68,6 @@ public class GeneratedMethods { * @return the newly added {@link GeneratedMethod} */ public GeneratedMethod add(String suggestedName, Consumer method) { - Assert.notNull(suggestedName, "'suggestedName' must not be null"); - return add(MethodName.of(suggestedName), method); - } - - /** - * Add a new {@link GeneratedMethod}. - * @param suggestedName the suggested name for the method - * @param method a {@link Consumer} used to build the method - * @return the newly added {@link GeneratedMethod} - */ - public GeneratedMethod add(MethodName suggestedName, Consumer method) { Assert.notNull(suggestedName, "'suggestedName' must not be null"); Assert.notNull(method, "'method' must not be null"); String generatedName = this.methodNameGenerator.apply(this.prefix.and(suggestedName)); diff --git a/spring-core/src/main/java/org/springframework/aot/generate/MethodName.java b/spring-core/src/main/java/org/springframework/aot/generate/MethodName.java index af218d558d3..180c3f083ba 100644 --- a/spring-core/src/main/java/org/springframework/aot/generate/MethodName.java +++ b/spring-core/src/main/java/org/springframework/aot/generate/MethodName.java @@ -28,7 +28,7 @@ import org.springframework.util.StringUtils; * @author Phillip Webb * @since 6.0 */ -public final class MethodName { +final class MethodName { private static final String[] PREFIXES = { "get", "set", "is" }; @@ -51,7 +51,7 @@ public final class MethodName { * @param parts the parts the form the name * @return a method name instance */ - public static MethodName of(String... parts) { + static MethodName of(String... parts) { Assert.notNull(parts, "'parts' must not be null"); return new MethodName(join(parts)); } @@ -61,7 +61,7 @@ public final class MethodName { * @param name the name to concatenate * @return a new method name instance */ - public MethodName and(MethodName name) { + MethodName and(MethodName name) { Assert.notNull(name, "'name' must not be null"); return and(name.value); } @@ -71,7 +71,7 @@ public final class MethodName { * @param parts the parts to concatenate * @return a new method name instance */ - public MethodName and(String... parts) { + MethodName and(String... parts) { Assert.notNull(parts, "'parts' must not be null"); String joined = join(parts); String prefix = getPrefix(joined); diff --git a/spring-core/src/test/java/org/springframework/aot/generate/GeneratedMethodsTests.java b/spring-core/src/test/java/org/springframework/aot/generate/GeneratedMethodsTests.java index a4755f52945..2ae2517e6c8 100644 --- a/spring-core/src/test/java/org/springframework/aot/generate/GeneratedMethodsTests.java +++ b/spring-core/src/test/java/org/springframework/aot/generate/GeneratedMethodsTests.java @@ -52,20 +52,6 @@ class GeneratedMethodsTests { assertThat(methods.add("test", methodSpecCustomizer).getName()).hasToString("__test"); } - @Test - void addWithMethodNameWhenSuggestedMethodIsNullThrowsException() { - assertThatIllegalArgumentException().isThrownBy(() -> - this.methods.add((MethodName) null, methodSpecCustomizer)) - .withMessage("'suggestedName' must not be null"); - } - - @Test - void addWithMethodNameWhenMethodIsNullThrowsException() { - assertThatIllegalArgumentException().isThrownBy(() -> - this.methods.add(MethodName.of("test"), null)) - .withMessage("'method' must not be null"); - } - @Test void addWithStringNameWhenSuggestedMethodIsNullThrowsException() { assertThatIllegalArgumentException().isThrownBy(() -> diff --git a/spring-orm/src/main/java/org/springframework/orm/jpa/support/PersistenceAnnotationBeanPostProcessor.java b/spring-orm/src/main/java/org/springframework/orm/jpa/support/PersistenceAnnotationBeanPostProcessor.java index b5d08004b6c..0f3aae4dc47 100644 --- a/spring-orm/src/main/java/org/springframework/orm/jpa/support/PersistenceAnnotationBeanPostProcessor.java +++ b/spring-orm/src/main/java/org/springframework/orm/jpa/support/PersistenceAnnotationBeanPostProcessor.java @@ -43,7 +43,6 @@ import org.springframework.aot.generate.GeneratedClass; import org.springframework.aot.generate.GeneratedMethod; import org.springframework.aot.generate.GeneratedMethods; import org.springframework.aot.generate.GenerationContext; -import org.springframework.aot.generate.MethodName; import org.springframework.aot.generate.MethodReference; import org.springframework.aot.hint.RuntimeHints; import org.springframework.beans.BeanUtils; @@ -826,8 +825,8 @@ public class PersistenceAnnotationBeanPostProcessor implements InstantiationAwar EntityManagerFactoryUtils.class, ListableBeanFactory.class, REGISTERED_BEAN_PARAMETER, unitName); } - GeneratedMethod generatedMethod = generatedMethods - .add(MethodName.of("get", unitName, "EntityManager"), method -> + String methodName = "get" + StringUtils.capitalize(unitName) + "EntityManager"; + GeneratedMethod generatedMethod = generatedMethods.add(methodName, method -> generateGetEntityManagerMethod(method, injectedElement)); return CodeBlock.of("$L($L)", generatedMethod.getName(), REGISTERED_BEAN_PARAMETER); }