SGF-544 - Register the PdxDiskStoreAwareBeanFactoryPostProcessor for the new Annotation config model.

(cherry picked from commit 70fa3a51f763c41879613e0648cba1c6ce0a54e3)
Signed-off-by: John Blum <jblum@pivotal.io>
This commit is contained in:
John Blum
2016-10-04 21:21:39 -07:00
parent 6d95846b55
commit b4e0fd59d1

View File

@@ -51,6 +51,7 @@ import org.springframework.data.gemfire.CacheFactoryBean;
import org.springframework.data.gemfire.config.support.CustomEditorBeanFactoryPostProcessor; import org.springframework.data.gemfire.config.support.CustomEditorBeanFactoryPostProcessor;
import org.springframework.data.gemfire.config.support.DefinedIndexesApplicationListener; import org.springframework.data.gemfire.config.support.DefinedIndexesApplicationListener;
import org.springframework.data.gemfire.config.support.DiskStoreDirectoryBeanPostProcessor; import org.springframework.data.gemfire.config.support.DiskStoreDirectoryBeanPostProcessor;
import org.springframework.data.gemfire.config.support.PdxDiskStoreAwareBeanFactoryPostProcessor;
import org.springframework.data.gemfire.util.PropertiesBuilder; import org.springframework.data.gemfire.util.PropertiesBuilder;
import org.springframework.util.Assert; import org.springframework.util.Assert;
import org.springframework.util.StringUtils; import org.springframework.util.StringUtils;
@@ -83,6 +84,8 @@ public abstract class AbstractCacheConfiguration implements BeanFactoryAware, Be
private static final AtomicBoolean CUSTOM_EDITORS_REGISTERED = new AtomicBoolean(false); 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 DEFINED_INDEXES_APPLICATION_LISTENER_REGISTERED = new AtomicBoolean(false);
private static final AtomicBoolean DISK_STORE_DIRECTORY_BEAN_POST_PROCESSOR_REGISTERED = new AtomicBoolean(false); private static final AtomicBoolean DISK_STORE_DIRECTORY_BEAN_POST_PROCESSOR_REGISTERED = new AtomicBoolean(false);
private static final AtomicBoolean PDX_DISK_STORE_AWARE_BEAN_FACTORY_POST_PROCESSOR_REGISTERED =
new AtomicBoolean(false);
protected static final boolean DEFAULT_CLOSE = true; protected static final boolean DEFAULT_CLOSE = true;
protected static final boolean DEFAULT_COPY_ON_READ = false; protected static final boolean DEFAULT_COPY_ON_READ = false;
@@ -256,9 +259,10 @@ public abstract class AbstractCacheConfiguration implements BeanFactoryAware, Be
* @see org.springframework.core.type.AnnotationMetadata * @see org.springframework.core.type.AnnotationMetadata
*/ */
protected void configureInfrastructure(AnnotationMetadata importMetadata) { protected void configureInfrastructure(AnnotationMetadata importMetadata) {
registerCustomEditorBeanFactoryPostProcessor(); registerCustomEditorBeanFactoryPostProcessor(importMetadata);
registerDefinedIndexesApplicationListener(); registerDefinedIndexesApplicationListener(importMetadata);
registerDiskStoreDirectoryBeanPostProcessor(); registerDiskStoreDirectoryBeanPostProcessor(importMetadata);
registerPdxDiskStoreAwareBeanFactoryPostProcessor(importMetadata);
} }
/** /**
@@ -329,7 +333,7 @@ public abstract class AbstractCacheConfiguration implements BeanFactoryAware, Be
} }
/* (non-Javadoc) */ /* (non-Javadoc) */
protected void registerCustomEditorBeanFactoryPostProcessor() { protected void registerCustomEditorBeanFactoryPostProcessor(AnnotationMetadata importMetadata) {
if (CUSTOM_EDITORS_REGISTERED.compareAndSet(false, true)) { if (CUSTOM_EDITORS_REGISTERED.compareAndSet(false, true)) {
register(BeanDefinitionBuilder.rootBeanDefinition(CustomEditorBeanFactoryPostProcessor.class) register(BeanDefinitionBuilder.rootBeanDefinition(CustomEditorBeanFactoryPostProcessor.class)
.setRole(BeanDefinition.ROLE_INFRASTRUCTURE).getBeanDefinition()); .setRole(BeanDefinition.ROLE_INFRASTRUCTURE).getBeanDefinition());
@@ -337,7 +341,7 @@ public abstract class AbstractCacheConfiguration implements BeanFactoryAware, Be
} }
/* (non-Javadoc) */ /* (non-Javadoc) */
protected void registerDefinedIndexesApplicationListener() { protected void registerDefinedIndexesApplicationListener(AnnotationMetadata importMetadata) {
if (DEFINED_INDEXES_APPLICATION_LISTENER_REGISTERED.compareAndSet(false, true)) { if (DEFINED_INDEXES_APPLICATION_LISTENER_REGISTERED.compareAndSet(false, true)) {
register(BeanDefinitionBuilder.rootBeanDefinition(DefinedIndexesApplicationListener.class) register(BeanDefinitionBuilder.rootBeanDefinition(DefinedIndexesApplicationListener.class)
.setRole(BeanDefinition.ROLE_INFRASTRUCTURE).getBeanDefinition()); .setRole(BeanDefinition.ROLE_INFRASTRUCTURE).getBeanDefinition());
@@ -345,13 +349,21 @@ public abstract class AbstractCacheConfiguration implements BeanFactoryAware, Be
} }
/* (non-Javadoc) */ /* (non-Javadoc) */
protected void registerDiskStoreDirectoryBeanPostProcessor() { protected void registerDiskStoreDirectoryBeanPostProcessor(AnnotationMetadata importMetadata) {
if (DISK_STORE_DIRECTORY_BEAN_POST_PROCESSOR_REGISTERED.compareAndSet(false, true)) { if (DISK_STORE_DIRECTORY_BEAN_POST_PROCESSOR_REGISTERED.compareAndSet(false, true)) {
register(BeanDefinitionBuilder.rootBeanDefinition(DiskStoreDirectoryBeanPostProcessor.class) register(BeanDefinitionBuilder.rootBeanDefinition(DiskStoreDirectoryBeanPostProcessor.class)
.setRole(BeanDefinition.ROLE_INFRASTRUCTURE).getBeanDefinition()); .setRole(BeanDefinition.ROLE_INFRASTRUCTURE).getBeanDefinition());
} }
} }
/* (non-Javadoc) */
protected void registerPdxDiskStoreAwareBeanFactoryPostProcessor(AnnotationMetadata importMetadata) {
if (PDX_DISK_STORE_AWARE_BEAN_FACTORY_POST_PROCESSOR_REGISTERED.compareAndSet(false, true)) {
register(BeanDefinitionBuilder.rootBeanDefinition(PdxDiskStoreAwareBeanFactoryPostProcessor.class)
.setRole(BeanDefinition.ROLE_INFRASTRUCTURE).getBeanDefinition());
}
}
/** /**
* Registers the given {@link BeanDefinition} with the {@link BeanDefinitionRegistry} using a generated bean name. * Registers the given {@link BeanDefinition} with the {@link BeanDefinitionRegistry} using a generated bean name.
* *