DATAGEODE-197 - Add integration tests testing the addition of AsyncEventQueues and GatewaySenders declared as both objects and identifiers to an existing Region defined in cache.xml.
This commit is contained in:
@@ -15,6 +15,7 @@
|
||||
*/
|
||||
package org.springframework.data.gemfire.config.xml;
|
||||
|
||||
import org.apache.geode.cache.Region;
|
||||
import org.apache.geode.cache.asyncqueue.AsyncEventQueue;
|
||||
import org.apache.geode.cache.wan.GatewaySender;
|
||||
|
||||
@@ -24,10 +25,16 @@ import org.springframework.beans.factory.xml.ParserContext;
|
||||
import org.w3c.dom.Element;
|
||||
|
||||
/**
|
||||
* The AbstractPeerRegionParser class...
|
||||
* Abstract Spring XML Parser for peer {@link Region} bean definitions.
|
||||
*
|
||||
* @author John Blum
|
||||
* @since 1.0.0
|
||||
* @see org.apache.geode.cache.Region
|
||||
* @see org.apache.geode.cache.asyncqueue.AsyncEventQueue
|
||||
* @see org.apache.geode.cache.wan.GatewaySender
|
||||
* @see org.springframework.beans.factory.support.BeanDefinitionBuilder
|
||||
* @see org.springframework.beans.factory.xml.ParserContext
|
||||
* @see org.w3c.dom.Element
|
||||
* @since 2.2.0
|
||||
*/
|
||||
public abstract class AbstractPeerRegionParser extends AbstractRegionParser {
|
||||
|
||||
|
||||
@@ -13,15 +13,16 @@
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
package org.springframework.data.gemfire.config.xml;
|
||||
|
||||
import org.apache.geode.cache.asyncqueue.AsyncEventQueue;
|
||||
import org.apache.geode.cache.wan.GatewaySender;
|
||||
|
||||
import org.springframework.beans.factory.support.BeanDefinitionBuilder;
|
||||
import org.springframework.beans.factory.xml.ParserContext;
|
||||
import org.springframework.data.gemfire.LookupRegionFactoryBean;
|
||||
import org.springframework.util.xml.DomUtils;
|
||||
|
||||
import org.w3c.dom.Element;
|
||||
|
||||
/**
|
||||
@@ -30,8 +31,13 @@ import org.w3c.dom.Element;
|
||||
* @author Costin Leau
|
||||
* @author David Turanski
|
||||
* @author John Blum
|
||||
* @see org.apache.geode.cache.asyncqueue.AsyncEventQueue
|
||||
* @see org.apache.geode.cache.wan.GatewaySender
|
||||
* @see org.springframework.beans.factory.support.BeanDefinitionBuilder
|
||||
* @see org.springframework.beans.factory.xml.ParserContext
|
||||
* @see org.springframework.data.gemfire.LookupRegionFactoryBean
|
||||
* @see AbstractRegionParser
|
||||
* @see org.springframework.data.gemfire.config.xml.AbstractRegionParser
|
||||
* @see org.w3c.dom.Element
|
||||
*/
|
||||
class LookupRegionParser extends AbstractRegionParser {
|
||||
|
||||
@@ -52,14 +58,17 @@ class LookupRegionParser extends AbstractRegionParser {
|
||||
|
||||
super.doParse(element, builder);
|
||||
|
||||
String resolvedCacheRef = ParsingUtils.resolveCacheReference(
|
||||
element.getAttribute(ParsingUtils.CACHE_REF_ATTRIBUTE_NAME));
|
||||
String resolvedCacheRef =
|
||||
ParsingUtils.resolveCacheReference(element.getAttribute(ParsingUtils.CACHE_REF_ATTRIBUTE_NAME));
|
||||
|
||||
builder.addPropertyReference("cache", resolvedCacheRef);
|
||||
|
||||
ParsingUtils.setPropertyValue(element, builder, "async-event-queue-ids");
|
||||
ParsingUtils.setPropertyValue(element, builder, "cloning-enabled");
|
||||
ParsingUtils.setPropertyValue(element, builder, "eviction-maximum");
|
||||
ParsingUtils.setPropertyValue(element, builder, "gateway-sender-ids");
|
||||
ParsingUtils.setPropertyValue(element, builder, "name");
|
||||
|
||||
ParsingUtils.parseExpiration(element, parserContext, builder);
|
||||
|
||||
parseCollectionOfCustomSubElements(element, parserContext, builder, AsyncEventQueue.class.getName(),
|
||||
@@ -71,23 +80,22 @@ class LookupRegionParser extends AbstractRegionParser {
|
||||
Element cacheListenerElement = DomUtils.getChildElementByTagName(element, "cache-listener");
|
||||
|
||||
if (cacheListenerElement != null) {
|
||||
builder.addPropertyValue("cacheListeners", ParsingUtils.parseRefOrNestedBeanDeclaration(
|
||||
cacheListenerElement, parserContext,
|
||||
builder));
|
||||
builder.addPropertyValue("cacheListeners",
|
||||
ParsingUtils.parseRefOrNestedBeanDeclaration(cacheListenerElement, parserContext, builder));
|
||||
}
|
||||
|
||||
Element cacheLoaderElement = DomUtils.getChildElementByTagName(element, "cache-loader");
|
||||
|
||||
if (cacheLoaderElement != null) {
|
||||
builder.addPropertyValue("cacheLoader", ParsingUtils.parseRefOrSingleNestedBeanDeclaration(
|
||||
cacheLoaderElement, parserContext, builder));
|
||||
builder.addPropertyValue("cacheLoader",
|
||||
ParsingUtils.parseRefOrSingleNestedBeanDeclaration(cacheLoaderElement, parserContext, builder));
|
||||
}
|
||||
|
||||
Element cacheWriterElement = DomUtils.getChildElementByTagName(element, "cache-writer");
|
||||
|
||||
if (cacheWriterElement != null) {
|
||||
builder.addPropertyValue("cacheWriter", ParsingUtils.parseRefOrSingleNestedBeanDeclaration(
|
||||
cacheWriterElement, parserContext, builder));
|
||||
builder.addPropertyValue("cacheWriter",
|
||||
ParsingUtils.parseRefOrSingleNestedBeanDeclaration(cacheWriterElement, parserContext, builder));
|
||||
}
|
||||
|
||||
if (!subRegion) {
|
||||
|
||||
@@ -1127,7 +1127,7 @@ The name of the region definition.]]>
|
||||
<xsd:complexType name="baseRegionType" abstract="true">
|
||||
<xsd:complexContent>
|
||||
<xsd:extension base="baseReadOnlyRegionType">
|
||||
<xsd:sequence minOccurs="0" maxOccurs="1">
|
||||
<xsd:sequence>
|
||||
<xsd:element name="cache-loader" type="beanDeclarationType" minOccurs="0" maxOccurs="1">
|
||||
<xsd:annotation>
|
||||
<xsd:documentation source="org.apache.geode.cache.CacheLoader"><![CDATA[
|
||||
|
||||
@@ -1127,7 +1127,7 @@ The name of the region definition.]]>
|
||||
<xsd:complexType name="baseRegionType" abstract="true">
|
||||
<xsd:complexContent>
|
||||
<xsd:extension base="baseReadOnlyRegionType">
|
||||
<xsd:sequence minOccurs="0" maxOccurs="1">
|
||||
<xsd:sequence>
|
||||
<xsd:element name="cache-loader" type="beanDeclarationType" minOccurs="0" maxOccurs="1">
|
||||
<xsd:annotation>
|
||||
<xsd:documentation source="org.apache.geode.cache.CacheLoader"><![CDATA[
|
||||
|
||||
Reference in New Issue
Block a user