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.

This commit is contained in:
John Blum
2018-02-06 16:40:09 -08:00
parent fdcaeaff1b
commit 1603150d54
4 changed files with 9 additions and 1 deletions

View File

@@ -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 {

View File

@@ -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 {

View File

@@ -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 {

View File

@@ -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 {