Browse Source

Polishing.

Remove MethodParameter.initParameterNameDiscovery(…) calls using DefaultParameterNameDiscoverer as MethodParameter uses the shared DefaultParameterNameDiscoverer instance already.

See #3431
Original pull request: #3432
pull/3438/head
Mark Paluch 4 weeks ago
parent
commit
4d3efbfbf4
No known key found for this signature in database
GPG Key ID: 55BC6374BAA9D973
  1. 1
      src/main/java/org/springframework/data/mapping/model/InstanceCreatorMetadataDiscoverer.java
  2. 1
      src/main/java/org/springframework/data/mapping/model/PreferredConstructorDiscoverer.java
  3. 3
      src/main/java/org/springframework/data/repository/aot/generate/AotRepositoryBeanDefinitionPropertiesDecorator.java
  4. 7
      src/main/java/org/springframework/data/repository/aot/generate/MethodMetadata.java
  5. 3
      src/main/java/org/springframework/data/repository/support/MethodParameters.java
  6. 7
      src/main/java/org/springframework/data/util/NullnessMethodInvocationValidator.java
  7. 2
      src/test/kotlin/org/springframework/data/repository/query/KParameterUnitTests.kt

1
src/main/java/org/springframework/data/mapping/model/InstanceCreatorMetadataDiscoverer.java

@ -32,7 +32,6 @@ import org.jspecify.annotations.Nullable;
import org.springframework.core.DefaultParameterNameDiscoverer; import org.springframework.core.DefaultParameterNameDiscoverer;
import org.springframework.core.KotlinDetector; import org.springframework.core.KotlinDetector;
import org.springframework.core.ParameterNameDiscoverer;
import org.springframework.core.annotation.MergedAnnotations; import org.springframework.core.annotation.MergedAnnotations;
import org.springframework.data.annotation.PersistenceCreator; import org.springframework.data.annotation.PersistenceCreator;
import org.springframework.data.core.TypeInformation; import org.springframework.data.core.TypeInformation;

1
src/main/java/org/springframework/data/mapping/model/PreferredConstructorDiscoverer.java

@ -32,7 +32,6 @@ import org.jspecify.annotations.Nullable;
import org.springframework.core.DefaultParameterNameDiscoverer; import org.springframework.core.DefaultParameterNameDiscoverer;
import org.springframework.core.KotlinDetector; import org.springframework.core.KotlinDetector;
import org.springframework.core.ParameterNameDiscoverer;
import org.springframework.core.annotation.AnnotationUtils; import org.springframework.core.annotation.AnnotationUtils;
import org.springframework.data.annotation.PersistenceCreator; import org.springframework.data.annotation.PersistenceCreator;
import org.springframework.data.core.TypeInformation; import org.springframework.data.core.TypeInformation;

3
src/main/java/org/springframework/data/repository/aot/generate/AotRepositoryBeanDefinitionPropertiesDecorator.java

@ -26,7 +26,6 @@ import javax.lang.model.element.Modifier;
import org.springframework.beans.factory.BeanFactory; import org.springframework.beans.factory.BeanFactory;
import org.springframework.beans.factory.config.BeanDefinition; import org.springframework.beans.factory.config.BeanDefinition;
import org.springframework.core.DefaultParameterNameDiscoverer;
import org.springframework.core.MethodParameter; import org.springframework.core.MethodParameter;
import org.springframework.core.ResolvableType; import org.springframework.core.ResolvableType;
import org.springframework.data.repository.aot.generate.AotRepositoryFragmentMetadata.ConstructorArgument; import org.springframework.data.repository.aot.generate.AotRepositoryFragmentMetadata.ConstructorArgument;
@ -102,8 +101,6 @@ public class AotRepositoryBeanDefinitionPropertiesDecorator {
for (int i = 0; i < it.getParameterCount(); i++) { for (int i = 0; i < it.getParameterCount(); i++) {
MethodParameter parameter = new MethodParameter(it, i); MethodParameter parameter = new MethodParameter(it, i);
parameter.initParameterNameDiscovery(DefaultParameterNameDiscoverer.getSharedInstance());
callbackMethod.addParameter(parameter.getParameterType(), parameter.getParameterName()); callbackMethod.addParameter(parameter.getParameterType(), parameter.getParameterName());
} }

7
src/main/java/org/springframework/data/repository/aot/generate/MethodMetadata.java

@ -27,9 +27,7 @@ import java.util.function.Function;
import org.jspecify.annotations.Nullable; import org.jspecify.annotations.Nullable;
import org.springframework.core.DefaultParameterNameDiscoverer;
import org.springframework.core.MethodParameter; import org.springframework.core.MethodParameter;
import org.springframework.core.ParameterNameDiscoverer;
import org.springframework.core.ResolvableType; import org.springframework.core.ResolvableType;
import org.springframework.data.core.TypeInformation; import org.springframework.data.core.TypeInformation;
import org.springframework.data.javapoet.TypeNames; import org.springframework.data.javapoet.TypeNames;
@ -64,7 +62,7 @@ class MethodMetadata {
ResolvableType repositoryInterface = ResolvableType.forClass(repositoryInformation.getRepositoryInterface()); ResolvableType repositoryInterface = ResolvableType.forClass(repositoryInformation.getRepositoryInterface());
initializeMethodArguments(method, DefaultParameterNameDiscoverer.getSharedInstance(), repositoryInterface, methodArguments, methodParameters); initializeMethodArguments(method, repositoryInterface, methodArguments, methodParameters);
this.methodArguments = Collections.unmodifiableMap(methodArguments); this.methodArguments = Collections.unmodifiableMap(methodArguments);
this.methodParameters = Collections.unmodifiableMap(methodParameters); this.methodParameters = Collections.unmodifiableMap(methodParameters);
@ -75,7 +73,7 @@ class MethodMetadata {
: type.toResolvableType(); : type.toResolvableType();
} }
private static void initializeMethodArguments(Method method, ParameterNameDiscoverer nameDiscoverer, private static void initializeMethodArguments(Method method,
ResolvableType repositoryInterface, Map<String, ParameterSpec> methodArguments, ResolvableType repositoryInterface, Map<String, ParameterSpec> methodArguments,
Map<String, MethodParameter> methodParameters) { Map<String, MethodParameter> methodParameters) {
@ -85,7 +83,6 @@ class MethodMetadata {
MethodParameter methodParameter = MethodParameter.forParameter(parameter) MethodParameter methodParameter = MethodParameter.forParameter(parameter)
.withContainingClass(repositoryInterfaceType); .withContainingClass(repositoryInterfaceType);
methodParameter.initParameterNameDiscovery(nameDiscoverer);
TypeName parameterType = parameterTypeName(methodParameter, repositoryInterfaceType); TypeName parameterType = parameterTypeName(methodParameter, repositoryInterfaceType);

3
src/main/java/org/springframework/data/repository/support/MethodParameters.java

@ -24,9 +24,7 @@ import java.util.stream.Collectors;
import org.jspecify.annotations.Nullable; import org.jspecify.annotations.Nullable;
import org.springframework.core.DefaultParameterNameDiscoverer;
import org.springframework.core.MethodParameter; import org.springframework.core.MethodParameter;
import org.springframework.core.ParameterNameDiscoverer;
import org.springframework.data.util.Lazy; import org.springframework.data.util.Lazy;
import org.springframework.util.Assert; import org.springframework.util.Assert;
@ -65,7 +63,6 @@ class MethodParameters {
for (int i = 0; i < method.getParameterCount(); i++) { for (int i = 0; i < method.getParameterCount(); i++) {
MethodParameter parameter = new AnnotationNamingMethodParameter(method, i, namingAnnotation); MethodParameter parameter = new AnnotationNamingMethodParameter(method, i, namingAnnotation);
parameter.initParameterNameDiscovery(DefaultParameterNameDiscoverer.getSharedInstance());
parameters.add(parameter); parameters.add(parameter);
} }
} }

7
src/main/java/org/springframework/data/util/NullnessMethodInvocationValidator.java

@ -28,11 +28,9 @@ import org.aopalliance.intercept.MethodInvocation;
import org.jspecify.annotations.NullMarked; import org.jspecify.annotations.NullMarked;
import org.jspecify.annotations.Nullable; import org.jspecify.annotations.Nullable;
import org.springframework.core.DefaultParameterNameDiscoverer;
import org.springframework.core.KotlinDetector; import org.springframework.core.KotlinDetector;
import org.springframework.core.MethodParameter; import org.springframework.core.MethodParameter;
import org.springframework.core.Nullness; import org.springframework.core.Nullness;
import org.springframework.core.ParameterNameDiscoverer;
import org.springframework.util.ClassUtils; import org.springframework.util.ClassUtils;
import org.springframework.util.ObjectUtils; import org.springframework.util.ObjectUtils;
@ -78,7 +76,7 @@ public class NullnessMethodInvocationValidator implements MethodInterceptor {
if (nullness == null) { if (nullness == null) {
nullness = MethodNullness.of(method, DefaultParameterNameDiscoverer.getSharedInstance()); nullness = MethodNullness.of(method);
nullabilityCache.put(method, nullness); nullabilityCache.put(method, nullness);
} }
@ -140,7 +138,7 @@ public class NullnessMethodInvocationValidator implements MethodInterceptor {
this.methodParameters = methodParameters; this.methodParameters = methodParameters;
} }
static MethodNullness of(Method method, ParameterNameDiscoverer discoverer) { static MethodNullness of(Method method) {
boolean nullableReturn = isNullableParameter(new MethodParameter(method, -1)); boolean nullableReturn = isNullableParameter(new MethodParameter(method, -1));
boolean[] nullableParameters = new boolean[method.getParameterCount()]; boolean[] nullableParameters = new boolean[method.getParameterCount()];
@ -149,7 +147,6 @@ public class NullnessMethodInvocationValidator implements MethodInterceptor {
for (int i = 0; i < method.getParameterCount(); i++) { for (int i = 0; i < method.getParameterCount(); i++) {
MethodParameter parameter = new MethodParameter(method, i); MethodParameter parameter = new MethodParameter(method, i);
parameter.initParameterNameDiscovery(discoverer);
nullableParameters[i] = isNullableParameter(parameter); nullableParameters[i] = isNullableParameter(parameter);
methodParameters[i] = parameter; methodParameters[i] = parameter;
} }

2
src/test/kotlin/org/springframework/data/repository/query/KParameterUnitTests.kt

@ -17,7 +17,6 @@ package org.springframework.data.repository.query
import org.assertj.core.api.Assertions.assertThat import org.assertj.core.api.Assertions.assertThat
import org.junit.jupiter.api.Test import org.junit.jupiter.api.Test
import org.springframework.core.DefaultParameterNameDiscoverer
import org.springframework.core.MethodParameter import org.springframework.core.MethodParameter
import org.springframework.data.core.TypeInformation import org.springframework.data.core.TypeInformation
import kotlin.reflect.jvm.javaMethod import kotlin.reflect.jvm.javaMethod
@ -34,7 +33,6 @@ class KParameterUnitTests {
val methodParameter = val methodParameter =
MethodParameter(MyCoroutineRepository::hello.javaMethod!!, 0) MethodParameter(MyCoroutineRepository::hello.javaMethod!!, 0)
methodParameter.initParameterNameDiscovery(DefaultParameterNameDiscoverer())
val parameter = Parameter(methodParameter, TypeInformation.OBJECT) val parameter = Parameter(methodParameter, TypeInformation.OBJECT)
assertThat(parameter.name).isEmpty() assertThat(parameter.name).isEmpty()

Loading…
Cancel
Save