Refactor @ConditionalOnBean to be conditional on an instance of o.a.g.cache.GemFireCache.

Refactor @ConditionalOnClass to be conditional on an SDG and Apache Geode type based on functional concern.
This commit is contained in:
John Blum
2018-03-20 11:45:13 -07:00
parent c7b9448f55
commit acdd8ac573
3 changed files with 17 additions and 14 deletions

View File

@@ -22,8 +22,7 @@ import java.util.Optional;
import javax.annotation.PostConstruct;
import org.apache.geode.cache.Cache;
import org.apache.geode.cache.client.ClientCache;
import org.apache.geode.cache.GemFireCache;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.autoconfigure.AutoConfigureAfter;
import org.springframework.boot.autoconfigure.cache.CacheManagerCustomizers;
@@ -33,10 +32,8 @@ import org.springframework.boot.autoconfigure.condition.ConditionalOnClass;
import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
import org.springframework.cache.CacheManager;
import org.springframework.context.annotation.Configuration;
import org.springframework.data.gemfire.CacheFactoryBean;
import org.springframework.data.gemfire.cache.GemfireCacheManager;
import org.springframework.data.gemfire.cache.config.EnableGemfireCaching;
import org.springframework.data.gemfire.client.ClientCacheFactoryBean;
/**
* Cache auto-configuration for Spring's Cache Abstraction, using Apache Geode as the caching provider.
@@ -50,8 +47,8 @@ import org.springframework.data.gemfire.client.ClientCacheFactoryBean;
* @since 1.5.0
*/
@Configuration
@ConditionalOnBean({ CacheFactoryBean.class, Cache.class, ClientCacheFactoryBean.class, ClientCache.class })
@ConditionalOnClass(GemfireCacheManager.class)
@ConditionalOnBean(GemFireCache.class)
@ConditionalOnClass({ GemfireCacheManager.class, GemFireCache.class })
@ConditionalOnMissingBean(CacheManager.class)
@AutoConfigureAfter(GeodeClientCacheAutoConfiguration.class)
@EnableGemfireCaching
@@ -65,7 +62,9 @@ class GeodeCachingProviderAutoConfiguration {
@Autowired
private GemfireCacheManager cacheManager;
GeodeCachingProviderAutoConfiguration(CacheProperties cacheProperties, CacheManagerCustomizers cacheManagerCustomizers) {
GeodeCachingProviderAutoConfiguration(CacheProperties cacheProperties,
CacheManagerCustomizers cacheManagerCustomizers) {
this.cacheProperties = cacheProperties;
this.cacheManagerCustomizers = cacheManagerCustomizers;
}

View File

@@ -14,7 +14,10 @@
* permissions and limitations under the License.
*/
package org.springframework.boot.data.geode.autoconfigure;import org.apache.geode.cache.Cache;
package org.springframework.boot.data.geode.autoconfigure;
import org.apache.geode.cache.Cache;
import org.apache.geode.cache.GemFireCache;
import org.apache.geode.cache.client.ClientCache;
import org.springframework.boot.autoconfigure.AutoConfigureAfter;
import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
@@ -38,7 +41,7 @@ import org.springframework.data.gemfire.config.annotation.EnableContinuousQuerie
* @since 1.0.0
*/
@Configuration
@ConditionalOnBean(ClientCache.class)
@ConditionalOnBean(GemFireCache.class)
@ConditionalOnClass({ ClientCacheFactoryBean.class, ClientCache.class })
@ConditionalOnMissingBean(name = "continuousQueryBeanPostProcessor", value = Cache.class)
@AutoConfigureAfter(GeodeClientCacheAutoConfiguration.class)

View File

@@ -16,29 +16,30 @@
package org.springframework.boot.data.geode.autoconfigure;
import org.apache.geode.cache.GemFireCache;
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;
import org.springframework.context.annotation.Configuration;
import org.springframework.data.gemfire.client.ClientCacheFactoryBean;
import org.springframework.data.gemfire.function.config.EnableGemfireFunctionExecutions;
import org.springframework.data.gemfire.function.execution.GemfireFunctionOperations;
/**
* Spring Boot {@link EnableAutoConfiguration auto-configuration} enabling Apache Geode's Function Execution
* functionality in a Spring Boot, Apache Geode {@link ClientCache} application.
*
* @author John Blum
* @see org.apache.geode.cache.client.ClientCache
* @see org.apache.geode.cache.GemFireCache
* @see org.springframework.boot.autoconfigure.EnableAutoConfiguration
* @see org.springframework.context.annotation.Configuration
* @see org.springframework.data.gemfire.client.ClientCacheFactoryBean
* @see org.springframework.data.gemfire.function.execution.GemfireFunctionOperations
* @since 1.0.0
*/
@Configuration
@ConditionalOnBean(ClientCache.class)
@ConditionalOnClass({ ClientCacheFactoryBean.class, ClientCache.class })
@ConditionalOnBean(GemFireCache.class)
@ConditionalOnClass({ GemfireFunctionOperations.class, GemFireCache.class })
@AutoConfigureAfter(GeodeClientCacheAutoConfiguration.class)
@EnableGemfireFunctionExecutions
@SuppressWarnings("unused")