SGF-543 - Register the DiskStoreDirectoryBeanPostProcessor for the new Annotation config model.

This commit is contained in:
John Blum
2016-10-04 21:09:40 -07:00
parent b4da356cb6
commit 402e916427
4 changed files with 24 additions and 25 deletions

View File

@@ -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());
}
}

View File

@@ -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());

View File

@@ -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);