Merge pull request #7744 from Artem Bilan
* gh-7744: Make use of new extensions point in IntegrationComponentScanRegistrar
This commit is contained in:
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright 2012-2016 the original author or authors.
|
||||
* Copyright 2012-2017 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.
|
||||
@@ -16,9 +16,8 @@
|
||||
|
||||
package org.springframework.boot.autoconfigure.integration;
|
||||
|
||||
import java.util.LinkedHashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Collection;
|
||||
import java.util.Collections;
|
||||
|
||||
import org.springframework.beans.BeansException;
|
||||
import org.springframework.beans.factory.BeanFactory;
|
||||
@@ -50,33 +49,16 @@ class IntegrationAutoConfigurationScanRegistrar extends IntegrationComponentScan
|
||||
@Override
|
||||
public void registerBeanDefinitions(AnnotationMetadata importingClassMetadata,
|
||||
final BeanDefinitionRegistry registry) {
|
||||
super.registerBeanDefinitions(
|
||||
new IntegrationComponentScanConfigurationMetaData(this.beanFactory),
|
||||
registry);
|
||||
super.registerBeanDefinitions(new StandardAnnotationMetadata(
|
||||
IntegrationComponentScanConfiguration.class, true), registry);
|
||||
}
|
||||
|
||||
private static class IntegrationComponentScanConfigurationMetaData
|
||||
extends StandardAnnotationMetadata {
|
||||
|
||||
private final BeanFactory beanFactory;
|
||||
|
||||
IntegrationComponentScanConfigurationMetaData(BeanFactory beanFactory) {
|
||||
super(IntegrationComponentScanConfiguration.class, true);
|
||||
this.beanFactory = beanFactory;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Map<String, Object> getAnnotationAttributes(String annotationName) {
|
||||
Map<String, Object> attributes = super.getAnnotationAttributes(
|
||||
annotationName);
|
||||
if (IntegrationComponentScan.class.getName().equals(annotationName)
|
||||
&& AutoConfigurationPackages.has(this.beanFactory)) {
|
||||
List<String> packages = AutoConfigurationPackages.get(this.beanFactory);
|
||||
attributes = new LinkedHashMap<String, Object>(attributes);
|
||||
attributes.put("value", packages.toArray(new String[packages.size()]));
|
||||
}
|
||||
return attributes;
|
||||
}
|
||||
@Override
|
||||
protected Collection<String> getBasePackages(
|
||||
AnnotationMetadata importingClassMetadata, BeanDefinitionRegistry registry) {
|
||||
return AutoConfigurationPackages.has(this.beanFactory)
|
||||
? AutoConfigurationPackages.get(this.beanFactory)
|
||||
: Collections.emptyList();
|
||||
}
|
||||
|
||||
@IntegrationComponentScan
|
||||
|
||||
Reference in New Issue
Block a user