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:
John Blum
2019-07-16 18:23:03 -07:00
parent 0fff3b373c
commit 30e53d0f44
7 changed files with 186 additions and 15 deletions

View File

@@ -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 {

View File

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

View File

@@ -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[

View File

@@ -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[