From 1603150d54bfe5a9aea52ab60ed34c63cfaf2b2e Mon Sep 17 00:00:00 2001 From: John Blum Date: Tue, 6 Feb 2018 16:40:09 -0800 Subject: [PATCH] Annotate all auto @Configuration classes with @AutoConfigureAfter to apply auto-configuration of the particular functional concern only after the Apache Geode/Pivotal GemFire ClientCache instance has been auto-configured. --- .../autoconfigure/GeodeCachingProviderAutoConfiguration.java | 2 ++ .../autoconfigure/GeodeContinuousQueryAutoConfiguration.java | 2 ++ .../GeodeFunctionExecutionAutoConfiguration.java | 2 ++ .../autoconfigure/GeodeRepositoriesAutoConfiguration.java | 4 +++- 4 files changed, 9 insertions(+), 1 deletion(-) diff --git a/geode-spring-boot-starter/src/main/java/org/springframework/boot/data/geode/autoconfigure/GeodeCachingProviderAutoConfiguration.java b/geode-spring-boot-starter/src/main/java/org/springframework/boot/data/geode/autoconfigure/GeodeCachingProviderAutoConfiguration.java index 1db92653..401f9711 100644 --- a/geode-spring-boot-starter/src/main/java/org/springframework/boot/data/geode/autoconfigure/GeodeCachingProviderAutoConfiguration.java +++ b/geode-spring-boot-starter/src/main/java/org/springframework/boot/data/geode/autoconfigure/GeodeCachingProviderAutoConfiguration.java @@ -25,6 +25,7 @@ import javax.annotation.PostConstruct; import org.apache.geode.cache.Cache; import org.apache.geode.cache.client.ClientCache; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.boot.autoconfigure.AutoConfigureAfter; import org.springframework.boot.autoconfigure.cache.CacheManagerCustomizers; import org.springframework.boot.autoconfigure.cache.CacheProperties; import org.springframework.boot.autoconfigure.condition.ConditionalOnBean; @@ -52,6 +53,7 @@ import org.springframework.data.gemfire.client.ClientCacheFactoryBean; @ConditionalOnBean({ CacheFactoryBean.class, Cache.class, ClientCacheFactoryBean.class, ClientCache.class }) @ConditionalOnClass(GemfireCacheManager.class) @ConditionalOnMissingBean(CacheManager.class) +@AutoConfigureAfter(GeodeClientCacheAutoConfiguration.class) @EnableGemfireCaching @SuppressWarnings("all") class GeodeCachingProviderAutoConfiguration { diff --git a/geode-spring-boot-starter/src/main/java/org/springframework/boot/data/geode/autoconfigure/GeodeContinuousQueryAutoConfiguration.java b/geode-spring-boot-starter/src/main/java/org/springframework/boot/data/geode/autoconfigure/GeodeContinuousQueryAutoConfiguration.java index 9133a389..33b281af 100644 --- a/geode-spring-boot-starter/src/main/java/org/springframework/boot/data/geode/autoconfigure/GeodeContinuousQueryAutoConfiguration.java +++ b/geode-spring-boot-starter/src/main/java/org/springframework/boot/data/geode/autoconfigure/GeodeContinuousQueryAutoConfiguration.java @@ -16,6 +16,7 @@ package org.springframework.boot.data.geode.autoconfigure;import org.apache.geode.cache.Cache; import org.apache.geode.cache.client.ClientCache; +import org.springframework.boot.autoconfigure.AutoConfigureAfter; import org.springframework.boot.autoconfigure.EnableAutoConfiguration; import org.springframework.boot.autoconfigure.condition.ConditionalOnBean; import org.springframework.boot.autoconfigure.condition.ConditionalOnClass; @@ -40,6 +41,7 @@ import org.springframework.data.gemfire.config.annotation.EnableContinuousQuerie @ConditionalOnBean(ClientCache.class) @ConditionalOnClass({ ClientCacheFactoryBean.class, ClientCache.class }) @ConditionalOnMissingBean(name = "continuousQueryBeanPostProcessor", value = Cache.class) +@AutoConfigureAfter(GeodeClientCacheAutoConfiguration.class) @EnableContinuousQueries public class GeodeContinuousQueryAutoConfiguration { diff --git a/geode-spring-boot-starter/src/main/java/org/springframework/boot/data/geode/autoconfigure/GeodeFunctionExecutionAutoConfiguration.java b/geode-spring-boot-starter/src/main/java/org/springframework/boot/data/geode/autoconfigure/GeodeFunctionExecutionAutoConfiguration.java index 9dda6437..c1fffe25 100644 --- a/geode-spring-boot-starter/src/main/java/org/springframework/boot/data/geode/autoconfigure/GeodeFunctionExecutionAutoConfiguration.java +++ b/geode-spring-boot-starter/src/main/java/org/springframework/boot/data/geode/autoconfigure/GeodeFunctionExecutionAutoConfiguration.java @@ -17,6 +17,7 @@ package org.springframework.boot.data.geode.autoconfigure; import org.apache.geode.cache.client.ClientCache; +import org.springframework.boot.autoconfigure.AutoConfigureAfter; import org.springframework.boot.autoconfigure.EnableAutoConfiguration; import org.springframework.boot.autoconfigure.condition.ConditionalOnBean; import org.springframework.boot.autoconfigure.condition.ConditionalOnClass; @@ -38,6 +39,7 @@ import org.springframework.data.gemfire.function.config.EnableGemfireFunctionExe @Configuration @ConditionalOnBean(ClientCache.class) @ConditionalOnClass({ ClientCacheFactoryBean.class, ClientCache.class }) +@AutoConfigureAfter(GeodeClientCacheAutoConfiguration.class) @EnableGemfireFunctionExecutions @SuppressWarnings("unused") public class GeodeFunctionExecutionAutoConfiguration { diff --git a/geode-spring-boot-starter/src/main/java/org/springframework/boot/data/geode/autoconfigure/GeodeRepositoriesAutoConfiguration.java b/geode-spring-boot-starter/src/main/java/org/springframework/boot/data/geode/autoconfigure/GeodeRepositoriesAutoConfiguration.java index 29335a33..b9917872 100644 --- a/geode-spring-boot-starter/src/main/java/org/springframework/boot/data/geode/autoconfigure/GeodeRepositoriesAutoConfiguration.java +++ b/geode-spring-boot-starter/src/main/java/org/springframework/boot/data/geode/autoconfigure/GeodeRepositoriesAutoConfiguration.java @@ -18,6 +18,7 @@ package org.springframework.boot.data.geode.autoconfigure; import org.apache.geode.cache.Cache; import org.apache.geode.cache.client.ClientCache; +import org.springframework.boot.autoconfigure.AutoConfigureAfter; import org.springframework.boot.autoconfigure.EnableAutoConfiguration; import org.springframework.boot.autoconfigure.condition.ConditionalOnBean; import org.springframework.boot.autoconfigure.condition.ConditionalOnClass; @@ -54,8 +55,9 @@ import org.springframework.data.gemfire.repository.support.GemfireRepositoryFact @ConditionalOnBean({ Cache.class, ClientCache.class }) @ConditionalOnClass(GemfireRepository.class) @ConditionalOnMissingBean({ GemfireRepositoryConfigurationExtension.class, GemfireRepositoryFactoryBean.class }) -@ConditionalOnProperty(prefix = "spring.data.geode.repositories", +@ConditionalOnProperty(prefix = "spring.data.gemfire.repositories", name = "enabled", havingValue = "true", matchIfMissing = true) +@AutoConfigureAfter(GeodeClientCacheAutoConfiguration.class) @Import(GeodeRepositoriesAutoConfigurationRegistrar.class) public class GeodeRepositoriesAutoConfiguration {