diff --git a/spring-cloud-commons/src/main/java/org/springframework/cloud/client/circuitbreaker/EnableCircuitBreakerImportSelector.java b/spring-cloud-commons/src/main/java/org/springframework/cloud/client/circuitbreaker/EnableCircuitBreakerImportSelector.java index 3bd9cf7a..f86dcae9 100644 --- a/spring-cloud-commons/src/main/java/org/springframework/cloud/client/circuitbreaker/EnableCircuitBreakerImportSelector.java +++ b/spring-cloud-commons/src/main/java/org/springframework/cloud/client/circuitbreaker/EnableCircuitBreakerImportSelector.java @@ -17,7 +17,7 @@ package org.springframework.cloud.client.circuitbreaker; import org.springframework.boot.bind.RelaxedPropertyResolver; -import org.springframework.cloud.util.SingleImplementationImportSelector; +import org.springframework.cloud.util.SpringFactoryImportSelector; import org.springframework.core.Ordered; import org.springframework.core.annotation.Order; @@ -27,7 +27,7 @@ import org.springframework.core.annotation.Order; */ @Order(Ordered.LOWEST_PRECEDENCE - 100) public class EnableCircuitBreakerImportSelector extends - SingleImplementationImportSelector { + SpringFactoryImportSelector { @Override protected boolean isEnabled() { diff --git a/spring-cloud-commons/src/main/java/org/springframework/cloud/client/discovery/EnableDiscoveryClientImportSelector.java b/spring-cloud-commons/src/main/java/org/springframework/cloud/client/discovery/EnableDiscoveryClientImportSelector.java index e57b70ad..030b8b10 100644 --- a/spring-cloud-commons/src/main/java/org/springframework/cloud/client/discovery/EnableDiscoveryClientImportSelector.java +++ b/spring-cloud-commons/src/main/java/org/springframework/cloud/client/discovery/EnableDiscoveryClientImportSelector.java @@ -17,7 +17,7 @@ package org.springframework.cloud.client.discovery; import org.springframework.boot.bind.RelaxedPropertyResolver; -import org.springframework.cloud.util.SingleImplementationImportSelector; +import org.springframework.cloud.util.SpringFactoryImportSelector; import org.springframework.core.Ordered; import org.springframework.core.annotation.Order; @@ -26,7 +26,7 @@ import org.springframework.core.annotation.Order; */ @Order(Ordered.LOWEST_PRECEDENCE - 100) public class EnableDiscoveryClientImportSelector extends - SingleImplementationImportSelector { + SpringFactoryImportSelector { @Override protected boolean isEnabled() { diff --git a/spring-cloud-commons/src/main/java/org/springframework/cloud/util/SingleImplementationImportSelector.java b/spring-cloud-commons/src/main/java/org/springframework/cloud/util/SpringFactoryImportSelector.java similarity index 91% rename from spring-cloud-commons/src/main/java/org/springframework/cloud/util/SingleImplementationImportSelector.java rename to spring-cloud-commons/src/main/java/org/springframework/cloud/util/SpringFactoryImportSelector.java index 22805d17..0d1450d2 100644 --- a/spring-cloud-commons/src/main/java/org/springframework/cloud/util/SingleImplementationImportSelector.java +++ b/spring-cloud-commons/src/main/java/org/springframework/cloud/util/SpringFactoryImportSelector.java @@ -33,13 +33,14 @@ import org.springframework.core.type.AnnotationMetadata; import org.springframework.util.Assert; /** - * Selects a single configuration to load defined by the generic type T. + * Selects configurations to load defined by the generic type T. Loads + * implementations using {@link SpringFactoriesLoader}. * * @author Spencer Gibb * @author Dave Syer */ @CommonsLog -public abstract class SingleImplementationImportSelector implements +public abstract class SpringFactoryImportSelector implements DeferredImportSelector, BeanClassLoaderAware, EnvironmentAware { private ClassLoader beanClassLoader; @@ -49,9 +50,9 @@ public abstract class SingleImplementationImportSelector implements private Environment environment; @SuppressWarnings("unchecked") - protected SingleImplementationImportSelector() { + protected SpringFactoryImportSelector() { this.annotationClass = (Class) GenericTypeResolver.resolveTypeArgument( - this.getClass(), SingleImplementationImportSelector.class); + this.getClass(), SpringFactoryImportSelector.class); } @Override diff --git a/spring-cloud-commons/src/test/java/org/springframework/cloud/util/SingleImplementationImportSelectorTests.java b/spring-cloud-commons/src/test/java/org/springframework/cloud/util/SpringFactoryImportSelectorTests.java similarity index 86% rename from spring-cloud-commons/src/test/java/org/springframework/cloud/util/SingleImplementationImportSelectorTests.java rename to spring-cloud-commons/src/test/java/org/springframework/cloud/util/SpringFactoryImportSelectorTests.java index 97f84b7f..90ba5ee9 100644 --- a/spring-cloud-commons/src/test/java/org/springframework/cloud/util/SingleImplementationImportSelectorTests.java +++ b/spring-cloud-commons/src/test/java/org/springframework/cloud/util/SpringFactoryImportSelectorTests.java @@ -17,14 +17,13 @@ package org.springframework.cloud.util; import org.junit.Test; -import org.springframework.cloud.util.SingleImplementationImportSelector; import static org.junit.Assert.assertEquals; /** * @author Spencer Gibb */ -public class SingleImplementationImportSelectorTests { +public class SpringFactoryImportSelectorTests { @Test public void testFindAnnotation() { @@ -37,7 +36,7 @@ public class SingleImplementationImportSelectorTests { } public static class MyAnnotationImportSelector extends - SingleImplementationImportSelector { + SpringFactoryImportSelector { @Override protected boolean isEnabled() {