Skip to content

Commit 8e49a4e

Browse files
committed
Increase independence of core auto-configuration tests
Remove some more references to Thymeleaf and FreeMarker auto-configuration that were missed in 85ffbbc. See gh-44513
1 parent 85ffbbc commit 8e49a4e

File tree

1 file changed

+28
-29
lines changed

1 file changed

+28
-29
lines changed

Diff for: spring-boot-project/spring-boot-autoconfigure/src/test/java/org/springframework/boot/autoconfigure/ImportAutoConfigurationImportSelectorTests.java

+28-29
Original file line numberDiff line numberDiff line change
@@ -28,8 +28,6 @@
2828

2929
import org.springframework.beans.factory.config.ConfigurableListableBeanFactory;
3030
import org.springframework.beans.factory.support.DefaultListableBeanFactory;
31-
import org.springframework.boot.autoconfigure.freemarker.FreeMarkerAutoConfiguration;
32-
import org.springframework.boot.autoconfigure.thymeleaf.ThymeleafAutoConfiguration;
3331
import org.springframework.core.annotation.AliasFor;
3432
import org.springframework.core.io.DefaultResourceLoader;
3533
import org.springframework.core.type.AnnotationMetadata;
@@ -58,20 +56,21 @@ void setup() {
5856
this.importSelector.setBeanFactory(this.beanFactory);
5957
this.importSelector.setEnvironment(this.environment);
6058
this.importSelector.setResourceLoader(new DefaultResourceLoader());
59+
this.importSelector.setBeanClassLoader(Thread.currentThread().getContextClassLoader());
6160
}
6261

6362
@Test
6463
void importsAreSelected() throws Exception {
65-
AnnotationMetadata annotationMetadata = getAnnotationMetadata(ImportFreeMarker.class);
64+
AnnotationMetadata annotationMetadata = getAnnotationMetadata(ImportImported.class);
6665
String[] imports = this.importSelector.selectImports(annotationMetadata);
67-
assertThat(imports).containsExactly(FreeMarkerAutoConfiguration.class.getName());
66+
assertThat(imports).containsExactly(ImportedAutoConfiguration.class.getName());
6867
}
6968

7069
@Test
7170
void importsAreSelectedUsingClassesAttribute() throws Exception {
72-
AnnotationMetadata annotationMetadata = getAnnotationMetadata(ImportFreeMarkerUsingClassesAttribute.class);
71+
AnnotationMetadata annotationMetadata = getAnnotationMetadata(ImportImportedUsingClassesAttribute.class);
7372
String[] imports = this.importSelector.selectImports(annotationMetadata);
74-
assertThat(imports).containsExactly(FreeMarkerAutoConfiguration.class.getName());
73+
assertThat(imports).containsExactly(ImportedAutoConfiguration.class.getName());
7574
}
7675

7776
@Test
@@ -95,39 +94,39 @@ void importsSelectedFromImportsFileIgnoreMissingOptionalClasses() throws Excepti
9594

9695
@Test
9796
void propertyExclusionsAreApplied() throws IOException {
98-
this.environment.setProperty("spring.autoconfigure.exclude", FreeMarkerAutoConfiguration.class.getName());
97+
this.environment.setProperty("spring.autoconfigure.exclude", ImportedAutoConfiguration.class.getName());
9998
AnnotationMetadata annotationMetadata = getAnnotationMetadata(MultipleImports.class);
10099
String[] imports = this.importSelector.selectImports(annotationMetadata);
101-
assertThat(imports).containsExactly(ThymeleafAutoConfiguration.class.getName());
100+
assertThat(imports).containsExactly(AnotherImportedAutoConfiguration.class.getName());
102101
}
103102

104103
@Test
105104
void multipleImportsAreFound() throws Exception {
106105
AnnotationMetadata annotationMetadata = getAnnotationMetadata(MultipleImports.class);
107106
String[] imports = this.importSelector.selectImports(annotationMetadata);
108-
assertThat(imports).containsOnly(FreeMarkerAutoConfiguration.class.getName(),
109-
ThymeleafAutoConfiguration.class.getName());
107+
assertThat(imports).containsOnly(ImportedAutoConfiguration.class.getName(),
108+
AnotherImportedAutoConfiguration.class.getName());
110109
}
111110

112111
@Test
113112
void selfAnnotatingAnnotationDoesNotCauseStackOverflow() throws IOException {
114113
AnnotationMetadata annotationMetadata = getAnnotationMetadata(ImportWithSelfAnnotatingAnnotation.class);
115114
String[] imports = this.importSelector.selectImports(annotationMetadata);
116-
assertThat(imports).containsOnly(ThymeleafAutoConfiguration.class.getName());
115+
assertThat(imports).containsOnly(AnotherImportedAutoConfiguration.class.getName());
117116
}
118117

119118
@Test
120119
void exclusionsAreApplied() throws Exception {
121120
AnnotationMetadata annotationMetadata = getAnnotationMetadata(MultipleImportsWithExclusion.class);
122121
String[] imports = this.importSelector.selectImports(annotationMetadata);
123-
assertThat(imports).containsOnly(FreeMarkerAutoConfiguration.class.getName());
122+
assertThat(imports).containsOnly(ImportedAutoConfiguration.class.getName());
124123
}
125124

126125
@Test
127126
void exclusionsWithoutImport() throws Exception {
128127
AnnotationMetadata annotationMetadata = getAnnotationMetadata(ExclusionWithoutImport.class);
129128
String[] imports = this.importSelector.selectImports(annotationMetadata);
130-
assertThat(imports).containsOnly(FreeMarkerAutoConfiguration.class.getName());
129+
assertThat(imports).containsOnly(ImportedAutoConfiguration.class.getName());
131130
}
132131

133132
@Test
@@ -199,13 +198,13 @@ private AnnotationMetadata getAnnotationMetadata(Class<?> source) throws IOExcep
199198
return new SimpleMetadataReaderFactory().getMetadataReader(source.getName()).getAnnotationMetadata();
200199
}
201200

202-
@ImportAutoConfiguration(FreeMarkerAutoConfiguration.class)
203-
static class ImportFreeMarker {
201+
@ImportAutoConfiguration(ImportedAutoConfiguration.class)
202+
static class ImportImported {
204203

205204
}
206205

207-
@ImportAutoConfiguration(classes = FreeMarkerAutoConfiguration.class)
208-
static class ImportFreeMarkerUsingClassesAttribute {
206+
@ImportAutoConfiguration(classes = ImportedAutoConfiguration.class)
207+
static class ImportImportedUsingClassesAttribute {
209208

210209
}
211210

@@ -217,13 +216,13 @@ static class MultipleImports {
217216

218217
@ImportOne
219218
@ImportTwo
220-
@ImportAutoConfiguration(exclude = ThymeleafAutoConfiguration.class)
219+
@ImportAutoConfiguration(exclude = AnotherImportedAutoConfiguration.class)
221220
static class MultipleImportsWithExclusion {
222221

223222
}
224223

225224
@ImportOne
226-
@ImportAutoConfiguration(exclude = ThymeleafAutoConfiguration.class)
225+
@ImportAutoConfiguration(exclude = AnotherImportedAutoConfiguration.class)
227226
static class ExclusionWithoutImport {
228227

229228
}
@@ -233,19 +232,19 @@ static class ImportWithSelfAnnotatingAnnotation {
233232

234233
}
235234

236-
@SelfAnnotating(excludeAutoConfiguration = ThymeleafAutoConfiguration.class)
235+
@SelfAnnotating(excludeAutoConfiguration = AnotherImportedAutoConfiguration.class)
237236
static class ImportWithSelfAnnotatingAnnotationExclude {
238237

239238
}
240239

241240
@Retention(RetentionPolicy.RUNTIME)
242-
@ImportAutoConfiguration(FreeMarkerAutoConfiguration.class)
241+
@ImportAutoConfiguration(ImportedAutoConfiguration.class)
243242
@interface ImportOne {
244243

245244
}
246245

247246
@Retention(RetentionPolicy.RUNTIME)
248-
@ImportAutoConfiguration(ThymeleafAutoConfiguration.class)
247+
@ImportAutoConfiguration(AnotherImportedAutoConfiguration.class)
249248
@interface ImportTwo {
250249

251250
}
@@ -274,25 +273,25 @@ static class ImportAutoConfigurationWithUnrelatedTwo {
274273

275274
}
276275

277-
@ImportAutoConfiguration(classes = ThymeleafAutoConfiguration.class)
276+
@ImportAutoConfiguration(classes = AnotherImportedAutoConfiguration.class)
278277
@UnrelatedOne
279278
static class ImportAutoConfigurationWithItemsOne {
280279

281280
}
282281

283-
@ImportAutoConfiguration(classes = ThymeleafAutoConfiguration.class)
282+
@ImportAutoConfiguration(classes = AnotherImportedAutoConfiguration.class)
284283
@UnrelatedTwo
285284
static class ImportAutoConfigurationWithItemsTwo {
286285

287286
}
288287

289-
@MetaImportAutoConfiguration(exclude = ThymeleafAutoConfiguration.class)
288+
@MetaImportAutoConfiguration(exclude = AnotherImportedAutoConfiguration.class)
290289
@UnrelatedOne
291290
static class ImportMetaAutoConfigurationExcludeWithUnrelatedOne {
292291

293292
}
294293

295-
@MetaImportAutoConfiguration(exclude = ThymeleafAutoConfiguration.class)
294+
@MetaImportAutoConfiguration(exclude = AnotherImportedAutoConfiguration.class)
296295
@UnrelatedTwo
297296
static class ImportMetaAutoConfigurationExcludeWithUnrelatedTwo {
298297

@@ -320,7 +319,7 @@ Class<?>[] exclude() default {
320319
}
321320

322321
@Retention(RetentionPolicy.RUNTIME)
323-
@ImportAutoConfiguration(ThymeleafAutoConfiguration.class)
322+
@ImportAutoConfiguration(AnotherImportedAutoConfiguration.class)
324323
@SelfAnnotating
325324
@interface SelfAnnotating {
326325

@@ -348,8 +347,8 @@ static class TestImportAutoConfigurationImportSelector extends ImportAutoConfigu
348347
@Override
349348
protected Collection<String> loadFactoryNames(Class<?> source) {
350349
if (source == MetaImportAutoConfiguration.class) {
351-
return Arrays.asList(ThymeleafAutoConfiguration.class.getName(),
352-
FreeMarkerAutoConfiguration.class.getName());
350+
return Arrays.asList(AnotherImportedAutoConfiguration.class.getName(),
351+
ImportedAutoConfiguration.class.getName());
353352
}
354353
return super.loadFactoryNames(source);
355354
}

0 commit comments

Comments
 (0)