diff --git a/spring-context-support/src/main/java/org/springframework/cache/jcache/interceptor/BeanFactoryJCacheOperationSourceAdvisor.java b/spring-context-support/src/main/java/org/springframework/cache/jcache/interceptor/BeanFactoryJCacheOperationSourceAdvisor.java index baf635e4d26..51fda366b04 100644 --- a/spring-context-support/src/main/java/org/springframework/cache/jcache/interceptor/BeanFactoryJCacheOperationSourceAdvisor.java +++ b/spring-context-support/src/main/java/org/springframework/cache/jcache/interceptor/BeanFactoryJCacheOperationSourceAdvisor.java @@ -82,8 +82,8 @@ public class BeanFactoryJCacheOperationSourceAdvisor extends AbstractBeanFactory @Override public boolean equals(@Nullable Object other) { - return (this == other || (other instanceof JCacheOperationSourcePointcut otherPc && - ObjectUtils.nullSafeEquals(this.cacheOperationSource, otherPc.cacheOperationSource))); + return (this == other || (other instanceof JCacheOperationSourcePointcut that && + ObjectUtils.nullSafeEquals(this.cacheOperationSource, that.cacheOperationSource))); } @Override diff --git a/spring-context/src/main/java/org/springframework/cache/interceptor/CacheOperationSourcePointcut.java b/spring-context/src/main/java/org/springframework/cache/interceptor/CacheOperationSourcePointcut.java index 5ba4159cfd8..18927949bf8 100644 --- a/spring-context/src/main/java/org/springframework/cache/interceptor/CacheOperationSourcePointcut.java +++ b/spring-context/src/main/java/org/springframework/cache/interceptor/CacheOperationSourcePointcut.java @@ -58,8 +58,8 @@ class CacheOperationSourcePointcut extends StaticMethodMatcherPointcut implement @Override public boolean equals(@Nullable Object other) { - return (this == other || (other instanceof CacheOperationSourcePointcut otherPc && - ObjectUtils.nullSafeEquals(this.cacheOperationSource, otherPc.cacheOperationSource))); + return (this == other || (other instanceof CacheOperationSourcePointcut that && + ObjectUtils.nullSafeEquals(this.cacheOperationSource, that.cacheOperationSource))); } @Override diff --git a/spring-context/src/main/java/org/springframework/context/annotation/PropertySourceRegistry.java b/spring-context/src/main/java/org/springframework/context/annotation/PropertySourceRegistry.java index 8880d4c4697..8ff299eeab4 100644 --- a/spring-context/src/main/java/org/springframework/context/annotation/PropertySourceRegistry.java +++ b/spring-context/src/main/java/org/springframework/context/annotation/PropertySourceRegistry.java @@ -1,5 +1,5 @@ /* - * Copyright 2002-2022 the original author or authors. + * Copyright 2002-2023 the original author or authors. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -42,14 +42,12 @@ class PropertySourceRegistry { private final List descriptors; + public PropertySourceRegistry(PropertySourceProcessor propertySourceProcessor) { this.propertySourceProcessor = propertySourceProcessor; this.descriptors = new ArrayList<>(); } - public List getDescriptors() { - return Collections.unmodifiableList(this.descriptors); - } /** * Process the given @PropertySource annotation metadata. @@ -70,12 +68,16 @@ class PropertySourceRegistry { boolean ignoreResourceNotFound = propertySource.getBoolean("ignoreResourceNotFound"); Class factoryClass = propertySource.getClass("factory"); - Class factorClassToUse = + Class factoryClassToUse = (factoryClass != PropertySourceFactory.class ? factoryClass : null); - PropertySourceDescriptor descriptor = new PropertySourceDescriptor(Arrays.asList(locations), ignoreResourceNotFound, name, - factorClassToUse, encoding); + PropertySourceDescriptor descriptor = new PropertySourceDescriptor(Arrays.asList(locations), + ignoreResourceNotFound, name, factoryClassToUse, encoding); this.propertySourceProcessor.processPropertySource(descriptor); this.descriptors.add(descriptor); } + public List getDescriptors() { + return Collections.unmodifiableList(this.descriptors); + } + } diff --git a/spring-context/src/test/java/org/springframework/context/annotation/PropertySourceAnnotationTests.java b/spring-context/src/test/java/org/springframework/context/annotation/PropertySourceAnnotationTests.java index 4ae9279811a..a81a074b247 100644 --- a/spring-context/src/test/java/org/springframework/context/annotation/PropertySourceAnnotationTests.java +++ b/spring-context/src/test/java/org/springframework/context/annotation/PropertySourceAnnotationTests.java @@ -1,5 +1,5 @@ /* - * Copyright 2002-2021 the original author or authors. + * Copyright 2002-2023 the original author or authors. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -23,7 +23,6 @@ import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.lang.annotation.Target; import java.util.Collections; -import java.util.Iterator; import java.util.Properties; import jakarta.inject.Inject; @@ -56,21 +55,13 @@ class PropertySourceAnnotationTests { @Test void withExplicitName() { - AnnotationConfigApplicationContext ctx = new AnnotationConfigApplicationContext(); - ctx.register(ConfigWithExplicitName.class); - ctx.refresh(); + AnnotationConfigApplicationContext ctx = new AnnotationConfigApplicationContext(ConfigWithExplicitName.class); assertThat(ctx.getEnvironment().getPropertySources().contains("p1")).as("property source p1 was not added").isTrue(); assertThat(ctx.getBean(TestBean.class).getName()).isEqualTo("p1TestBean"); // assert that the property source was added last to the set of sources - String name; MutablePropertySources sources = ctx.getEnvironment().getPropertySources(); - Iterator> iterator = sources.iterator(); - do { - name = iterator.next().getName(); - } - while (iterator.hasNext()); - + String name = sources.stream().toList().get(sources.size() - 1).getName(); assertThat(name).isEqualTo("p1"); ctx.close(); } @@ -78,7 +69,9 @@ class PropertySourceAnnotationTests { @Test void withImplicitName() { AnnotationConfigApplicationContext ctx = new AnnotationConfigApplicationContext(ConfigWithImplicitName.class); - assertThat(ctx.getEnvironment().getPropertySources().contains("class path resource [org/springframework/context/annotation/p1.properties]")).as("property source p1 was not added").isTrue(); + String name = "class path resource [org/springframework/context/annotation/p1.properties]"; + assertThat(ctx.getEnvironment().getPropertySources().contains(name)) + .as("property source p1 was not added").isTrue(); assertThat(ctx.getBean(TestBean.class).getName()).isEqualTo("p1TestBean"); ctx.close(); } @@ -540,7 +533,6 @@ class PropertySourceAnnotationTests { }) @Configuration static class ConfigWithSameSourceImportedInDifferentOrder { - } diff --git a/spring-jdbc/src/main/java/org/springframework/jdbc/core/BeanPropertyRowMapper.java b/spring-jdbc/src/main/java/org/springframework/jdbc/core/BeanPropertyRowMapper.java index 99eb4e451b0..34bfd35c782 100644 --- a/spring-jdbc/src/main/java/org/springframework/jdbc/core/BeanPropertyRowMapper.java +++ b/spring-jdbc/src/main/java/org/springframework/jdbc/core/BeanPropertyRowMapper.java @@ -343,7 +343,7 @@ public class BeanPropertyRowMapper implements RowMapper { bw.setPropertyValue(pd.getName(), value); } catch (TypeMismatchException ex) { - if (value == null && this.primitivesDefaultedForNullValue) { + if (value == null && isPrimitivesDefaultedForNullValue()) { if (logger.isDebugEnabled()) { String propertyType = ClassUtils.getQualifiedName(pd.getPropertyType()); logger.debug(""" diff --git a/spring-messaging/src/main/java/org/springframework/messaging/handler/annotation/support/PayloadMethodArgumentResolver.java b/spring-messaging/src/main/java/org/springframework/messaging/handler/annotation/support/PayloadMethodArgumentResolver.java index ea45ec74908..1cf15fead8b 100644 --- a/spring-messaging/src/main/java/org/springframework/messaging/handler/annotation/support/PayloadMethodArgumentResolver.java +++ b/spring-messaging/src/main/java/org/springframework/messaging/handler/annotation/support/PayloadMethodArgumentResolver.java @@ -197,8 +197,7 @@ public class PayloadMethodArgumentResolver implements HandlerMethodArgumentResol /** * Validate the payload if applicable. *

The default implementation checks for {@code @jakarta.validation.Valid}, - * Spring's {@link Validated}, - * and custom annotations whose name starts with "Valid". + * Spring's {@link Validated}, and custom annotations whose name starts with "Valid". * @param message the currently processed message * @param parameter the method parameter * @param target the target payload object diff --git a/spring-tx/src/main/java/org/springframework/transaction/interceptor/TransactionAttributeSourcePointcut.java b/spring-tx/src/main/java/org/springframework/transaction/interceptor/TransactionAttributeSourcePointcut.java index 0a7f6383d15..99265d68189 100644 --- a/spring-tx/src/main/java/org/springframework/transaction/interceptor/TransactionAttributeSourcePointcut.java +++ b/spring-tx/src/main/java/org/springframework/transaction/interceptor/TransactionAttributeSourcePointcut.java @@ -57,8 +57,8 @@ class TransactionAttributeSourcePointcut extends StaticMethodMatcherPointcut imp @Override public boolean equals(@Nullable Object other) { - return (this == other || (other instanceof TransactionAttributeSourcePointcut otherPc && - ObjectUtils.nullSafeEquals(this.transactionAttributeSource, otherPc.transactionAttributeSource))); + return (this == other || (other instanceof TransactionAttributeSourcePointcut that && + ObjectUtils.nullSafeEquals(this.transactionAttributeSource, that.transactionAttributeSource))); } @Override