From c6a7c0b350f0fee310bf8bf7f57ca8bec5aa047e Mon Sep 17 00:00:00 2001 From: John Blum Date: Tue, 5 Nov 2019 14:53:13 -0800 Subject: [PATCH] SGF-615 - Polish. --- .../data/gemfire/CacheFactoryBean.java | 20 +++-------- .../AbstractCacheConfiguration.java | 16 +++++---- .../data/gemfire/config/xml/CacheParser.java | 35 +++++++++++-------- .../gemfire/config/xml/ClientCacheParser.java | 10 ++++-- .../gemfire/config/spring-gemfire-2.2.xsd | 32 +++++++++++++++++ .../gemfire/config/spring-gemfire-2.3.xsd | 32 ----------------- 6 files changed, 74 insertions(+), 71 deletions(-) diff --git a/src/main/java/org/springframework/data/gemfire/CacheFactoryBean.java b/src/main/java/org/springframework/data/gemfire/CacheFactoryBean.java index b4d5bcc6..6e9f1542 100644 --- a/src/main/java/org/springframework/data/gemfire/CacheFactoryBean.java +++ b/src/main/java/org/springframework/data/gemfire/CacheFactoryBean.java @@ -91,6 +91,7 @@ import org.springframework.util.StringUtils; * @see org.apache.geode.cache.CacheFactory * @see org.apache.geode.cache.GemFireCache * @see org.apache.geode.cache.RegionService + * @see org.apache.geode.cache.client.ClientCacheFactory * @see org.apache.geode.distributed.DistributedMember * @see org.apache.geode.distributed.DistributedSystem * @see org.apache.geode.cache.pdx.PdxSerializer @@ -194,6 +195,7 @@ public class CacheFactoryBean extends AbstractFactoryBeanSupport gemfireProperties.setProperty("use-cluster-configuration", String.valueOf(Boolean.TRUE.equals(getUseClusterConfiguration()))); + }; this.peerCacheConfigurers.add(autoReconnectClusterConfigurationConfigurer); @@ -612,14 +614,13 @@ public class CacheFactoryBean extends AbstractFactoryBeanSupport /** * Destroys the {@link Cache} bean on Spring container shutdown. * - * @throws Exception if an error occurs while closing the cache. * @see org.springframework.beans.factory.DisposableBean#destroy() * @see #destroyBeanFactoryLocator() * @see #close(GemFireCache) * @see #isClose() */ @Override - public void destroy() throws Exception { + public void destroy() { if (isClose()) { close(fetchCache()); @@ -648,7 +649,6 @@ public class CacheFactoryBean extends AbstractFactoryBeanSupport * @see org.springframework.dao.DataAccessException */ @Override - @SuppressWarnings("all") public DataAccessException translateExceptionIfPossible(RuntimeException exception) { if (exception instanceof IllegalArgumentException) { @@ -758,15 +758,8 @@ public class CacheFactoryBean extends AbstractFactoryBeanSupport * @return boolean value indicating whether a {@link Resource cache.xml} {@link File} is present. * @see #getCacheXmlFile() */ - @SuppressWarnings("all") private boolean isCacheXmlAvailable() { - - try { - return getCacheXmlFile() != null; - } - catch (Throwable ignore) { - return false; - } + return SpringUtils.safeGetValue(() -> getCacheXml() != null, false); } /** @@ -778,11 +771,8 @@ public class CacheFactoryBean extends AbstractFactoryBeanSupport * @see #getCache() */ @Override - @SuppressWarnings("all") public GemFireCache getObject() throws Exception { - - return Optional.ofNullable(getCache()) - .orElseGet(this::init); + return Optional.ofNullable(getCache()).orElseGet(this::init); } /** diff --git a/src/main/java/org/springframework/data/gemfire/config/annotation/AbstractCacheConfiguration.java b/src/main/java/org/springframework/data/gemfire/config/annotation/AbstractCacheConfiguration.java index 24063592..7faf8575 100644 --- a/src/main/java/org/springframework/data/gemfire/config/annotation/AbstractCacheConfiguration.java +++ b/src/main/java/org/springframework/data/gemfire/config/annotation/AbstractCacheConfiguration.java @@ -80,6 +80,7 @@ import org.springframework.util.StringUtils; * @see org.springframework.data.gemfire.config.support.CustomEditorBeanFactoryPostProcessor * @see org.springframework.data.gemfire.config.support.DefinedIndexesApplicationListener * @see org.springframework.data.gemfire.config.support.DiskStoreDirectoryBeanPostProcessor + * @see org.springframework.data.gemfire.util.PropertiesBuilder * @since 1.9.0 */ @Configuration @@ -141,7 +142,7 @@ public abstract class AbstractCacheConfiguration extends AbstractAnnotationConfi * * {@literal mcast-port} is set to {@literal 0} and {@literal locators} is set to an {@link String empty String}, * which is necessary for {@link ClientCache cache client}-based applications. These values can be changed - * and set accoridingly for {@link Cache peer cache} and {@link CacheServer cache server} applications. + * and set accordingly for {@link Cache peer cache} and {@link CacheServer cache server} applications. * * Finally, the {@literal log-level} property defaults to {@literal config}. * @@ -153,6 +154,7 @@ public abstract class AbstractCacheConfiguration extends AbstractAnnotationConfi * @see #logLevel() * @see #mcastPort() * @see #name() + * @see #startLocator() */ @Bean protected Properties gemfireProperties() { @@ -306,7 +308,7 @@ public abstract class AbstractCacheConfiguration extends AbstractAnnotationConfi * @see #newCacheFactoryBean() */ protected T constructCacheFactoryBean() { - return configureCacheFactoryBean(this.newCacheFactoryBean()); + return configureCacheFactoryBean(this.newCacheFactoryBean()); } /** @@ -355,7 +357,7 @@ public abstract class AbstractCacheConfiguration extends AbstractAnnotationConfi return gemfireCache; } - // REVIEW JAVADOC FROM HERE + // TODO: REVIEW JAVADOC FROM HERE /** * Determines whether this is a Pivotal GemFire {@link org.apache.geode.cache.server.CacheServer} application, @@ -437,7 +439,7 @@ public abstract class AbstractCacheConfiguration extends AbstractAnnotationConfi * @see #isPeerCacheApplication(AnnotationMetadata) */ protected boolean isCacheServerOrPeerCacheApplication(AnnotationMetadata importMetadata) { - return (isCacheServerApplication(importMetadata) || isPeerCacheApplication(importMetadata)); + return isCacheServerApplication(importMetadata) || isPeerCacheApplication(importMetadata); } /** @@ -453,8 +455,10 @@ public abstract class AbstractCacheConfiguration extends AbstractAnnotationConfi * @see #isPeerCacheApplication(AnnotationMetadata) */ protected boolean isClientPeerOrServerCacheApplication(AnnotationMetadata importMetadata) { - return (isCacheServerApplication(importMetadata) || isClientCacheApplication(importMetadata) - || isPeerCacheApplication(importMetadata)); + + return isCacheServerApplication(importMetadata) + || isClientCacheApplication(importMetadata) + || isPeerCacheApplication(importMetadata); } void setCacheXml(Resource cacheXml) { diff --git a/src/main/java/org/springframework/data/gemfire/config/xml/CacheParser.java b/src/main/java/org/springframework/data/gemfire/config/xml/CacheParser.java index 3599ec5d..9f352ecd 100644 --- a/src/main/java/org/springframework/data/gemfire/config/xml/CacheParser.java +++ b/src/main/java/org/springframework/data/gemfire/config/xml/CacheParser.java @@ -13,7 +13,6 @@ * See the License for the specific language governing permissions and * limitations under the License. */ - package org.springframework.data.gemfire.config.xml; import java.util.List; @@ -33,6 +32,7 @@ import org.springframework.beans.factory.support.BeanDefinitionRegistry; import org.springframework.beans.factory.support.ManagedList; import org.springframework.beans.factory.support.ManagedMap; import org.springframework.beans.factory.xml.AbstractSingleBeanDefinitionParser; +import org.springframework.beans.factory.xml.BeanDefinitionParser; import org.springframework.beans.factory.xml.ParserContext; import org.springframework.data.gemfire.CacheFactoryBean; import org.springframework.data.gemfire.config.support.CustomEditorBeanFactoryPostProcessor; @@ -43,13 +43,14 @@ import org.springframework.util.StringUtils; import org.springframework.util.xml.DomUtils; /** - * Bean definition parser for the <gfe:cache> SDG XML namespace (XSD) element. + * {@link BeanDefinitionParser} for the <gfe:cache> SDG XML Namespace (XSD) element. * * @author Costin Leau * @author Oliver Gierke * @author David Turanski * @author John Blum * @author Patrick Johnson + * @see org.w3c.dom.Element * @see org.springframework.beans.factory.support.AbstractBeanDefinition * @see org.springframework.beans.factory.support.BeanDefinitionBuilder * @see org.springframework.beans.factory.support.BeanDefinitionRegistry @@ -99,33 +100,36 @@ class CacheParser extends AbstractSingleBeanDefinitionParser { ParsingUtils.setPropertyValue(element, cacheBuilder, "search-timeout"); ParsingUtils.setPropertyValue(element, cacheBuilder, "use-cluster-configuration"); - List txListeners = DomUtils.getChildElementsByTagName(element, "transaction-listener"); + List transactionListeners = + DomUtils.getChildElementsByTagName(element, "transaction-listener"); - if (!CollectionUtils.isEmpty(txListeners)) { + if (!CollectionUtils.isEmpty(transactionListeners)) { - ManagedList transactionListeners = new ManagedList<>(); + ManagedList managedTransactionListeners = new ManagedList<>(); - for (Element txListener : txListeners) { - transactionListeners.add(ParsingUtils.parseRefOrNestedBeanDeclaration( - txListener, parserContext, cacheBuilder)); + for (Element transactionListener : transactionListeners) { + managedTransactionListeners.add(ParsingUtils.parseRefOrNestedBeanDeclaration( + transactionListener, parserContext, cacheBuilder)); } - cacheBuilder.addPropertyValue("transactionListeners", transactionListeners); + cacheBuilder.addPropertyValue("transactionListeners", managedTransactionListeners); } - Element txWriter = DomUtils.getChildElementByTagName(element, "transaction-writer"); + Element transactionWriter = DomUtils.getChildElementByTagName(element, "transaction-writer"); - if (txWriter != null) { + if (transactionWriter != null) { cacheBuilder.addPropertyValue("transactionWriter", - ParsingUtils.parseRefOrNestedBeanDeclaration(txWriter, parserContext, cacheBuilder)); + ParsingUtils.parseRefOrNestedBeanDeclaration(transactionWriter, parserContext, cacheBuilder)); } Element gatewayConflictResolver = DomUtils.getChildElementByTagName(element, "gateway-conflict-resolver"); if (gatewayConflictResolver != null) { + ParsingUtils.throwExceptionWhenGemFireFeatureUnavailable(GemfireFeature.WAN, element.getLocalName(), "gateway-conflict-resolver", parserContext); + cacheBuilder.addPropertyValue("gatewayConflictResolver", ParsingUtils.parseRefOrSingleNestedBeanDeclaration( gatewayConflictResolver, parserContext, cacheBuilder)); } @@ -139,9 +143,10 @@ class CacheParser extends AbstractSingleBeanDefinitionParser { private void registerGemFireBeanFactoryPostProcessors(BeanDefinitionRegistry registry) { - BeanDefinitionReaderUtils.registerWithGeneratedName( - BeanDefinitionBuilder.genericBeanDefinition(CustomEditorBeanFactoryPostProcessor.class) - .getBeanDefinition(), registry); + AbstractBeanDefinition customEditorBeanFactoryPostProcessorDefinition = + BeanDefinitionBuilder.genericBeanDefinition(CustomEditorBeanFactoryPostProcessor.class).getBeanDefinition(); + + BeanDefinitionReaderUtils.registerWithGeneratedName(customEditorBeanFactoryPostProcessorDefinition, registry); } private void parsePdxDiskStore(Element element, ParserContext parserContext, BeanDefinitionBuilder builder) { diff --git a/src/main/java/org/springframework/data/gemfire/config/xml/ClientCacheParser.java b/src/main/java/org/springframework/data/gemfire/config/xml/ClientCacheParser.java index 6d822960..cc237857 100644 --- a/src/main/java/org/springframework/data/gemfire/config/xml/ClientCacheParser.java +++ b/src/main/java/org/springframework/data/gemfire/config/xml/ClientCacheParser.java @@ -13,25 +13,29 @@ * See the License for the specific language governing permissions and * limitations under the License. */ - package org.springframework.data.gemfire.config.xml; import org.w3c.dom.Element; import org.springframework.beans.factory.support.BeanDefinitionBuilder; +import org.springframework.beans.factory.xml.BeanDefinitionParser; import org.springframework.beans.factory.xml.ParserContext; import org.springframework.data.gemfire.client.ClientCacheFactoryBean; /** - * Bean definition parser for the <gfe:client-cache> SDG XML namespace (XSD) element. + * {@link BeanDefinitionParser} for the <gfe:client-cache> SDG XML Namespace (XSD) element. * * @author Costin Leau * @author David Turanski * @author Lyndon Adams * @author John Blum * @author Patrick Johnson + * @see org.w3c.dom.Element + * @see org.springframework.beans.factory.support.BeanDefinitionBuilder + * @see org.springframework.beans.factory.xml.BeanDefinitionParser + * @see org.springframework.beans.factory.xml.ParserContext * @see org.springframework.data.gemfire.client.ClientCacheFactoryBean - * @see CacheParser + * @see org.springframework.data.gemfire.config.xml.CacheParser */ class ClientCacheParser extends CacheParser { diff --git a/src/main/resources/org/springframework/data/gemfire/config/spring-gemfire-2.2.xsd b/src/main/resources/org/springframework/data/gemfire/config/spring-gemfire-2.2.xsd index a9fb1825..0cc3cdf8 100644 --- a/src/main/resources/org/springframework/data/gemfire/config/spring-gemfire-2.2.xsd +++ b/src/main/resources/org/springframework/data/gemfire/config/spring-gemfire-2.2.xsd @@ -89,6 +89,38 @@ use inner bean declarations. + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - -