Improve CQ Auto-configuration by assessing the availability of a server or cluster first before enabling and auto-configuring CQ functionality.
This added capabilities relies on the new ClusterAwareConditions. Resolves gh-53.
This commit is contained in:
@@ -21,10 +21,12 @@ import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
|
||||
import org.springframework.boot.autoconfigure.condition.ConditionalOnBean;
|
||||
import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
|
||||
import org.springframework.context.annotation.Bean;
|
||||
import org.springframework.context.annotation.Conditional;
|
||||
import org.springframework.context.annotation.Configuration;
|
||||
import org.springframework.data.gemfire.client.ClientCacheFactoryBean;
|
||||
import org.springframework.data.gemfire.config.annotation.ClientCacheConfigurer;
|
||||
import org.springframework.data.gemfire.config.annotation.EnableContinuousQueries;
|
||||
import org.springframework.geode.config.annotation.ClusterAvailableConfiguration;
|
||||
|
||||
/**
|
||||
* Spring Boot {@link EnableAutoConfiguration auto-configuration} enabling Apache Geode's Continuous Query (CQ)
|
||||
@@ -34,13 +36,16 @@ import org.springframework.data.gemfire.config.annotation.EnableContinuousQuerie
|
||||
* @see org.apache.geode.cache.client.ClientCache
|
||||
* @see org.springframework.boot.autoconfigure.EnableAutoConfiguration
|
||||
* @see org.springframework.context.annotation.Bean
|
||||
* @see org.springframework.context.annotation.Conditional
|
||||
* @see org.springframework.context.annotation.Configuration
|
||||
* @see org.springframework.data.gemfire.client.ClientCacheFactoryBean
|
||||
* @see org.springframework.data.gemfire.config.annotation.ClientCacheConfigurer
|
||||
* @see org.springframework.data.gemfire.config.annotation.EnableContinuousQueries
|
||||
* @see org.springframework.geode.config.annotation.ClusterAvailableConfiguration.ClusterAvailableCondition
|
||||
* @since 1.0.0
|
||||
*/
|
||||
@Configuration
|
||||
@Conditional(ClusterAvailableConfiguration.ClusterAvailableCondition.class)
|
||||
@ConditionalOnBean(ClientCacheFactoryBean.class)
|
||||
@ConditionalOnMissingBean(name = "continuousQueryBeanPostProcessor",
|
||||
type = "org.springframework.data.gemfire.listener.ContinuousQueryListenerContainer")
|
||||
|
||||
@@ -16,6 +16,7 @@
|
||||
package example.app.caching.lookaside.config;
|
||||
|
||||
import org.apache.geode.cache.client.ClientRegionShortcut;
|
||||
|
||||
import org.springframework.context.annotation.Configuration;
|
||||
import org.springframework.data.gemfire.config.annotation.EnableCachingDefinedRegions;
|
||||
import org.springframework.data.gemfire.config.annotation.EnableLogging;
|
||||
|
||||
@@ -32,8 +32,8 @@ import org.springframework.data.gemfire.config.annotation.EnableClusterConfigura
|
||||
@Configuration
|
||||
@Conditional(ClusterAvailableConfiguration.ClusterAvailableCondition.class)
|
||||
@EnableClusterConfiguration(requireHttps = false, useHttp = true)
|
||||
class ClusterAvailableConfiguration {
|
||||
public class ClusterAvailableConfiguration {
|
||||
|
||||
static final class ClusterAvailableCondition extends ClusterAwareConfiguration.ClusterAwareCondition { }
|
||||
public static final class ClusterAvailableCondition extends ClusterAwareConfiguration.ClusterAwareCondition { }
|
||||
|
||||
}
|
||||
|
||||
@@ -97,7 +97,7 @@ public class ClusterNotAvailableConfiguration {
|
||||
return clientRegion;
|
||||
}
|
||||
|
||||
static final class CusterNotAvailableCondition extends ClusterAwareConfiguration.ClusterAwareCondition {
|
||||
public static final class CusterNotAvailableCondition extends ClusterAwareConfiguration.ClusterAwareCondition {
|
||||
|
||||
@Override
|
||||
public synchronized boolean matches(ConditionContext context, AnnotatedTypeMetadata metadata) {
|
||||
|
||||
Reference in New Issue
Block a user