SGF-448 - GemfireRepositoryConfigurationExtension needs to override the RepositoryConfigurationExtensionSupport postProcess(:BeanDefinitionBuilder, :AnnotationRepositoryConfigurationSource) method.

This commit is contained in:
John Blum
2015-12-03 15:59:49 -08:00
parent 042af996e6
commit cf64807b09
3 changed files with 171 additions and 13 deletions

View File

@@ -0,0 +1,7 @@
/**
* This package provides classes and components for configuring GemFire using Spring Data GemFire's XML namespace
* support. See more details here...
*
* <a href="http://docs.spring.io/spring-data-gemfire/docs/current/reference/html/#_spring_data_gemfire_core_schema_gfe">Spring Data GemFire Core Schema (gfe)</a>
*/
package org.springframework.data.gemfire.config;

View File

@@ -17,11 +17,11 @@ package org.springframework.data.gemfire.repository.config;
import org.springframework.beans.factory.support.BeanDefinitionBuilder;
import org.springframework.data.gemfire.repository.support.GemfireRepositoryFactoryBean;
import org.springframework.data.repository.config.AnnotationRepositoryConfigurationSource;
import org.springframework.data.repository.config.RepositoryConfigurationExtension;
import org.springframework.data.repository.config.RepositoryConfigurationExtensionSupport;
import org.springframework.data.repository.config.XmlRepositoryConfigurationSource;
import org.springframework.util.StringUtils;
import org.w3c.dom.Element;
/**
* {@link RepositoryConfigurationExtension} implementation to add Gemfire
@@ -29,10 +29,13 @@ import org.w3c.dom.Element;
* configuration.
*
* @author Oliver Gierke
* @author John Blum
*/
public class GemfireRepositoryConfigurationExtension extends RepositoryConfigurationExtensionSupport {
private static final String MAPPING_CONTEXT_REF = "mapping-context-ref";
private static final String ANNOTATION_MAPPING_CONTEXT_REF = "mappingContextRef";
private static final String MAPPING_CONTEXT_PROPERTY_NAME = "gemfireMappingContext";
private static final String XML_MAPPING_CONTEXT_REF = "mapping-context-ref";
/*
* (non-Javadoc)
@@ -57,24 +60,33 @@ public class GemfireRepositoryConfigurationExtension extends RepositoryConfigura
return "gemfire";
}
/**
*
* @see org.springframework.data.repository.config.RepositoryConfigurationExtensionSupport
* #postProcess(BeanDefinitionBuilder, AnnotationRepositoryConfigurationSource)
*/
@Override
public void postProcess(BeanDefinitionBuilder builder, AnnotationRepositoryConfigurationSource config) {
String mappingContextRef = config.getAttribute(ANNOTATION_MAPPING_CONTEXT_REF);
if (StringUtils.hasText(mappingContextRef)) {
builder.addPropertyReference(MAPPING_CONTEXT_PROPERTY_NAME, mappingContextRef);
}
}
/*
* (non-Javadoc)
*
* @see org.springframework.data.repository.config.
* RepositoryConfigurationExtensionSupport
* #postProcess(org.springframework.beans
* .factory.support.BeanDefinitionBuilder,
* org.springframework.data.repository
* .config.XmlRepositoryConfigurationSource)
*
* @see org.springframework.data.repository.config.RepositoryConfigurationExtensionSupport
* #postProcess(BeanDefinitionBuilder, XmlRepositoryConfigurationSource)
*/
@Override
public void postProcess(BeanDefinitionBuilder builder, XmlRepositoryConfigurationSource config) {
Element element = config.getElement();
String mappingContextRef = element.getAttribute(MAPPING_CONTEXT_REF);
String mappingContextRef = config.getElement().getAttribute(XML_MAPPING_CONTEXT_REF);
if (StringUtils.hasText(mappingContextRef)) {
builder.addPropertyReference("gemfireMappingContext", mappingContextRef);
builder.addPropertyReference(MAPPING_CONTEXT_PROPERTY_NAME, mappingContextRef);
}
}
}