diff --git a/spring-cloud-context/src/main/java/org/springframework/cloud/autoconfigure/RefreshAutoConfiguration.java b/spring-cloud-context/src/main/java/org/springframework/cloud/autoconfigure/RefreshAutoConfiguration.java index 89e56f7a..8b987724 100644 --- a/spring-cloud-context/src/main/java/org/springframework/cloud/autoconfigure/RefreshAutoConfiguration.java +++ b/spring-cloud-context/src/main/java/org/springframework/cloud/autoconfigure/RefreshAutoConfiguration.java @@ -27,6 +27,7 @@ import org.springframework.beans.factory.BeanFactory; import org.springframework.beans.factory.config.BeanDefinition; import org.springframework.beans.factory.config.BeanDefinitionHolder; import org.springframework.beans.factory.config.ConfigurableListableBeanFactory; +import org.springframework.beans.factory.support.BeanDefinitionBuilder; import org.springframework.beans.factory.support.BeanDefinitionRegistry; import org.springframework.beans.factory.support.BeanDefinitionRegistryPostProcessor; import org.springframework.boot.autoconfigure.AutoConfigureAfter; @@ -61,9 +62,24 @@ import org.springframework.stereotype.Component; @AutoConfigureAfter(WebMvcAutoConfiguration.class) public class RefreshAutoConfiguration { - @Bean - public static RefreshScope refreshScope() { - return new RefreshScope(); + @Component + @ConditionalOnMissingBean(RefreshScope.class) + protected static class RefreshScopeConfiguration + implements BeanDefinitionRegistryPostProcessor { + + @Override + public void postProcessBeanFactory(ConfigurableListableBeanFactory beanFactory) + throws BeansException { + } + + @Override + public void postProcessBeanDefinitionRegistry(BeanDefinitionRegistry registry) + throws BeansException { + registry.registerBeanDefinition("refreshScope", + BeanDefinitionBuilder.genericBeanDefinition(RefreshScope.class) + .setRole(BeanDefinition.ROLE_INFRASTRUCTURE) + .getBeanDefinition()); + } } @Component @@ -110,7 +126,6 @@ public class RefreshAutoConfiguration { BeanDefinitionHolder proxy = ScopedProxyUtils .createScopedProxy(holder, registry, true); definition.setScope("refresh"); - definition.setLazyInit(true); registry.registerBeanDefinition(proxy.getBeanName(), proxy.getBeanDefinition()); } diff --git a/spring-cloud-context/src/test/java/org/springframework/cloud/autoconfigure/JdbcConfigurationTests.java b/spring-cloud-context/src/test/java/org/springframework/cloud/autoconfigure/JdbcConfigurationTests.java deleted file mode 100644 index 624c2a2c..00000000 --- a/spring-cloud-context/src/test/java/org/springframework/cloud/autoconfigure/JdbcConfigurationTests.java +++ /dev/null @@ -1,53 +0,0 @@ -/* - * Copyright 2016-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. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package org.springframework.cloud.autoconfigure; - -import org.junit.Test; - -import org.springframework.boot.SpringBootConfiguration; -import org.springframework.boot.WebApplicationType; -import org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration; -import org.springframework.boot.autoconfigure.jdbc.DataSourceProperties; -import org.springframework.boot.builder.SpringApplicationBuilder; -import org.springframework.boot.context.properties.EnableConfigurationProperties; -import org.springframework.context.annotation.Import; - -/** - * @author Dave Syer - * - */ -public class JdbcConfigurationTests { - - @Test - public void schemaApplied() { - new SpringApplicationBuilder(BrokenApplication.class).web(WebApplicationType.NONE) - .run("--spring.datasource.initialization-mode=always").close(); - } - - @SpringBootConfiguration - @EnableConfigurationProperties(DataSourceProperties.class) - @Import({ DataSourceAutoConfiguration.class, RefreshAutoConfiguration.class }) - protected static class BrokenApplication { - - public static void main(String[] args) { - new SpringApplicationBuilder(BrokenApplication.class) - .web(WebApplicationType.NONE).run(args); - } - - } - -} diff --git a/spring-cloud-context/src/test/resources/data.sql b/spring-cloud-context/src/test/resources/data.sql deleted file mode 100644 index a72ec93b..00000000 --- a/spring-cloud-context/src/test/resources/data.sql +++ /dev/null @@ -1,6 +0,0 @@ -INSERT INTO foos (value) -VALUES - ('ITEM1') -,('ITEM2') -,('ITEM3') -;