diff --git a/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/integration/IntegrationAutoConfigurationScanRegistrar.java b/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/integration/IntegrationAutoConfigurationScanRegistrar.java index 87f2653b60..9836a578bb 100644 --- a/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/integration/IntegrationAutoConfigurationScanRegistrar.java +++ b/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/integration/IntegrationAutoConfigurationScanRegistrar.java @@ -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 getAnnotationAttributes(String annotationName) { - Map attributes = super.getAnnotationAttributes( - annotationName); - if (IntegrationComponentScan.class.getName().equals(annotationName) - && AutoConfigurationPackages.has(this.beanFactory)) { - List packages = AutoConfigurationPackages.get(this.beanFactory); - attributes = new LinkedHashMap(attributes); - attributes.put("value", packages.toArray(new String[packages.size()])); - } - return attributes; - } + @Override + protected Collection getBasePackages( + AnnotationMetadata importingClassMetadata, BeanDefinitionRegistry registry) { + return AutoConfigurationPackages.has(this.beanFactory) + ? AutoConfigurationPackages.get(this.beanFactory) + : Collections.emptyList(); } @IntegrationComponentScan