Java 类org.springframework.context.annotation.Import 实例源码
项目:spring-depend
文件:SpringDependencyAnalyzer.java
private static List<Class<?>> getConfigurationImportsFor(Class<?> clazz) {
List<Class<?>> list= new ArrayList<>();
for(Annotation annotation : clazz.getAnnotations()) {
Class<? extends Annotation> type = annotation.annotationType();
if(Import.class.equals(type)) {
try {
Method method = type.getMethod("value");
Class<?>[] imports = (Class<?>[]) method.invoke(annotation, (Object[]) null);
if(imports != null && imports.length > 0) {
for(Class<?> c: imports) {
list.add(c);
}
}
} catch (Throwable e) {
throw new IllegalStateException(e);
}
}
}
return list;
}
项目:gravitee-gateway
文件:SpringPolicyContextProviderFactory.java
public PolicyContextProvider create(PolicyContext policyContext) {
Import importAnnotation = policyContext.getClass().getAnnotation(Import.class);
List<Class<?>> importClasses = Arrays.asList(importAnnotation.value());
LOGGER.info("Initializing a Spring context provider from @Import annotation: {}",
String.join(",",
importClasses
.stream()
.map(Class::getName)
.collect(Collectors.toSet())));
AnnotationConfigApplicationContext policyApplicationContext = new AnnotationConfigApplicationContext();
policyApplicationContext.setClassLoader(policyContext.getClass().getClassLoader());
importClasses.forEach(policyApplicationContext::register);
// TODO: set the parent application context ?
// pluginContext.setEnvironment(applicationContextParent.getEnvironment());
// pluginContext.setParent(applicationContextParent);
policyApplicationContext.refresh();
return new SpringPolicyContextProvider(policyApplicationContext);
}
项目:citrus-admin
文件:SpringJavaConfigService.java
/**
* Reads file import locations from Spring bean application context.
* @param project
* @return
*/
public List<Class<?>> getConfigImports(Class<?> configFile, Project project) {
Import importAnnotation = configFile.getAnnotation(Import.class);
if (importAnnotation != null) {
return Arrays.asList(importAnnotation.value());
}
return new ArrayList<>();
}
项目:https-github.com-g0t4-jenkins2-course-spring-boot
文件:ImportsContextCustomizerFactory.java
@Override
public ContextCustomizer createContextCustomizer(Class<?> testClass,
List<ContextConfigurationAttributes> configAttributes) {
if (AnnotatedElementUtils.findMergedAnnotation(testClass, Import.class) != null) {
assertHasNoBeanMethods(testClass);
return new ImportsContextCustomizer(testClass);
}
return null;
}
项目:spring-boot-concourse
文件:ImportsContextCustomizerFactory.java
@Override
public ContextCustomizer createContextCustomizer(Class<?> testClass,
List<ContextConfigurationAttributes> configAttributes) {
if (AnnotatedElementUtils.findMergedAnnotation(testClass, Import.class) != null) {
assertHasNoBeanMethods(testClass);
return new ImportsContextCustomizer(testClass);
}
return null;
}
项目:spring-cloud-stream
文件:SpringIntegrationBinderConfiguration.java
/**
* Utility operation to return an array of configuration classes
* defined in {@link EnableBinding} annotation.
* Typically used for tests that do not rely on creating an SCSt boot
* application annotated with {@link EnableBinding}, yet require
* full {@link Binder} configuration.
*/
public static Class<?>[] getCompleteConfiguration() {
List<Class<?>> configClasses = new ArrayList<>();
configClasses.add(SpringIntegrationBinderConfiguration.class);
Import annotation = AnnotationUtils.getAnnotation(EnableBinding.class, Import.class);
Map<String, Object> annotationAttributes = AnnotationUtils.getAnnotationAttributes(annotation);
configClasses.addAll(Arrays.asList((Class<?>[])annotationAttributes.get("value")));
return configClasses.toArray(new Class<?>[] {});
}
项目:graviteeio-access-management
文件:CertificatePluginManagerImpl.java
private <T> T create0(Plugin plugin, Class<T> certificateClass, CertificateConfiguration certificateConfiguration) {
if (certificateClass == null) {
return null;
}
try {
T certificateObj = createInstance(certificateClass);
final Import annImport = certificateClass.getAnnotation(Import.class);
Set<Class<?>> configurations = (annImport != null) ?
new HashSet<>(Arrays.asList(annImport.value())) : Collections.emptySet();
ApplicationContext idpApplicationContext = pluginContextFactory.create(new AnnotationBasedPluginContextConfigurer(plugin) {
@Override
public Set<Class<?>> configurations() {
return configurations;
}
@Override
public ConfigurableApplicationContext applicationContext() {
ConfigurableApplicationContext configurableApplicationContext = super.applicationContext();
// Add certificate configuration bean
configurableApplicationContext.addBeanFactoryPostProcessor(
new CertificateConfigurationBeanFactoryPostProcessor(certificateConfiguration));
return configurableApplicationContext;
}
});
idpApplicationContext.getAutowireCapableBeanFactory().autowireBean(certificateObj);
if (certificateObj instanceof InitializingBean) {
((InitializingBean) certificateObj).afterPropertiesSet();
}
return certificateObj;
} catch (Exception ex) {
logger.error("An unexpected error occurs while loading certificate", ex);
return null;
}
}
项目:graviteeio-access-management
文件:ExtensionGrantPluginManagerImpl.java
private <T> T create0(Plugin plugin, Class<T> extensionGrantClass, ExtensionGrantConfiguration extensionGrantConfiguration, AuthenticationProvider authenticationProvider) {
if (extensionGrantClass == null) {
return null;
}
try {
T extensionGrantObj = createInstance(extensionGrantClass);
final Import annImport = extensionGrantClass.getAnnotation(Import.class);
Set<Class<?>> configurations = (annImport != null) ?
new HashSet<>(Arrays.asList(annImport.value())) : Collections.emptySet();
ApplicationContext extensionGrantApplicationContext = pluginContextFactory.create(new AnnotationBasedPluginContextConfigurer(plugin) {
@Override
public Set<Class<?>> configurations() {
return configurations;
}
@Override
public ConfigurableApplicationContext applicationContext() {
ConfigurableApplicationContext configurableApplicationContext = super.applicationContext();
// Add extension grant configuration bean
configurableApplicationContext.addBeanFactoryPostProcessor(
new ExtensionGrantConfigurationBeanFactoryPostProcessor(extensionGrantConfiguration));
// Add extension grant identity provider bean
configurableApplicationContext.addBeanFactoryPostProcessor(
new ExtensionGrantIdentityProviderFactoryPostProcessor(authenticationProvider != null ? authenticationProvider : new NoAuthenticationProvider()));
return configurableApplicationContext;
}
});
extensionGrantApplicationContext.getAutowireCapableBeanFactory().autowireBean(extensionGrantObj);
if (extensionGrantObj instanceof InitializingBean) {
((InitializingBean) extensionGrantObj).afterPropertiesSet();
}
return extensionGrantObj;
} catch (Exception ex) {
logger.error("An unexpected error occurs while loading extension grant", ex);
return null;
}
}
项目:graviteeio-access-management
文件:IdentityProviderPluginManagerImpl.java
private <T> T create0(Plugin plugin, Class<T> identityClass, IdentityProviderConfiguration identityProviderConfiguration,
IdentityProviderMapper identityProviderMapper, IdentityProviderRoleMapper identityProviderRoleMapper) {
if (identityClass == null) {
return null;
}
try {
T identityObj = createInstance(identityClass);
final Import annImport = identityClass.getAnnotation(Import.class);
Set<Class<?>> configurations = (annImport != null) ?
new HashSet<>(Arrays.asList(annImport.value())) : Collections.emptySet();
ApplicationContext idpApplicationContext = pluginContextFactory.create(new AnnotationBasedPluginContextConfigurer(plugin) {
@Override
public Set<Class<?>> configurations() {
return configurations;
}
@Override
public ConfigurableApplicationContext applicationContext() {
ConfigurableApplicationContext configurableApplicationContext = super.applicationContext();
// Add identity provider configuration bean
configurableApplicationContext.addBeanFactoryPostProcessor(
new IdentityProviderConfigurationBeanFactoryPostProcessor(identityProviderConfiguration));
// Add identity provider mapper bean
configurableApplicationContext.addBeanFactoryPostProcessor(
new IdentityProviderMapperBeanFactoryPostProcessor(identityProviderMapper));
// Add identity provider role mapper bean
configurableApplicationContext.addBeanFactoryPostProcessor(
new IdentityProviderRoleMapperBeanFactoryPostProcessor(identityProviderRoleMapper));
return configurableApplicationContext;
}
});
idpApplicationContext.getAutowireCapableBeanFactory().autowireBean(identityObj);
if (identityObj instanceof InitializingBean) {
((InitializingBean) identityObj).afterPropertiesSet();
}
return identityObj;
} catch (Exception ex) {
logger.error("An unexpected error occurs while loading identity provider", ex);
return null;
}
}
项目:gravitee-management-rest-api
文件:IdentityProviderManagerImpl.java
private <T> T create(Plugin plugin, Class<T> identityClass, Map<String, Object> properties) {
if (identityClass == null) {
return null;
}
try {
T identityObj = createInstance(identityClass);
final Import annImport = identityClass.getAnnotation(Import.class);
Set<Class<?>> configurations = (annImport != null) ?
new HashSet<>(Arrays.asList(annImport.value())) : Collections.emptySet();
ApplicationContext idpApplicationContext = pluginContextFactory.create(new AnnotationBasedPluginContextConfigurer(plugin) {
@Override
public Set<Class<?>> configurations() {
return configurations;
}
@Override
public ConfigurableEnvironment environment() {
return new StandardEnvironment() {
@Override
protected void customizePropertySources(MutablePropertySources propertySources) {
propertySources.addFirst(new MapPropertySource(plugin.id(), properties));
super.customizePropertySources(propertySources);
}
};
}
});
idpApplicationContext.getAutowireCapableBeanFactory().autowireBean(identityObj);
if (identityObj instanceof InitializingBean) {
((InitializingBean) identityObj).afterPropertiesSet();
}
return identityObj;
} catch (Exception ex) {
LOGGER.error("An unexpected error occurs while loading identity provider", ex);
return null;
}
}
项目:gravitee-gateway
文件:SpringPolicyContextProviderFactory.java
@Override
public boolean canHandle(PolicyContext policyContext) {
return policyContext.getClass().getAnnotation(Import.class) != null;
}