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 d523970c..225f9bd5 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 @@ -50,6 +50,7 @@ import org.springframework.core.type.AnnotationMetadata; import org.springframework.data.gemfire.CacheFactoryBean; import org.springframework.data.gemfire.config.support.CustomEditorBeanFactoryPostProcessor; import org.springframework.data.gemfire.config.support.DefinedIndexesApplicationListener; +import org.springframework.data.gemfire.config.support.DiskStoreDirectoryBeanPostProcessor; import org.springframework.data.gemfire.util.PropertiesBuilder; import org.springframework.util.Assert; import org.springframework.util.StringUtils; @@ -81,6 +82,7 @@ public abstract class AbstractCacheConfiguration implements BeanFactoryAware, Be private static final AtomicBoolean CUSTOM_EDITORS_REGISTERED = new AtomicBoolean(false); private static final AtomicBoolean DEFINED_INDEXES_APPLICATION_LISTENER_REGISTERED = new AtomicBoolean(false); + private static final AtomicBoolean DISK_STORE_DIRECTORY_BEAN_POST_PROCESSOR_REGISTERED = new AtomicBoolean(false); protected static final boolean DEFAULT_CLOSE = true; protected static final boolean DEFAULT_COPY_ON_READ = false; @@ -256,6 +258,7 @@ public abstract class AbstractCacheConfiguration implements BeanFactoryAware, Be protected void configureInfrastructure(AnnotationMetadata importMetadata) { registerCustomEditorBeanFactoryPostProcessor(); registerDefinedIndexesApplicationListener(); + registerDiskStoreDirectoryBeanPostProcessor(); } /** @@ -328,22 +331,24 @@ public abstract class AbstractCacheConfiguration implements BeanFactoryAware, Be /* (non-Javadoc) */ protected void registerCustomEditorBeanFactoryPostProcessor() { if (CUSTOM_EDITORS_REGISTERED.compareAndSet(false, true)) { - BeanDefinitionBuilder customEditorBeanFactoryPostProcessor = - BeanDefinitionBuilder.rootBeanDefinition(CustomEditorBeanFactoryPostProcessor.class); - - customEditorBeanFactoryPostProcessor.setRole(BeanDefinition.ROLE_INFRASTRUCTURE); - register(customEditorBeanFactoryPostProcessor.getBeanDefinition()); + register(BeanDefinitionBuilder.rootBeanDefinition(CustomEditorBeanFactoryPostProcessor.class) + .setRole(BeanDefinition.ROLE_INFRASTRUCTURE).getBeanDefinition()); } } /* (non-Javadoc) */ protected void registerDefinedIndexesApplicationListener() { if (DEFINED_INDEXES_APPLICATION_LISTENER_REGISTERED.compareAndSet(false, true)) { - BeanDefinitionBuilder definedIndexesApplicationListener = - BeanDefinitionBuilder.rootBeanDefinition(DefinedIndexesApplicationListener.class); + register(BeanDefinitionBuilder.rootBeanDefinition(DefinedIndexesApplicationListener.class) + .setRole(BeanDefinition.ROLE_INFRASTRUCTURE).getBeanDefinition()); + } + } - definedIndexesApplicationListener.setRole(BeanDefinition.ROLE_INFRASTRUCTURE); - register(definedIndexesApplicationListener.getBeanDefinition()); + /* (non-Javadoc) */ + protected void registerDiskStoreDirectoryBeanPostProcessor() { + if (DISK_STORE_DIRECTORY_BEAN_POST_PROCESSOR_REGISTERED.compareAndSet(false, true)) { + register(BeanDefinitionBuilder.rootBeanDefinition(DiskStoreDirectoryBeanPostProcessor.class) + .setRole(BeanDefinition.ROLE_INFRASTRUCTURE).getBeanDefinition()); } } diff --git a/src/main/java/org/springframework/data/gemfire/config/support/DiskStoreBeanPostProcessor.java b/src/main/java/org/springframework/data/gemfire/config/support/DiskStoreDirectoryBeanPostProcessor.java similarity index 94% rename from src/main/java/org/springframework/data/gemfire/config/support/DiskStoreBeanPostProcessor.java rename to src/main/java/org/springframework/data/gemfire/config/support/DiskStoreDirectoryBeanPostProcessor.java index f46c1b1e..94aa6dfa 100644 --- a/src/main/java/org/springframework/data/gemfire/config/support/DiskStoreBeanPostProcessor.java +++ b/src/main/java/org/springframework/data/gemfire/config/support/DiskStoreDirectoryBeanPostProcessor.java @@ -28,7 +28,7 @@ import org.springframework.util.Assert; import org.springframework.util.ObjectUtils; /** - * The {@link DiskStoreBeanPostProcessor} processes any GemFire {@link com.gemstone.gemfire.cache.DiskStore}, + * The {@link DiskStoreDirectoryBeanPostProcessor} processes any GemFire {@link com.gemstone.gemfire.cache.DiskStore}, * {@link DiskDir} Spring beans defined in the application context to ensure that the directory actually exists * before creating the {@link com.gemstone.gemfire.cache.DiskStore}. * @@ -38,7 +38,7 @@ import org.springframework.util.ObjectUtils; * @since 1.5.0 */ @SuppressWarnings("unused") -public class DiskStoreBeanPostProcessor implements BeanPostProcessor { +public class DiskStoreDirectoryBeanPostProcessor implements BeanPostProcessor { protected final Log log = LogFactory.getLog(getClass()); diff --git a/src/main/java/org/springframework/data/gemfire/config/xml/DiskStoreParser.java b/src/main/java/org/springframework/data/gemfire/config/xml/DiskStoreParser.java index ec8abd1d..73c5bf31 100644 --- a/src/main/java/org/springframework/data/gemfire/config/xml/DiskStoreParser.java +++ b/src/main/java/org/springframework/data/gemfire/config/xml/DiskStoreParser.java @@ -28,7 +28,7 @@ import org.springframework.beans.factory.xml.AbstractSingleBeanDefinitionParser; import org.springframework.beans.factory.xml.ParserContext; import org.springframework.data.gemfire.DiskStoreFactoryBean; import org.springframework.data.gemfire.DiskStoreFactoryBean.DiskDir; -import org.springframework.data.gemfire.config.support.DiskStoreBeanPostProcessor; +import org.springframework.data.gemfire.config.support.DiskStoreDirectoryBeanPostProcessor; import org.springframework.util.CollectionUtils; import org.springframework.util.xml.DomUtils; import org.w3c.dom.Element; @@ -46,10 +46,10 @@ class DiskStoreParser extends AbstractSingleBeanDefinitionParser { private static final AtomicBoolean REGISTERED = new AtomicBoolean(false); /* (non-Javadoc) */ - private static void registerDiskStoreBeanPostProcessor(ParserContext parserContext) { + private static void registerDiskStoreDirectoryBeanPostProcessor(ParserContext parserContext) { if (REGISTERED.compareAndSet(false, true)) { AbstractBeanDefinition diskStoreBeanPostProcessor = BeanDefinitionBuilder - .rootBeanDefinition(DiskStoreBeanPostProcessor.class) + .rootBeanDefinition(DiskStoreDirectoryBeanPostProcessor.class) .setRole(BeanDefinition.ROLE_INFRASTRUCTURE) .getBeanDefinition(); @@ -73,7 +73,7 @@ class DiskStoreParser extends AbstractSingleBeanDefinitionParser { protected void doParse(Element element, ParserContext parserContext, BeanDefinitionBuilder builder) { super.doParse(element, parserContext, builder); - registerDiskStoreBeanPostProcessor(parserContext); + registerDiskStoreDirectoryBeanPostProcessor(parserContext); builder.setLazyInit(false); diff --git a/src/test/java/org/springframework/data/gemfire/config/support/DiskStoreBeanPostProcessorIntegrationTests.java b/src/test/java/org/springframework/data/gemfire/config/support/DiskStoreDirectoryBeanPostProcessorIntegrationTests.java similarity index 90% rename from src/test/java/org/springframework/data/gemfire/config/support/DiskStoreBeanPostProcessorIntegrationTests.java rename to src/test/java/org/springframework/data/gemfire/config/support/DiskStoreDirectoryBeanPostProcessorIntegrationTests.java index 79b72c12..d811ad4e 100644 --- a/src/test/java/org/springframework/data/gemfire/config/support/DiskStoreBeanPostProcessorIntegrationTests.java +++ b/src/test/java/org/springframework/data/gemfire/config/support/DiskStoreDirectoryBeanPostProcessorIntegrationTests.java @@ -36,16 +36,16 @@ import org.springframework.test.context.junit4.SpringJUnit4ClassRunner; import org.springframework.util.FileSystemUtils; /** - * Integration tests for {@link DiskStoreBeanPostProcessor}. + * Integration tests for {@link DiskStoreDirectoryBeanPostProcessor}. * * @author John Blum * @see org.junit.Test - * @see org.springframework.data.gemfire.config.support.DiskStoreBeanPostProcessor + * @see org.springframework.data.gemfire.config.support.DiskStoreDirectoryBeanPostProcessor * @since 1.5.0 */ @RunWith(SpringJUnit4ClassRunner.class) @ContextConfiguration -public class DiskStoreBeanPostProcessorIntegrationTests { +public class DiskStoreDirectoryBeanPostProcessorIntegrationTests { @BeforeClass public static void testSuiteSetup() { @@ -68,18 +68,12 @@ public class DiskStoreBeanPostProcessorIntegrationTests { @PeerCacheApplication(logLevel = "warning") @SuppressWarnings("unused") - static class DiskStoreBeanPostProcessorConfiguration { + static class DiskStoreDirectoryBeanPostProcessorConfiguration { DiskStoreFactoryBean.DiskDir newDiskDir(String location) { return new DiskStoreFactoryBean.DiskDir(location); } - @Bean - // TODO remove when the Annotation config model includes support - DiskStoreBeanPostProcessor diskStoreBeanPostProcessor() { - return new DiskStoreBeanPostProcessor(); - } - @Bean DiskStoreFactoryBean diskStoreOne(GemFireCache gemfireCache) { DiskStoreFactoryBean diskStoreOne = new DiskStoreFactoryBean();