diff --git a/src/main/java/org/springframework/data/gemfire/config/GemfireListenerContainerParser.java b/src/main/java/org/springframework/data/gemfire/config/GemfireListenerContainerParser.java
index 42b0435e..fab3a4fe 100644
--- a/src/main/java/org/springframework/data/gemfire/config/GemfireListenerContainerParser.java
+++ b/src/main/java/org/springframework/data/gemfire/config/GemfireListenerContainerParser.java
@@ -18,32 +18,24 @@ package org.springframework.data.gemfire.config;
import java.util.List;
-import org.springframework.beans.factory.BeanDefinitionStoreException;
import org.springframework.beans.factory.config.BeanDefinition;
-import org.springframework.beans.factory.config.BeanDefinitionHolder;
-import org.springframework.beans.factory.support.AbstractBeanDefinition;
import org.springframework.beans.factory.support.BeanDefinitionBuilder;
-import org.springframework.beans.factory.support.BeanDefinitionReaderUtils;
import org.springframework.beans.factory.support.ManagedSet;
-import org.springframework.beans.factory.xml.AbstractSimpleBeanDefinitionParser;
+import org.springframework.beans.factory.xml.AbstractSingleBeanDefinitionParser;
import org.springframework.beans.factory.xml.ParserContext;
import org.springframework.data.gemfire.listener.ContinuousQueryDefinition;
import org.springframework.data.gemfire.listener.ContinuousQueryListenerContainer;
import org.springframework.data.gemfire.listener.adapter.ContinuousQueryListenerAdapter;
-import org.springframework.util.Assert;
import org.springframework.util.StringUtils;
import org.springframework.util.xml.DomUtils;
-import org.w3c.dom.Attr;
import org.w3c.dom.Element;
-import org.w3c.dom.NamedNodeMap;
/**
* Parser for SGF <cq-listener-container> element.
*
* @author Costin Leau
*/
-class GemfireListenerContainerParser extends AbstractSimpleBeanDefinitionParser {
-
+class GemfireListenerContainerParser extends AbstractSingleBeanDefinitionParser {
@Override
protected Class getBeanClass(Element element) {
return ContinuousQueryListenerContainer.class;
@@ -51,31 +43,11 @@ class GemfireListenerContainerParser extends AbstractSimpleBeanDefinitionParser
@Override
protected void doParse(Element element, ParserContext parserContext, BeanDefinitionBuilder builder) {
- // parse attributes (but replace the value assignment with references)
- NamedNodeMap attributes = element.getAttributes();
-
- for (int x = 0; x < attributes.getLength(); x++) {
- Attr attribute = (Attr) attributes.item(x);
- if (isEligibleAttribute(attribute, parserContext)) {
- String propertyName = extractPropertyName(attribute.getLocalName());
- Assert.state(StringUtils.hasText(propertyName),
- "Illegal property name returned from 'extractPropertyName(String)': cannot be null or empty.");
- builder.addPropertyReference(propertyName, attribute.getValue());
- }
- }
-
ParsingUtils.setPropertyValue(element, builder, "phase");
ParsingUtils.setPropertyValue(element, builder, "pool-name");
-
- // Register the Id if one has been provided.
- String id = element.getAttribute("id");
- if( StringUtils.hasText(id)) {
- //BeanDefinitionHolder holder = new BeanDefinitionHolder(builder.getBeanDefinition(), id, null);
- //BeanDefinitionReaderUtils.registerBeanDefinition(holder, parserContext.getRegistry());
- }
-
- postProcess(builder, element);
+ ParsingUtils.setPropertyReference(element, builder, "cache","cache");
+ ParsingUtils.setPropertyReference(element, builder, "task-executor","task-executor");
// parse nested listeners
List listDefs = DomUtils.getChildElementsByTagName(element, "listener");
@@ -83,26 +55,21 @@ class GemfireListenerContainerParser extends AbstractSimpleBeanDefinitionParser
if (!listDefs.isEmpty()) {
ManagedSet listeners = new ManagedSet(listDefs.size());
for (Element listElement : listDefs) {
- listeners.add(parseListener(listElement, parserContext, builder));
+ listeners.add(parseListener(listElement));
}
builder.addPropertyValue("queryListeners", listeners);
}
}
- @Override
- protected boolean isEligibleAttribute(String attributeName) {
- return (!"phase".equals(attributeName) | !"id".equals(attributeName));
- }
-
/**
* Parses a listener definition. Returns the listener bean reference definition (of a {@link ContinuousQueryDefinition}).
*
* @param element
* @return
*/
- private BeanDefinition parseListener(Element element, ParserContext parserContext, BeanDefinitionBuilder definition) {
-
+ private BeanDefinition parseListener(Element element) {
+
BeanDefinitionBuilder builder = BeanDefinitionBuilder.genericBeanDefinition(ContinuousQueryListenerAdapter.class);
builder.addConstructorArgReference(element.getAttribute("ref"));
@@ -117,7 +84,7 @@ class GemfireListenerContainerParser extends AbstractSimpleBeanDefinitionParser
if (StringUtils.hasText(attr)) {
defBuilder.addConstructorArgValue(attr);
}
-
+
defBuilder.addConstructorArgValue(element.getAttribute("query"));
defBuilder.addConstructorArgValue(builder.getBeanDefinition());
@@ -128,9 +95,4 @@ class GemfireListenerContainerParser extends AbstractSimpleBeanDefinitionParser
return defBuilder.getBeanDefinition();
}
-
- @Override
- protected boolean shouldGenerateId() {
- return false;
- }
}
\ No newline at end of file
diff --git a/src/test/java/org/springframework/data/gemfire/support/JSONRegionAdviceTest.java b/src/test/java/org/springframework/data/gemfire/support/JSONRegionAdviceTest.java
index d6bae478..e647bbad 100644
--- a/src/test/java/org/springframework/data/gemfire/support/JSONRegionAdviceTest.java
+++ b/src/test/java/org/springframework/data/gemfire/support/JSONRegionAdviceTest.java
@@ -24,6 +24,7 @@ import javax.annotation.Resource;
import org.codehaus.jackson.JsonGenerationException;
import org.codehaus.jackson.map.JsonMappingException;
+import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
@@ -49,6 +50,10 @@ public class JSONRegionAdviceTest {
@Autowired
GemfireOperations template;
+ @Before
+ public void setUp() {
+ region.clear();
+ }
@Test
public void testPutString() {
String json = "{\"hello\":\"world\"}";
diff --git a/src/test/resources/org/springframework/data/gemfire/listener/container.xml b/src/test/resources/org/springframework/data/gemfire/listener/container.xml
index a777ac79..dfd27d2c 100644
--- a/src/test/resources/org/springframework/data/gemfire/listener/container.xml
+++ b/src/test/resources/org/springframework/data/gemfire/listener/container.xml
@@ -25,7 +25,7 @@
-
+
@@ -33,7 +33,7 @@
-
+