|
|
|
|
@ -1,5 +1,5 @@
@@ -1,5 +1,5 @@
|
|
|
|
|
/* |
|
|
|
|
* Copyright 2002-2019 the original author or authors. |
|
|
|
|
* Copyright 2002-2020 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. |
|
|
|
|
@ -748,8 +748,7 @@ class ConfigurationClassParser {
@@ -748,8 +748,7 @@ class ConfigurationClassParser {
|
|
|
|
|
* @param importSelector the selector to handle |
|
|
|
|
*/ |
|
|
|
|
public void handle(ConfigurationClass configClass, DeferredImportSelector importSelector) { |
|
|
|
|
DeferredImportSelectorHolder holder = new DeferredImportSelectorHolder( |
|
|
|
|
configClass, importSelector); |
|
|
|
|
DeferredImportSelectorHolder holder = new DeferredImportSelectorHolder(configClass, importSelector); |
|
|
|
|
if (this.deferredImportSelectors == null) { |
|
|
|
|
DeferredImportSelectorGroupingHandler handler = new DeferredImportSelectorGroupingHandler(); |
|
|
|
|
handler.register(holder); |
|
|
|
|
@ -775,7 +774,6 @@ class ConfigurationClassParser {
@@ -775,7 +774,6 @@ class ConfigurationClassParser {
|
|
|
|
|
this.deferredImportSelectors = new ArrayList<>(); |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@ -786,8 +784,7 @@ class ConfigurationClassParser {
@@ -786,8 +784,7 @@ class ConfigurationClassParser {
|
|
|
|
|
private final Map<AnnotationMetadata, ConfigurationClass> configurationClasses = new HashMap<>(); |
|
|
|
|
|
|
|
|
|
public void register(DeferredImportSelectorHolder deferredImport) { |
|
|
|
|
Class<? extends Group> group = deferredImport.getImportSelector() |
|
|
|
|
.getImportGroup(); |
|
|
|
|
Class<? extends Group> group = deferredImport.getImportSelector().getImportGroup(); |
|
|
|
|
DeferredImportSelectorGrouping grouping = this.groupings.computeIfAbsent( |
|
|
|
|
(group != null ? group : deferredImport), |
|
|
|
|
key -> new DeferredImportSelectorGrouping(createGroup(group))); |
|
|
|
|
@ -799,8 +796,7 @@ class ConfigurationClassParser {
@@ -799,8 +796,7 @@ class ConfigurationClassParser {
|
|
|
|
|
public void processGroupImports() { |
|
|
|
|
for (DeferredImportSelectorGrouping grouping : this.groupings.values()) { |
|
|
|
|
grouping.getImports().forEach(entry -> { |
|
|
|
|
ConfigurationClass configurationClass = this.configurationClasses.get( |
|
|
|
|
entry.getMetadata()); |
|
|
|
|
ConfigurationClass configurationClass = this.configurationClasses.get(entry.getMetadata()); |
|
|
|
|
try { |
|
|
|
|
processImports(configurationClass, asSourceClass(configurationClass), |
|
|
|
|
asSourceClasses(entry.getImportClassName()), false); |
|
|
|
|
@ -818,8 +814,7 @@ class ConfigurationClassParser {
@@ -818,8 +814,7 @@ class ConfigurationClassParser {
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
private Group createGroup(@Nullable Class<? extends Group> type) { |
|
|
|
|
Class<? extends Group> effectiveType = (type != null ? type |
|
|
|
|
: DefaultDeferredImportSelectorGroup.class); |
|
|
|
|
Class<? extends Group> effectiveType = (type != null ? type : DefaultDeferredImportSelectorGroup.class); |
|
|
|
|
Group group = BeanUtils.instantiateClass(effectiveType); |
|
|
|
|
ParserStrategyUtils.invokeAwareMethods(group, |
|
|
|
|
ConfigurationClassParser.this.environment, |
|
|
|
|
@ -827,7 +822,6 @@ class ConfigurationClassParser {
@@ -827,7 +822,6 @@ class ConfigurationClassParser {
|
|
|
|
|
ConfigurationClassParser.this.registry); |
|
|
|
|
return group; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|