Skip to content

Commit 087641c

Browse files
committed
Merge branch '6.2.x'
2 parents bab8a83 + 0da4ae9 commit 087641c

File tree

9 files changed

+46
-46
lines changed

9 files changed

+46
-46
lines changed

spring-core/src/main/java/org/springframework/util/ReflectionUtils.java

+1-2
Original file line numberDiff line numberDiff line change
@@ -710,8 +710,7 @@ public static void doWithFields(Class<?> clazz, FieldCallback fc, @Nullable Fiel
710710
// Keep backing up the inheritance hierarchy.
711711
Class<?> targetClass = clazz;
712712
do {
713-
Field[] fields = getDeclaredFields(targetClass);
714-
for (Field field : fields) {
713+
for (Field field : getDeclaredFields(targetClass)) {
715714
if (ff != null && !ff.matches(field)) {
716715
continue;
717716
}

spring-core/src/test/java/org/springframework/util/PropertyPlaceholderHelperTests.java

+26-19
Original file line numberDiff line numberDiff line change
@@ -17,13 +17,11 @@
1717
package org.springframework.util;
1818

1919
import java.util.Properties;
20-
import java.util.stream.Stream;
2120

2221
import org.junit.jupiter.api.Nested;
2322
import org.junit.jupiter.api.Test;
2423
import org.junit.jupiter.params.ParameterizedTest;
25-
import org.junit.jupiter.params.provider.Arguments;
26-
import org.junit.jupiter.params.provider.MethodSource;
24+
import org.junit.jupiter.params.provider.CsvSource;
2725

2826
import org.springframework.util.PropertyPlaceholderHelper.PlaceholderResolver;
2927

@@ -44,6 +42,7 @@ class PropertyPlaceholderHelperTests {
4442

4543
private final PropertyPlaceholderHelper helper = new PropertyPlaceholderHelper("${", "}");
4644

45+
4746
@Test
4847
void withProperties() {
4948
String text = "foo=${foo}";
@@ -116,8 +115,8 @@ void unresolvedPlaceholderAsError() {
116115
props.setProperty("foo", "bar");
117116

118117
PropertyPlaceholderHelper helper = new PropertyPlaceholderHelper("${", "}", null, null, false);
119-
assertThatExceptionOfType(PlaceholderResolutionException.class).isThrownBy(() ->
120-
helper.replacePlaceholders(text, props));
118+
assertThatExceptionOfType(PlaceholderResolutionException.class)
119+
.isThrownBy(() -> helper.replacePlaceholders(text, props));
121120
}
122121

123122
@Nested
@@ -126,7 +125,14 @@ class DefaultValueTests {
126125
private final PropertyPlaceholderHelper helper = new PropertyPlaceholderHelper("${", "}", ":", null, true);
127126

128127
@ParameterizedTest(name = "{0} -> {1}")
129-
@MethodSource("defaultValues")
128+
@CsvSource(delimiterString = "->", textBlock = """
129+
${invalid:test} -> test
130+
${invalid:${one}} -> 1
131+
${invalid:${one}${two}} -> 12
132+
${invalid:${one}:${two}} -> 1:2
133+
${invalid:${also_invalid:test}} -> test
134+
${invalid:${also_invalid:${one}}} -> 1
135+
""")
130136
void defaultValueIsApplied(String text, String value) {
131137
Properties properties = new Properties();
132138
properties.setProperty("one", "1");
@@ -142,24 +148,26 @@ void defaultValueIsNotEvaluatedEarly() {
142148
verify(resolver, never()).resolvePlaceholder("two");
143149
}
144150

145-
static Stream<Arguments> defaultValues() {
146-
return Stream.of(
147-
Arguments.of("${invalid:test}", "test"),
148-
Arguments.of("${invalid:${one}}", "1"),
149-
Arguments.of("${invalid:${one}${two}}", "12"),
150-
Arguments.of("${invalid:${one}:${two}}", "1:2"),
151-
Arguments.of("${invalid:${also_invalid:test}}", "test"),
152-
Arguments.of("${invalid:${also_invalid:${one}}}", "1")
153-
);
151+
@ParameterizedTest(name = "{0} -> {1}")
152+
@CsvSource(delimiterString = "->", textBlock = """
153+
${prefix://my-service} -> example-service
154+
${p1} -> example-service
155+
""")
156+
void placeholdersWithExactMatchAreConsidered(String text, String expected) {
157+
Properties properties = new Properties();
158+
properties.setProperty("prefix://my-service", "example-service");
159+
properties.setProperty("px", "prefix");
160+
properties.setProperty("p1", "${prefix://my-service}");
161+
assertThat(this.helper.replacePlaceholders(text, properties)).isEqualTo(expected);
154162
}
155-
156163
}
157164

158-
PlaceholderResolver mockPlaceholderResolver(String... pairs) {
165+
166+
private static PlaceholderResolver mockPlaceholderResolver(String... pairs) {
159167
if (pairs.length % 2 == 1) {
160168
throw new IllegalArgumentException("size must be even, it is a set of key=value pairs");
161169
}
162-
PlaceholderResolver resolver = mock(PlaceholderResolver.class);
170+
PlaceholderResolver resolver = mock();
163171
for (int i = 0; i < pairs.length; i += 2) {
164172
String key = pairs[i];
165173
String value = pairs[i + 1];
@@ -168,5 +176,4 @@ PlaceholderResolver mockPlaceholderResolver(String... pairs) {
168176
return resolver;
169177
}
170178

171-
172179
}

spring-test/src/main/java/org/springframework/test/context/bean/override/mockito/AbstractMockitoBeanOverrideHandler.java

+9-9
Original file line numberDiff line numberDiff line change
@@ -57,20 +57,20 @@ MockReset getReset() {
5757

5858
@Override
5959
protected void trackOverrideInstance(Object mock, SingletonBeanRegistry trackingBeanRegistry) {
60-
getMockitoBeans(trackingBeanRegistry).add(mock);
60+
getMockBeans(trackingBeanRegistry).add(mock);
6161
}
6262

63-
private static MockitoBeans getMockitoBeans(SingletonBeanRegistry trackingBeanRegistry) {
64-
String beanName = MockitoBeans.class.getName();
65-
MockitoBeans mockitoBeans = null;
63+
private static MockBeans getMockBeans(SingletonBeanRegistry trackingBeanRegistry) {
64+
String beanName = MockBeans.class.getName();
65+
MockBeans mockBeans = null;
6666
if (trackingBeanRegistry.containsSingleton(beanName)) {
67-
mockitoBeans = (MockitoBeans) trackingBeanRegistry.getSingleton(beanName);
67+
mockBeans = (MockBeans) trackingBeanRegistry.getSingleton(beanName);
6868
}
69-
if (mockitoBeans == null) {
70-
mockitoBeans = new MockitoBeans();
71-
trackingBeanRegistry.registerSingleton(beanName, mockitoBeans);
69+
if (mockBeans == null) {
70+
mockBeans = new MockBeans();
71+
trackingBeanRegistry.registerSingleton(beanName, mockBeans);
7272
}
73-
return mockitoBeans;
73+
return mockBeans;
7474
}
7575

7676
@Override
+1-1
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@
2828
* @author Sam Brannen
2929
* @since 6.2
3030
*/
31-
class MockitoBeans {
31+
class MockBeans {
3232

3333
private final List<Object> beans = new ArrayList<>();
3434

spring-test/src/main/java/org/springframework/test/context/bean/override/mockito/MockitoBeanOverrideHandler.java

+2-2
Original file line numberDiff line numberDiff line change
@@ -64,13 +64,13 @@ class MockitoBeanOverrideHandler extends AbstractMockitoBeanOverrideHandler {
6464
}
6565

6666
private MockitoBeanOverrideHandler(Field field, ResolvableType typeToMock, @Nullable String beanName,
67-
BeanOverrideStrategy strategy, MockReset reset, Class<?>[] extraInterfaces, @Nullable Answers answers,
67+
BeanOverrideStrategy strategy, MockReset reset, Class<?>[] extraInterfaces, Answers answers,
6868
boolean serializable) {
6969

7070
super(field, typeToMock, beanName, strategy, reset);
7171
Assert.notNull(typeToMock, "'typeToMock' must not be null");
7272
this.extraInterfaces = asClassSet(extraInterfaces);
73-
this.answers = (answers != null ? answers : Answers.RETURNS_DEFAULTS);
73+
this.answers = answers;
7474
this.serializable = serializable;
7575
}
7676

spring-test/src/main/java/org/springframework/test/context/bean/override/mockito/MockitoBeanOverrideProcessor.java

+2-2
Original file line numberDiff line numberDiff line change
@@ -35,8 +35,8 @@ class MockitoBeanOverrideProcessor implements BeanOverrideProcessor {
3535

3636
@Override
3737
public AbstractMockitoBeanOverrideHandler createHandler(Annotation overrideAnnotation, Class<?> testClass, Field field) {
38-
if (overrideAnnotation instanceof MockitoBean mockBean) {
39-
return new MockitoBeanOverrideHandler(field, ResolvableType.forField(field, testClass), mockBean);
38+
if (overrideAnnotation instanceof MockitoBean mockitoBean) {
39+
return new MockitoBeanOverrideHandler(field, ResolvableType.forField(field, testClass), mockitoBean);
4040
}
4141
else if (overrideAnnotation instanceof MockitoSpyBean spyBean) {
4242
return new MockitoSpyBeanOverrideHandler(field, ResolvableType.forField(field, testClass), spyBean);

spring-test/src/main/java/org/springframework/test/context/bean/override/mockito/MockitoResetTestExecutionListener.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -115,7 +115,7 @@ private static void resetMocks(ConfigurableApplicationContext applicationContext
115115
}
116116
}
117117
try {
118-
beanFactory.getBean(MockitoBeans.class).resetAll(reset);
118+
beanFactory.getBean(MockBeans.class).resetAll(reset);
119119
}
120120
catch (NoSuchBeanDefinitionException ex) {
121121
// Continue

spring-test/src/main/java/org/springframework/test/context/bean/override/mockito/MockitoSpyBeanOverrideHandler.java

+3-9
Original file line numberDiff line numberDiff line change
@@ -48,15 +48,9 @@ class MockitoSpyBeanOverrideHandler extends AbstractMockitoBeanOverrideHandler {
4848
new SpringAopBypassingVerificationStartedListener();
4949

5050

51-
MockitoSpyBeanOverrideHandler(Field field, ResolvableType typeToSpy, MockitoSpyBean spyAnnotation) {
52-
this(field, typeToSpy, (StringUtils.hasText(spyAnnotation.name()) ? spyAnnotation.name() : null),
53-
spyAnnotation.reset());
54-
}
55-
56-
MockitoSpyBeanOverrideHandler(Field field, ResolvableType typeToSpy, @Nullable String beanName,
57-
MockReset reset) {
58-
59-
super(field, typeToSpy, beanName, BeanOverrideStrategy.WRAP, reset);
51+
MockitoSpyBeanOverrideHandler(Field field, ResolvableType typeToSpy, MockitoSpyBean spyBean) {
52+
super(field, typeToSpy, (StringUtils.hasText(spyBean.name()) ? spyBean.name() : null),
53+
BeanOverrideStrategy.WRAP, spyBean.reset());
6054
Assert.notNull(typeToSpy, "typeToSpy must not be null");
6155
}
6256

spring-test/src/test/java/org/springframework/test/context/bean/override/convention/TestBeanTests.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -113,7 +113,7 @@ void contextCustomizerCannotBeCreatedWithFieldInParentAndMissingOverrideMethod()
113113
}
114114

115115
@Test
116-
void contextCustomizerCannotBeCreatedWitCompetingOverrideMethods() {
116+
void contextCustomizerCannotBeCreatedWithCompetingOverrideMethods() {
117117
GenericApplicationContext context = new GenericApplicationContext();
118118
context.registerBean("bean", String.class, () -> "example");
119119
assertThatIllegalStateException()

0 commit comments

Comments
 (0)