diff --git a/spring-data-geode/src/main/java/org/springframework/data/gemfire/AbstractBasicCacheFactoryBean.java b/spring-data-geode/src/main/java/org/springframework/data/gemfire/AbstractBasicCacheFactoryBean.java index 6ed7028c..94d51d23 100644 --- a/spring-data-geode/src/main/java/org/springframework/data/gemfire/AbstractBasicCacheFactoryBean.java +++ b/spring-data-geode/src/main/java/org/springframework/data/gemfire/AbstractBasicCacheFactoryBean.java @@ -241,15 +241,6 @@ public abstract class AbstractBasicCacheFactoryBean extends AbstractFactoryBeanS } } - /** - * Returns a boolean value used to determine whether the cache will be closed on shutdown of the Spring application. - * - * @return a boolean value used to determine whether the cache will be closed on shutdown of the Spring application. - */ - public boolean isClose() { - return this.close; - } - /** * Sets a boolean value used to determine whether the cache should be closed on shutdown of the Spring application. * @@ -260,6 +251,15 @@ public abstract class AbstractBasicCacheFactoryBean extends AbstractFactoryBeanS this.close = close; } + /** + * Returns a boolean value used to determine whether the cache will be closed on shutdown of the Spring application. + * + * @return a boolean value used to determine whether the cache will be closed on shutdown of the Spring application. + */ + public boolean isClose() { + return this.close; + } + /** * Sets the {@link GemFireCache#getCopyOnRead()} property of the {@link GemFireCache cache}. * @@ -444,16 +444,6 @@ public abstract class AbstractBasicCacheFactoryBean extends AbstractFactoryBeanS return this.properties; } - /** - * Determines whether the {@link GemfireBeanFactoryLocator} has been enabled. - * - * @return a boolean value indicating whether the {@link GemfireBeanFactoryLocator} has been enabled. - * @see org.springframework.data.gemfire.support.GemfireBeanFactoryLocator - */ - public boolean isUseBeanFactoryLocator() { - return this.useBeanFactoryLocator; - } - /** * Sets a boolean value used to determine whether to enable the {@link GemfireBeanFactoryLocator}. * @@ -464,6 +454,16 @@ public abstract class AbstractBasicCacheFactoryBean extends AbstractFactoryBeanS this.useBeanFactoryLocator = use; } + /** + * Determines whether the {@link GemfireBeanFactoryLocator} has been enabled. + * + * @return a boolean value indicating whether the {@link GemfireBeanFactoryLocator} has been enabled. + * @see org.springframework.data.gemfire.support.GemfireBeanFactoryLocator + */ + public boolean isUseBeanFactoryLocator() { + return this.useBeanFactoryLocator; + } + /** * Initializes this cache {@link FactoryBean} after all properties for this cache bean have been set * by the Spring container. @@ -540,16 +540,18 @@ public abstract class AbstractBasicCacheFactoryBean extends AbstractFactoryBeanS Optional.ofNullable(getCriticalHeapPercentage()).ifPresent(criticalHeapPercentage -> { - Assert.isTrue(isHeapPercentageValid(criticalHeapPercentage), String.format( - "criticalHeapPercentage [%s] is not valid; must be >= 0.0 and <= 100.0", criticalHeapPercentage)); + Assert.isTrue(isHeapPercentageValid(criticalHeapPercentage), + () -> String.format("criticalHeapPercentage [%s] is not valid; must be >= 0.0 and <= 100.0", + criticalHeapPercentage)); cache.getResourceManager().setCriticalHeapPercentage(criticalHeapPercentage); }); Optional.ofNullable(getEvictionHeapPercentage()).ifPresent(evictionHeapPercentage -> { - Assert.isTrue(isHeapPercentageValid(evictionHeapPercentage), String.format( - "evictionHeapPercentage [%s] is not valid; must be >= 0.0 and <= 100.0", evictionHeapPercentage)); + Assert.isTrue(isHeapPercentageValid(evictionHeapPercentage), + () -> String.format("evictionHeapPercentage [%s] is not valid; must be >= 0.0 and <= 100.0", + evictionHeapPercentage)); cache.getResourceManager().setEvictionHeapPercentage(evictionHeapPercentage); }); @@ -561,16 +563,18 @@ public abstract class AbstractBasicCacheFactoryBean extends AbstractFactoryBeanS Optional.ofNullable(getCriticalOffHeapPercentage()).ifPresent(criticalOffHeapPercentage -> { - Assert.isTrue(isHeapPercentageValid(criticalOffHeapPercentage), String.format( - "criticalOffHeapPercentage [%s] is not valid; must be >= 0.0 and <= 100.0", criticalOffHeapPercentage)); + Assert.isTrue(isHeapPercentageValid(criticalOffHeapPercentage), + () -> String.format("criticalOffHeapPercentage [%s] is not valid; must be >= 0.0 and <= 100.0", + criticalOffHeapPercentage)); cache.getResourceManager().setCriticalOffHeapPercentage(criticalOffHeapPercentage); }); Optional.ofNullable(getEvictionOffHeapPercentage()).ifPresent(evictionOffHeapPercentage -> { - Assert.isTrue(isHeapPercentageValid(evictionOffHeapPercentage), String.format( - "evictionOffHeapPercentage [%s] is not valid; must be >= 0.0 and <= 100.0", evictionOffHeapPercentage)); + Assert.isTrue(isHeapPercentageValid(evictionOffHeapPercentage), + () -> String.format("evictionOffHeapPercentage [%s] is not valid; must be >= 0.0 and <= 100.0", + evictionOffHeapPercentage)); cache.getResourceManager().setEvictionOffHeapPercentage(evictionOffHeapPercentage); }); diff --git a/spring-data-geode/src/main/java/org/springframework/data/gemfire/CacheFactoryBean.java b/spring-data-geode/src/main/java/org/springframework/data/gemfire/CacheFactoryBean.java index 44b6d48c..407f0312 100644 --- a/spring-data-geode/src/main/java/org/springframework/data/gemfire/CacheFactoryBean.java +++ b/spring-data-geode/src/main/java/org/springframework/data/gemfire/CacheFactoryBean.java @@ -18,7 +18,6 @@ package org.springframework.data.gemfire; import static org.springframework.data.gemfire.GemfireUtils.apacheGeodeProductName; import static org.springframework.data.gemfire.GemfireUtils.apacheGeodeVersion; import static org.springframework.data.gemfire.util.ArrayUtils.nullSafeArray; -import static org.springframework.data.gemfire.util.CollectionUtils.nullSafeCollection; import static org.springframework.data.gemfire.util.CollectionUtils.nullSafeList; import static org.springframework.data.gemfire.util.RuntimeExceptionFactory.newRuntimeException; @@ -297,7 +296,7 @@ public class CacheFactoryBean extends AbstractPdxConfigurableCacheFactoryBean { * @return the given {@link CacheFactory}. * @see org.apache.geode.cache.CacheFactory */ - private @NonNull CacheFactory configureSecurity(@NonNull CacheFactory cacheFactory) { + protected @NonNull CacheFactory configureSecurity(@NonNull CacheFactory cacheFactory) { org.apache.geode.security.SecurityManager securityManager = getSecurityManager(); @@ -347,6 +346,7 @@ public class CacheFactoryBean extends AbstractPdxConfigurableCacheFactoryBean { * @see #registerTransactionListeners(org.apache.geode.cache.GemFireCache) * @see #registerTransactionWriter(org.apache.geode.cache.GemFireCache) */ + // TODO: Refactor this garbage! protected @NonNull T postProcess(@NonNull T cache) { loadCacheXml(cache); @@ -354,11 +354,14 @@ public class CacheFactoryBean extends AbstractPdxConfigurableCacheFactoryBean { Optional.ofNullable(getCopyOnRead()).ifPresent(cache::setCopyOnRead); if (cache instanceof Cache) { - Optional.ofNullable(getGatewayConflictResolver()).ifPresent(((Cache) cache)::setGatewayConflictResolver); - Optional.ofNullable(getLockLease()).ifPresent(((Cache) cache)::setLockLease); - Optional.ofNullable(getLockTimeout()).ifPresent(((Cache) cache)::setLockTimeout); - Optional.ofNullable(getMessageSyncInterval()).ifPresent(((Cache) cache)::setMessageSyncInterval); - Optional.ofNullable(getSearchTimeout()).ifPresent(((Cache) cache)::setSearchTimeout); + + Cache peerCache = (Cache) cache; + + Optional.ofNullable(getGatewayConflictResolver()).ifPresent(peerCache::setGatewayConflictResolver); + Optional.ofNullable(getLockLease()).ifPresent(peerCache::setLockLease); + Optional.ofNullable(getLockTimeout()).ifPresent(peerCache::setLockTimeout); + Optional.ofNullable(getMessageSyncInterval()).ifPresent(peerCache::setMessageSyncInterval); + Optional.ofNullable(getSearchTimeout()).ifPresent(peerCache::setSearchTimeout); } configureHeapPercentages(cache); @@ -372,7 +375,7 @@ public class CacheFactoryBean extends AbstractPdxConfigurableCacheFactoryBean { private GemFireCache registerJndiDataSources(GemFireCache cache) { - nullSafeCollection(getJndiDataSources()).forEach(jndiDataSource -> { + CollectionUtils.nullSafeCollection(getJndiDataSources()).forEach(jndiDataSource -> { String type = jndiDataSource.getAttributes().get("type"); @@ -393,7 +396,7 @@ public class CacheFactoryBean extends AbstractPdxConfigurableCacheFactoryBean { private GemFireCache registerTransactionListeners(GemFireCache cache) { - nullSafeCollection(getTransactionListeners()) + CollectionUtils.nullSafeCollection(getTransactionListeners()) .forEach(transactionListener -> cache.getCacheTransactionManager().addListener(transactionListener)); return cache; @@ -401,7 +404,8 @@ public class CacheFactoryBean extends AbstractPdxConfigurableCacheFactoryBean { private GemFireCache registerTransactionWriter(GemFireCache cache) { - Optional.ofNullable(getTransactionWriter()).ifPresent(it -> cache.getCacheTransactionManager().setWriter(it)); + Optional.ofNullable(getTransactionWriter()) + .ifPresent(transactionWriter -> cache.getCacheTransactionManager().setWriter(transactionWriter)); return cache; } diff --git a/spring-data-geode/src/main/java/org/springframework/data/gemfire/ConfigurableRegionFactoryBean.java b/spring-data-geode/src/main/java/org/springframework/data/gemfire/ConfigurableRegionFactoryBean.java index acea41f1..ae71ff1f 100644 --- a/spring-data-geode/src/main/java/org/springframework/data/gemfire/ConfigurableRegionFactoryBean.java +++ b/spring-data-geode/src/main/java/org/springframework/data/gemfire/ConfigurableRegionFactoryBean.java @@ -49,7 +49,7 @@ public abstract class ConfigurableRegionFactoryBean extends ResolvableRegi private List regionConfigurers = Collections.emptyList(); - private RegionConfigurer compositeRegionConfigurer = new RegionConfigurer() { + private final RegionConfigurer compositeRegionConfigurer = new RegionConfigurer() { @Override public void configure(String beanName, ClientRegionFactoryBean bean) { diff --git a/spring-data-geode/src/main/java/org/springframework/data/gemfire/LocatorFactoryBean.java b/spring-data-geode/src/main/java/org/springframework/data/gemfire/LocatorFactoryBean.java index 9c739ced..aa691acc 100644 --- a/spring-data-geode/src/main/java/org/springframework/data/gemfire/LocatorFactoryBean.java +++ b/spring-data-geode/src/main/java/org/springframework/data/gemfire/LocatorFactoryBean.java @@ -17,7 +17,6 @@ package org.springframework.data.gemfire; import static org.springframework.data.gemfire.util.ArrayUtils.nullSafeArray; import static org.springframework.data.gemfire.util.CollectionUtils.nullSafeIterable; -import static org.springframework.data.gemfire.util.CollectionUtils.nullSafeList; import java.util.ArrayList; import java.util.Arrays; @@ -33,6 +32,7 @@ import org.springframework.beans.factory.FactoryBean; import org.springframework.beans.factory.InitializingBean; import org.springframework.data.gemfire.config.annotation.LocatorConfigurer; import org.springframework.data.gemfire.support.AbstractFactoryBeanSupport; +import org.springframework.data.gemfire.util.CollectionUtils; import org.springframework.lang.Nullable; import org.springframework.util.Assert; import org.springframework.util.StringUtils; @@ -62,12 +62,12 @@ public class LocatorFactoryBean extends AbstractFactoryBeanSupport impl private Integer port = DEFAULT_PORT; - private List locatorConfigurers = new ArrayList<>(); + private final List locatorConfigurers = new ArrayList<>(); private Locator locator; - private LocatorConfigurer compositeLocatorConfigurer = (beanName, bean) -> - nullSafeList(this.locatorConfigurers).forEach(locatorConfigurer -> + private final LocatorConfigurer compositeLocatorConfigurer = (beanName, bean) -> + CollectionUtils.nullSafeList(this.locatorConfigurers).forEach(locatorConfigurer -> locatorConfigurer.configure(beanName, bean)); private LocatorLauncher locatorLauncher; diff --git a/spring-data-geode/src/main/java/org/springframework/data/gemfire/PeerRegionFactoryBean.java b/spring-data-geode/src/main/java/org/springframework/data/gemfire/PeerRegionFactoryBean.java index 198d46a7..4fea69d6 100644 --- a/spring-data-geode/src/main/java/org/springframework/data/gemfire/PeerRegionFactoryBean.java +++ b/spring-data-geode/src/main/java/org/springframework/data/gemfire/PeerRegionFactoryBean.java @@ -139,10 +139,10 @@ public abstract class PeerRegionFactoryBean extends ConfigurableRegionFact private ExpirationAttributes regionIdleTimeout; private ExpirationAttributes regionTimeToLive; - private List asyncEventQueues = new ArrayList<>(); - private List gatewaySenders = new ArrayList<>(); - private List asyncEventQueueIds = new ArrayList<>(); - private List gatewaySenderIds = new ArrayList<>(); + private final List asyncEventQueues = new ArrayList<>(); + private final List gatewaySenders = new ArrayList<>(); + private final List asyncEventQueueIds = new ArrayList<>(); + private final List gatewaySenderIds = new ArrayList<>(); private RegionAttributes attributes; @@ -1173,7 +1173,6 @@ public abstract class PeerRegionFactoryBean extends ConfigurableRegionFact * @inheritDoc */ @Override - @SuppressWarnings("all") public void stop() { if (!this.gatewaySenders.isEmpty()) { diff --git a/spring-data-geode/src/main/java/org/springframework/data/gemfire/RegionAttributesFactoryBean.java b/spring-data-geode/src/main/java/org/springframework/data/gemfire/RegionAttributesFactoryBean.java index fd43fe16..edadfd59 100644 --- a/spring-data-geode/src/main/java/org/springframework/data/gemfire/RegionAttributesFactoryBean.java +++ b/spring-data-geode/src/main/java/org/springframework/data/gemfire/RegionAttributesFactoryBean.java @@ -23,6 +23,7 @@ import org.apache.geode.cache.RegionAttributes; import org.springframework.beans.factory.FactoryBean; import org.springframework.beans.factory.InitializingBean; import org.springframework.data.gemfire.util.ArrayUtils; +import org.springframework.lang.NonNull; import org.springframework.util.StringUtils; /** @@ -38,6 +39,7 @@ import org.springframework.util.StringUtils; * @see org.springframework.beans.factory.InitializingBean */ @SuppressWarnings({ "unused" }) +// TODO: Refactor RegionAttributesFactoryBean to no longer directly extend AttributesFactory public class RegionAttributesFactoryBean extends AttributesFactory implements FactoryBean>, InitializingBean { @@ -66,7 +68,7 @@ public class RegionAttributesFactoryBean extends AttributesFactory return true; } - public void setAsyncEventQueueIds(String[] asyncEventQueueIds) { + public void setAsyncEventQueueIds(@NonNull String[] asyncEventQueueIds) { Arrays.stream(ArrayUtils.nullSafeArray(asyncEventQueueIds, String.class)) .filter(StringUtils::hasText) @@ -74,11 +76,11 @@ public class RegionAttributesFactoryBean extends AttributesFactory .forEach(this::addAsyncEventQueueId); } - public void setIndexUpdateType(IndexMaintenancePolicyType indexUpdateType) { + public void setIndexUpdateType(@NonNull IndexMaintenancePolicyType indexUpdateType) { indexUpdateType.setIndexMaintenance(this); } - public void setGatewaySenderIds(String[] gatewaySenderIds) { + public void setGatewaySenderIds(@NonNull String[] gatewaySenderIds) { Arrays.stream(ArrayUtils.nullSafeArray(gatewaySenderIds, String.class)) .filter(StringUtils::hasText) diff --git a/spring-data-geode/src/main/java/org/springframework/data/gemfire/ResolvableRegionFactoryBean.java b/spring-data-geode/src/main/java/org/springframework/data/gemfire/ResolvableRegionFactoryBean.java index 47a4f86a..455af364 100644 --- a/spring-data-geode/src/main/java/org/springframework/data/gemfire/ResolvableRegionFactoryBean.java +++ b/spring-data-geode/src/main/java/org/springframework/data/gemfire/ResolvableRegionFactoryBean.java @@ -198,7 +198,7 @@ public abstract class ResolvableRegionFactoryBean extends AbstractFactoryB * @see org.springframework.beans.factory.FactoryBean#getObjectType() */ @Override - @SuppressWarnings("unchecked") + @SuppressWarnings({ "rawtypes", "unchecked" }) public Class getObjectType() { return Optional.ofNullable(getRegion()).map(Region::getClass).orElse((Class) Region.class); } diff --git a/spring-data-geode/src/main/java/org/springframework/data/gemfire/client/ClientCacheFactoryBean.java b/spring-data-geode/src/main/java/org/springframework/data/gemfire/client/ClientCacheFactoryBean.java index 9ea057c7..0162dd83 100644 --- a/spring-data-geode/src/main/java/org/springframework/data/gemfire/client/ClientCacheFactoryBean.java +++ b/spring-data-geode/src/main/java/org/springframework/data/gemfire/client/ClientCacheFactoryBean.java @@ -85,6 +85,7 @@ import org.springframework.util.StringUtils; * @since 1.0.0 */ @SuppressWarnings("unused") +// TODO: Refactor this class to no longer extend CacheFactoryBean public class ClientCacheFactoryBean extends CacheFactoryBean implements ApplicationListener { protected static final PoolResolver DEFAULT_POOL_RESOLVER = new PoolManagerPoolResolver(); diff --git a/spring-data-geode/src/main/java/org/springframework/data/gemfire/config/annotation/LocatorApplicationConfiguration.java b/spring-data-geode/src/main/java/org/springframework/data/gemfire/config/annotation/LocatorApplicationConfiguration.java index 35cee062..1f872b9d 100644 --- a/spring-data-geode/src/main/java/org/springframework/data/gemfire/config/annotation/LocatorApplicationConfiguration.java +++ b/spring-data-geode/src/main/java/org/springframework/data/gemfire/config/annotation/LocatorApplicationConfiguration.java @@ -83,6 +83,7 @@ public class LocatorApplicationConfiguration extends AbstractAnnotationConfigSup private int port = DEFAULT_PORT; + @SuppressWarnings("all") @Autowired(required = false) private List locatorConfigurers = Collections.emptyList();