diff --git a/docs/src/reference/docbook/gemfire.xml b/docs/src/reference/docbook/gemfire.xml
index f451e5719f..7beebcd092 100644
--- a/docs/src/reference/docbook/gemfire.xml
+++ b/docs/src/reference/docbook/gemfire.xml
@@ -16,9 +16,9 @@
Spring integration provides support for GemFire by providing inbound adapters for entry and continuous query events,
- and an outbound adapter to write entries to the cache. Spring integration leverages the
- Spring Gemfire project, providing a thin
- wrapper over its components.
+ an outbound adapter to write entries to the cache, and MessageStore and MessageGroupStore implementations.
+ Spring integration leverages the
+ Spring Gemfire project, providing a thin wrapper over its components.
To configure the 'int-gfe' namespace, include the following elements within the headers of your XML configuration file:
@@ -45,7 +45,7 @@ xsi:schemaLocation="http://www.springframework.org/schema/integration/gemfire
In the above configuration, we are creating a GemFire Cache and Region using Spring GemFire's 'gfe' namespace.
The inbound-channel-adapter requires a reference to the GemFire region for which the adapter will be listening for events. Optional attributes include cache-events
- which can contain a comma separated list of event types for which a message will be produced on the input channel. By default all event types are enabled.
+ which can contain a comma separated list of event types for which a message will be produced on the input channel. By default CREATED and UPDATED are enabled.
Note that this adapter conforms to Spring integration conventions.
If no channel attribute is provided, the channel will be created from the id attribute. This adapter also supports an error-channel.
If expression is not provided the message payload will be a GemFire EntryEvent
@@ -88,9 +88,10 @@ xsi:schemaLocation="http://www.springframework.org/schema/integration/gemfire
In the above configuration, we are creating a GemFire client cache
(recall a cache server is required for this implementation and its address is configured as a sub-element of the pool), a client region and a QueryListenerContainer
using Spring GemFire. The continuous query inbound channel adapter requires a query-listener-container attribute which contains a reference to the QueryListenerContainer. Optionally,
- it accepts an expression attribute which uses SpEL to transform the CqEvent or extract an individual property as needed. The cq-inbound-channel-adapter also supports a
- query-events attribute, containing a comma separated list of event types for which a message will be produced on the input channel (all events are enabled by default), query-name which provides an optional query name, and
- expression which works as described in the above section.
+ it accepts an expression attribute which uses SpEL to transform the CqEvent or extract an individual property as needed. The cq-inbound-channel-adapter provides a
+ query-events attribute, containing a comma separated list of event types for which a message will be produced on the input channel. Available event types are CREATED, UPDATED, DESTROYED,
+ REGION_DESTROYED, REGION_INVALIDATED. CREATED and UPDATED are enabled by default. Additional optional attributes include, query-name which provides an optional query name, and
+ expression which works as described in the above section, and durable - a boolean value indicating if the query is durable (false by default).
Note that this adapter conforms to Spring integration conventions.
If no channel attribute is provided, the channel will be created from the id attribute. This adapter also supports an error-channel
diff --git a/spring-integration-gemfire/.springBeans b/spring-integration-gemfire/.springBeans
index 0f1d19bcc5..90b1f9cb62 100644
--- a/spring-integration-gemfire/.springBeans
+++ b/spring-integration-gemfire/.springBeans
@@ -9,7 +9,6 @@
src/test/java/org/springframework/integration/gemfire/inbound/GemfireInboundChannelAdapterTests-context.xml
src/test/java/org/springframework/integration/gemfire/outbound/GemfireOutboundChannelAdapterTests-context.xml
- src/test/java/org/springframework/integration/gemfire/inbound/cq/ContinuousQueryMessageProducerTests-context.xml
diff --git a/spring-integration-gemfire/src/main/java/org/springframework/integration/gemfire/config/xml/GemfireCqInboundChannelAdapterParser.java b/spring-integration-gemfire/src/main/java/org/springframework/integration/gemfire/config/xml/GemfireCqInboundChannelAdapterParser.java
new file mode 100644
index 0000000000..1a5bee3ae9
--- /dev/null
+++ b/spring-integration-gemfire/src/main/java/org/springframework/integration/gemfire/config/xml/GemfireCqInboundChannelAdapterParser.java
@@ -0,0 +1,82 @@
+/*
+ * Copyright 2002-2011 the original author or authors.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on
+ * an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations under the License.
+ */
+package org.springframework.integration.gemfire.config.xml;
+
+import org.springframework.beans.factory.support.AbstractBeanDefinition;
+import org.springframework.beans.factory.support.BeanDefinitionBuilder;
+import org.springframework.beans.factory.xml.ParserContext;
+import org.springframework.integration.config.xml.AbstractChannelAdapterParser;
+import org.springframework.integration.config.xml.IntegrationNamespaceUtils;
+import org.springframework.util.StringUtils;
+import org.w3c.dom.Element;
+
+/**
+ * @author David Turanski
+ * @since 2.1
+ *
+ */
+public class GemfireCqInboundChannelAdapterParser extends AbstractChannelAdapterParser {
+
+
+ private static final String ERROR_CHANNEL_ATTRIBUTE = "error-channel";
+
+ private static final String OUTPUT_CHANNEL_PROPERTY = "outputChannel";
+
+ private static final String QUERY_LISTENER_CONTAINER_ATTRIBUTE = "query-listener-container";
+
+ private static final String DURABLE_ATTRIBUTE = "durable";
+
+ private static final String QUERY_NAME_ATTRIBUTE = "query-name";
+
+ private static final String QUERY_ATTRIBUTE = "query";
+
+ private static final String PAYLOAD_EXPRESSION_PROPERTY = "payloadExpression";
+
+ private static final String EXPRESSION_ATTRIBUTE = "expression";
+
+ private static final String GEMFIRE_INBOUND_CONTINUOUS_QUERY_MESSAGE_PRODUCER = "org.springframework.integration.gemfire.inbound.ContinuousQueryMessageProducer";
+
+ private static final String SUPPORTED_EVENT_TYPES_PROPERTY = "supportedEventTypes";
+
+ private static final String QUERY_EVENTS_ATTRIBUTE = "query-events";
+
+ /* (non-Javadoc)
+ * @see org.springframework.integration.config.xml.AbstractChannelAdapterParser#doParse(org.w3c.dom.Element, org.springframework.beans.factory.xml.ParserContext, java.lang.String)
+ */
+ @Override
+ protected AbstractBeanDefinition doParse(Element element, ParserContext parserContext, String channelName) {
+ BeanDefinitionBuilder continuousQueryMesageProducer = BeanDefinitionBuilder.genericBeanDefinition(GEMFIRE_INBOUND_CONTINUOUS_QUERY_MESSAGE_PRODUCER);
+ IntegrationNamespaceUtils.setValueIfAttributeDefined(continuousQueryMesageProducer, element, EXPRESSION_ATTRIBUTE,PAYLOAD_EXPRESSION_PROPERTY);
+ IntegrationNamespaceUtils.setValueIfAttributeDefined(continuousQueryMesageProducer, element, QUERY_EVENTS_ATTRIBUTE, SUPPORTED_EVENT_TYPES_PROPERTY);
+
+ if (!StringUtils.hasText(QUERY_LISTENER_CONTAINER_ATTRIBUTE)){
+ parserContext.getReaderContext().error("'query-listener-container' attribute is required.",element);
+ }
+
+ if (!StringUtils.hasText(QUERY_ATTRIBUTE)){
+ parserContext.getReaderContext().error("'query' attribute is required.",element);
+ }
+
+ continuousQueryMesageProducer.addConstructorArgReference(element.getAttribute(QUERY_LISTENER_CONTAINER_ATTRIBUTE));
+ continuousQueryMesageProducer.addConstructorArgValue(element.getAttribute(QUERY_ATTRIBUTE));
+
+ continuousQueryMesageProducer.addPropertyReference(OUTPUT_CHANNEL_PROPERTY, channelName);
+ IntegrationNamespaceUtils.setReferenceIfAttributeDefined(continuousQueryMesageProducer, element, ERROR_CHANNEL_ATTRIBUTE);
+
+ IntegrationNamespaceUtils.setValueIfAttributeDefined(continuousQueryMesageProducer, element, QUERY_NAME_ATTRIBUTE);
+ IntegrationNamespaceUtils.setValueIfAttributeDefined(continuousQueryMesageProducer, element, DURABLE_ATTRIBUTE);
+
+ return continuousQueryMesageProducer.getBeanDefinition();
+ }
+
+}
diff --git a/spring-integration-gemfire/src/main/java/org/springframework/integration/gemfire/config/xml/GemfireIntegrationNamespaceHandler.java b/spring-integration-gemfire/src/main/java/org/springframework/integration/gemfire/config/xml/GemfireIntegrationNamespaceHandler.java
index a686001814..28abd48517 100644
--- a/spring-integration-gemfire/src/main/java/org/springframework/integration/gemfire/config/xml/GemfireIntegrationNamespaceHandler.java
+++ b/spring-integration-gemfire/src/main/java/org/springframework/integration/gemfire/config/xml/GemfireIntegrationNamespaceHandler.java
@@ -16,7 +16,7 @@ import org.springframework.integration.config.xml.AbstractIntegrationNamespaceHa
/**
* @author David Turanski
- *
+ * @since 2.1
*/
public class GemfireIntegrationNamespaceHandler extends AbstractIntegrationNamespaceHandler{
@@ -25,8 +25,8 @@ public class GemfireIntegrationNamespaceHandler extends AbstractIntegrationNames
*/
public void init() {
registerBeanDefinitionParser("inbound-channel-adapter", new GemfireInboundChannelAdapterParser());
+ registerBeanDefinitionParser("cq-inbound-channel-adapter", new GemfireCqInboundChannelAdapterParser());
registerBeanDefinitionParser("outbound-channel-adapter", new GemfireOutboundChannelAdapterParser());
-
}
}
diff --git a/spring-integration-gemfire/src/main/java/org/springframework/integration/gemfire/inbound/ContinuousQueryMessageProducer.java b/spring-integration-gemfire/src/main/java/org/springframework/integration/gemfire/inbound/ContinuousQueryMessageProducer.java
index b5727ea112..a45db191c9 100644
--- a/spring-integration-gemfire/src/main/java/org/springframework/integration/gemfire/inbound/ContinuousQueryMessageProducer.java
+++ b/spring-integration-gemfire/src/main/java/org/springframework/integration/gemfire/inbound/ContinuousQueryMessageProducer.java
@@ -111,7 +111,7 @@ public class ContinuousQueryMessageProducer extends SpelMessageProducerSupport i
public void onEvent(CqEvent event) {
if (isEventSupported(event)) {
if (logger.isDebugEnabled()) {
- logger.debug(String.format("processing cq event key [%s] event [%s]", event.getBaseOperation()
+ logger.debug(String.format("processing cq event key [%s] event [%s]", event.getQueryOperation()
.toString(), event.getKey()));
}
Message> cqEventMessage = MessageBuilder.withPayload(evaluationResult(event)).build();
@@ -124,7 +124,9 @@ public class ContinuousQueryMessageProducer extends SpelMessageProducerSupport i
* @return
*/
private boolean isEventSupported(CqEvent event) {
- String eventName = event.getBaseOperation().toString()+"D";
+
+ String eventName = event.getQueryOperation().toString() +
+ (event.getQueryOperation().toString().endsWith("Y")? "ED" : "D");
CqEventType eventType = CqEventType.valueOf(eventName);
return supportedEventTypes.contains(eventType);
}
diff --git a/spring-integration-gemfire/src/main/resources/org/springframework/integration/gemfire/config/xml/spring-integration-gemfire-2.1.xsd b/spring-integration-gemfire/src/main/resources/org/springframework/integration/gemfire/config/xml/spring-integration-gemfire-2.1.xsd
index a4c0f9ca2e..067ee10ae4 100644
--- a/spring-integration-gemfire/src/main/resources/org/springframework/integration/gemfire/config/xml/spring-integration-gemfire-2.1.xsd
+++ b/spring-integration-gemfire/src/main/resources/org/springframework/integration/gemfire/config/xml/spring-integration-gemfire-2.1.xsd
@@ -6,14 +6,14 @@
targetNamespace="http://www.springframework.org/schema/integration/gemfire"
elementFormDefault="qualified" attributeFormDefault="unqualified">
-
+
@@ -21,88 +21,131 @@
Configures an inbound Channel Adapter backed by a
- Gemfire CacheListener
+ GemFire CacheListener
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Configures an inbound Channel Adapter backed by a
+ Spring Gemfire QueryListener
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
+
+
+
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
- Configures an outbound Channel Adapter that writes Message payloads to a
+ Configures an outbound Channel Adapter that
+ writes Message payloads to a
File.
-
-
-
- A map of SpEL expressions used to create cache entries. If not provided, payload must be a Map
+
+
+
+ A map of SpEL expressions used to create cache entries. If not
+ provided, payload must be a Map
-
+
-
+
@@ -114,7 +157,7 @@
-
+
@@ -124,7 +167,7 @@
-
+
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/spring-integration-gemfire/src/test/java/org/springframework/integration/gemfire/inbound/ContinuousQueryMessageProducerTests.java b/spring-integration-gemfire/src/test/java/org/springframework/integration/gemfire/inbound/ContinuousQueryMessageProducerTests.java
new file mode 100644
index 0000000000..4387b55cf2
--- /dev/null
+++ b/spring-integration-gemfire/src/test/java/org/springframework/integration/gemfire/inbound/ContinuousQueryMessageProducerTests.java
@@ -0,0 +1,153 @@
+/*
+ * Copyright 2002-2011 the original author or authors.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on
+ * an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations under the License.
+ */
+package org.springframework.integration.gemfire.inbound;
+
+import static org.junit.Assert.assertEquals;
+import static org.mockito.Mockito.mock;
+
+import org.junit.Before;
+import org.junit.Test;
+import org.springframework.data.gemfire.listener.QueryListenerContainer;
+import org.springframework.integration.Message;
+import org.springframework.integration.MessagingException;
+import org.springframework.integration.channel.DirectChannel;
+import org.springframework.integration.core.MessageHandler;
+
+import com.gemstone.gemfire.cache.Operation;
+import com.gemstone.gemfire.cache.query.CqEvent;
+import com.gemstone.gemfire.cache.query.CqQuery;
+import com.gemstone.gemfire.cache.query.internal.CqQueryImpl;
+
+/**
+ * @author David Turanski
+ * @since 2.1
+ */
+public class ContinuousQueryMessageProducerTests {
+ QueryListenerContainer queryListenerContainer;
+
+ ContinuousQueryMessageProducer cqMessageProducer;
+
+ CqMessageHandler handler;
+
+ @Before
+ public void setUp() {
+ queryListenerContainer = mock(QueryListenerContainer.class);
+ cqMessageProducer = new ContinuousQueryMessageProducer(queryListenerContainer, "");
+ DirectChannel outputChannel = new DirectChannel();
+ cqMessageProducer.setOutputChannel(outputChannel);
+ handler = new CqMessageHandler();
+ outputChannel.subscribe(handler);
+ }
+
+ @Test
+ public void testMessageProduced() {
+ CqEvent cqEvent = event(Operation.CREATE, "hello");
+
+ cqMessageProducer.onEvent(cqEvent);
+
+ assertEquals(1, handler.count);
+ assertEquals(cqEvent, handler.payload);
+ }
+
+ @Test
+ public void testMessageNotProducedForUnsupportedEventType() {
+ CqEvent cqEvent = event(Operation.DESTROY, "hello");
+
+ cqMessageProducer.onEvent(cqEvent);
+
+ assertEquals(0, handler.count);
+ }
+
+ @Test
+ public void testMessageProducedForAddedEventType() {
+
+ CqEvent cqEvent = event(Operation.DESTROY, null);
+
+ cqMessageProducer.setSupportedEventTypes(CqEventType.DESTROYED);
+ cqMessageProducer.onEvent(cqEvent);
+
+ assertEquals(1, handler.count);
+ assertEquals(cqEvent, handler.payload);
+ }
+
+ @Test
+ public void testPayloadExpression() {
+ CqEvent cqEvent = event(Operation.CREATE, "hello");
+ cqMessageProducer.setPayloadExpression("newValue.toUpperCase() + ', WORLD'");
+ cqMessageProducer.onEvent(cqEvent);
+ assertEquals(1, handler.count);
+ assertEquals("HELLO, WORLD", handler.payload);
+ }
+
+ CqEvent event(final Operation operation, final Object value) {
+
+ CqEvent event = new CqEvent() {
+
+ final CqQuery cq = new CqQueryImpl();
+
+ final byte[] ba = new byte[0];
+
+ final Object key = new Object();
+
+ final Exception ex = new Exception();
+
+ public Operation getBaseOperation() {
+ return operation;
+ }
+
+ public CqQuery getCq() {
+ return cq;
+ }
+
+ public byte[] getDeltaValue() {
+ return ba;
+ }
+
+ public Object getKey() {
+ return key;
+ }
+
+ public Object getNewValue() {
+ return value;
+ }
+
+ public Operation getQueryOperation() {
+ return operation;
+ }
+
+ public Throwable getThrowable() {
+ return ex;
+ }
+ };
+
+ return event;
+ }
+
+ private static class CqMessageHandler implements MessageHandler {
+ public int count;
+
+ public Object payload;
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see
+ * org.springframework.integration.core.MessageHandler#handleMessage
+ * (org.springframework.integration.Message)
+ */
+ public void handleMessage(Message> message) throws MessagingException {
+ count++;
+ payload = message.getPayload();
+ }
+ }
+}
diff --git a/spring-integration-gemfire/src/test/java/org/springframework/integration/gemfire/inbound/cq/ContinuousQueryMessageProducerTests-context.xml b/spring-integration-gemfire/src/test/java/org/springframework/integration/gemfire/inbound/CqInboundChannelAdapterTests-context.xml
similarity index 71%
rename from spring-integration-gemfire/src/test/java/org/springframework/integration/gemfire/inbound/cq/ContinuousQueryMessageProducerTests-context.xml
rename to spring-integration-gemfire/src/test/java/org/springframework/integration/gemfire/inbound/CqInboundChannelAdapterTests-context.xml
index 60665d582b..cc429d1124 100644
--- a/spring-integration-gemfire/src/test/java/org/springframework/integration/gemfire/inbound/cq/ContinuousQueryMessageProducerTests-context.xml
+++ b/spring-integration-gemfire/src/test/java/org/springframework/integration/gemfire/inbound/CqInboundChannelAdapterTests-context.xml
@@ -23,24 +23,17 @@
-
-
-
-
-
-
+
-
-
-
-
-
-
+
+
diff --git a/spring-integration-gemfire/src/test/java/org/springframework/integration/gemfire/inbound/cq/ContinuousQueryMessageProducerTests.java b/spring-integration-gemfire/src/test/java/org/springframework/integration/gemfire/inbound/CqInboundChannelAdapterTests.java
similarity index 94%
rename from spring-integration-gemfire/src/test/java/org/springframework/integration/gemfire/inbound/cq/ContinuousQueryMessageProducerTests.java
rename to spring-integration-gemfire/src/test/java/org/springframework/integration/gemfire/inbound/CqInboundChannelAdapterTests.java
index c87de95792..dc6e941e19 100644
--- a/spring-integration-gemfire/src/test/java/org/springframework/integration/gemfire/inbound/cq/ContinuousQueryMessageProducerTests.java
+++ b/spring-integration-gemfire/src/test/java/org/springframework/integration/gemfire/inbound/CqInboundChannelAdapterTests.java
@@ -10,7 +10,7 @@
* an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the
* specific language governing permissions and limitations under the License.
*/
-package org.springframework.integration.gemfire.inbound.cq;
+package org.springframework.integration.gemfire.inbound;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertNotNull;
@@ -37,12 +37,11 @@ import com.gemstone.gemfire.internal.cache.LocalRegion;
/**
* @author David Turanski
- * @since 2.1
+ *
*/
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration
-public class ContinuousQueryMessageProducerTests {
-
+public class CqInboundChannelAdapterTests {
static ConfigurableApplicationContext staticCtx;
@Autowired
@@ -82,9 +81,7 @@ public class ContinuousQueryMessageProducerTests {
region.put("one",1);
Message> msg = outputChannel2.receive(1000);
assertNotNull(msg);
- assertEquals(1,msg.getPayload());
-
-
+ assertEquals(1,msg.getPayload());
}
@AfterClass
diff --git a/spring-integration-gemfire/src/test/java/org/springframework/integration/gemfire/store/messagegroupstore/GemfireMessageGroupStoreTestConfiguration.java b/spring-integration-gemfire/src/test/java/org/springframework/integration/gemfire/store/GemfireMessageGroupStoreTestConfiguration.java
similarity index 98%
rename from spring-integration-gemfire/src/test/java/org/springframework/integration/gemfire/store/messagegroupstore/GemfireMessageGroupStoreTestConfiguration.java
rename to spring-integration-gemfire/src/test/java/org/springframework/integration/gemfire/store/GemfireMessageGroupStoreTestConfiguration.java
index dcf3e2585b..f0a6f7ed2b 100644
--- a/spring-integration-gemfire/src/test/java/org/springframework/integration/gemfire/store/messagegroupstore/GemfireMessageGroupStoreTestConfiguration.java
+++ b/spring-integration-gemfire/src/test/java/org/springframework/integration/gemfire/store/GemfireMessageGroupStoreTestConfiguration.java
@@ -14,7 +14,7 @@
* limitations under the License.
*/
-package org.springframework.integration.gemfire.store.messagegroupstore;
+package org.springframework.integration.gemfire.store;
import java.util.ArrayList;
import java.util.Arrays;
diff --git a/spring-integration-gemfire/src/test/java/org/springframework/integration/gemfire/store/messagegroupstore/GemfireMessageGroupStoreTest-context.xml b/spring-integration-gemfire/src/test/java/org/springframework/integration/gemfire/store/GemfireMessageGroupStoreTests-context.xml
similarity index 83%
rename from spring-integration-gemfire/src/test/java/org/springframework/integration/gemfire/store/messagegroupstore/GemfireMessageGroupStoreTest-context.xml
rename to spring-integration-gemfire/src/test/java/org/springframework/integration/gemfire/store/GemfireMessageGroupStoreTests-context.xml
index 195325bcba..466eb0878d 100644
--- a/spring-integration-gemfire/src/test/java/org/springframework/integration/gemfire/store/messagegroupstore/GemfireMessageGroupStoreTest-context.xml
+++ b/spring-integration-gemfire/src/test/java/org/springframework/integration/gemfire/store/GemfireMessageGroupStoreTests-context.xml
@@ -9,9 +9,9 @@
http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util.xsd
http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd">
-
+
-
+
@@ -21,6 +21,6 @@
-
+
\ No newline at end of file
diff --git a/spring-integration-gemfire/src/test/java/org/springframework/integration/gemfire/store/messagegroupstore/GemfireMessageGroupStoreTest.java b/spring-integration-gemfire/src/test/java/org/springframework/integration/gemfire/store/GemfireMessageGroupStoreTests.java
similarity index 95%
rename from spring-integration-gemfire/src/test/java/org/springframework/integration/gemfire/store/messagegroupstore/GemfireMessageGroupStoreTest.java
rename to spring-integration-gemfire/src/test/java/org/springframework/integration/gemfire/store/GemfireMessageGroupStoreTests.java
index 1ba91b5ae4..4899af3f97 100644
--- a/spring-integration-gemfire/src/test/java/org/springframework/integration/gemfire/store/messagegroupstore/GemfireMessageGroupStoreTest.java
+++ b/spring-integration-gemfire/src/test/java/org/springframework/integration/gemfire/store/GemfireMessageGroupStoreTests.java
@@ -14,7 +14,7 @@
* limitations under the License.
*/
-package org.springframework.integration.gemfire.store.messagegroupstore;
+package org.springframework.integration.gemfire.store;
import static org.junit.Assert.assertEquals;
@@ -44,7 +44,7 @@ import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
*/
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration
-public class GemfireMessageGroupStoreTest {
+public class GemfireMessageGroupStoreTests {
@Autowired
private GemfireMessageGroupStoreTestConfiguration.FakeMessageConsumer consumer;
diff --git a/spring-integration-gemfire/src/test/java/org/springframework/integration/gemfire/store/messagegroupstore/GemfireMessageStore-context.xml b/spring-integration-gemfire/src/test/java/org/springframework/integration/gemfire/store/GemfireMessageStore-context.xml
similarity index 97%
rename from spring-integration-gemfire/src/test/java/org/springframework/integration/gemfire/store/messagegroupstore/GemfireMessageStore-context.xml
rename to spring-integration-gemfire/src/test/java/org/springframework/integration/gemfire/store/GemfireMessageStore-context.xml
index b1e58e2894..be2473064b 100644
--- a/spring-integration-gemfire/src/test/java/org/springframework/integration/gemfire/store/messagegroupstore/GemfireMessageStore-context.xml
+++ b/spring-integration-gemfire/src/test/java/org/springframework/integration/gemfire/store/GemfireMessageStore-context.xml
@@ -12,7 +12,7 @@
-
+
diff --git a/spring-integration-gemfire/src/test/java/org/springframework/integration/gemfire/store/messagegroupstore/common.properties b/spring-integration-gemfire/src/test/java/org/springframework/integration/gemfire/store/common.properties
similarity index 100%
rename from spring-integration-gemfire/src/test/java/org/springframework/integration/gemfire/store/messagegroupstore/common.properties
rename to spring-integration-gemfire/src/test/java/org/springframework/integration/gemfire/store/common.properties
diff --git a/spring-integration-gemfire/src/test/java/org/springframework/integration/gemfire/store/messagegroupstore/gfe-cache.properties b/spring-integration-gemfire/src/test/java/org/springframework/integration/gemfire/store/gfe-cache.properties
similarity index 100%
rename from spring-integration-gemfire/src/test/java/org/springframework/integration/gemfire/store/messagegroupstore/gfe-cache.properties
rename to spring-integration-gemfire/src/test/java/org/springframework/integration/gemfire/store/gfe-cache.properties
diff --git a/spring-integration-gemfire/src/test/resources/log4j.xml b/spring-integration-gemfire/src/test/resources/log4j.xml
index 688ecd5f77..d99732eeb1 100644
--- a/spring-integration-gemfire/src/test/resources/log4j.xml
+++ b/spring-integration-gemfire/src/test/resources/log4j.xml
@@ -12,11 +12,11 @@
-
+
-
+