diff --git a/build.gradle b/build.gradle
index ee3ca7cccd..5db8e69cb8 100644
--- a/build.gradle
+++ b/build.gradle
@@ -266,6 +266,7 @@ project('spring-integration-groovy') {
description = 'Spring Integration Groovy Support'
dependencies {
compile project(":spring-integration-core")
+ compile project(":spring-integration-scripting")
compile "org.codehaus.groovy:groovy-all:1.7.5"
compile "org.springframework:spring-context-support:$springVersion"
}
diff --git a/spring-integration-core/src/main/resources/META-INF/spring.schemas b/spring-integration-core/src/main/resources/META-INF/spring.schemas
index aee88e2097..0a0369d36f 100644
--- a/spring-integration-core/src/main/resources/META-INF/spring.schemas
+++ b/spring-integration-core/src/main/resources/META-INF/spring.schemas
@@ -1,6 +1,4 @@
http\://www.springframework.org/schema/integration/spring-integration-1.0.xsd=org/springframework/integration/config/xml/spring-integration-1.0.xsd
http\://www.springframework.org/schema/integration/spring-integration-2.0.xsd=org/springframework/integration/config/xml/spring-integration-2.0.xsd
http\://www.springframework.org/schema/integration/spring-integration-2.1.xsd=org/springframework/integration/config/xml/spring-integration-2.1.xsd
-http\://www.springframework.org/schema/integration/spring-integration.xsd=org/springframework/integration/config/xml/spring-integration-2.1.xsd
-http\://www.springframework.org/schema/integration/scripting/spring-integration-scripting-core.xsd=org/springframework/integration/scripting/config/xml/spring-integration-scripting-core-2.1.xsd
-http\://www.springframework.org/schema/integration/scripting/spring-integration-scripting-core-2.1.xsd=org/springframework/integration/scripting/config/xml/spring-integration-scripting-core-2.1.xsd
+http\://www.springframework.org/schema/integration/spring-integration.xsd=org/springframework/integration/config/xml/spring-integration-2.1.xsd
\ No newline at end of file
diff --git a/spring-integration-groovy/pom.xml b/spring-integration-groovy/pom.xml
index d9863ecf62..51c407b2d4 100644
--- a/spring-integration-groovy/pom.xml
+++ b/spring-integration-groovy/pom.xml
@@ -88,6 +88,12 @@
+
+ org.springframework.integration
+ spring-integration-core
+ 2.1.0.BUILD-SNAPSHOT
+ compile
+
org.easymock
easymock
@@ -106,12 +112,6 @@
3.0.6.RELEASE
compile
-
- org.springframework.integration
- spring-integration-core
- 2.1.0.BUILD-SNAPSHOT
- compile
-
org.hamcrest
hamcrest-all
@@ -154,6 +154,12 @@
4.8.2
test
+
+ org.springframework.integration
+ spring-integration-scripting
+ 2.1.0.BUILD-SNAPSHOT
+ compile
+
UTF8
diff --git a/spring-integration-groovy/src/main/java/org/springframework/integration/groovy/config/GroovyScriptParser.java b/spring-integration-groovy/src/main/java/org/springframework/integration/groovy/config/GroovyScriptParser.java
index c3a9ad5f6e..ed263b9fdf 100644
--- a/spring-integration-groovy/src/main/java/org/springframework/integration/groovy/config/GroovyScriptParser.java
+++ b/spring-integration-groovy/src/main/java/org/springframework/integration/groovy/config/GroovyScriptParser.java
@@ -18,13 +18,14 @@ package org.springframework.integration.groovy.config;
import org.springframework.beans.factory.support.BeanDefinitionBuilder;
import org.springframework.beans.factory.xml.ParserContext;
-import org.springframework.integration.config.xml.AbstractScriptParser;
+import org.springframework.integration.scripting.config.AbstractScriptParser;
import org.springframework.integration.config.xml.IntegrationNamespaceUtils;
import org.w3c.dom.Element;
/**
* @author Mark Fisher
* @author Oleg Zhurakousky
+ * @author David Turanski
* @since 2.0
*/
public class GroovyScriptParser extends AbstractScriptParser {
diff --git a/spring-integration-groovy/src/main/resources/META-INF/spring.schemas b/spring-integration-groovy/src/main/resources/META-INF/spring.schemas
index d108fd34b0..24b85b0e9e 100644
--- a/spring-integration-groovy/src/main/resources/META-INF/spring.schemas
+++ b/spring-integration-groovy/src/main/resources/META-INF/spring.schemas
@@ -1,3 +1,3 @@
http\://www.springframework.org/schema/integration/groovy/spring-integration-groovy-2.0.xsd=org/springframework/integration/groovy/config/spring-integration-groovy-2.0.xsd
http\://www.springframework.org/schema/integration/groovy/spring-integration-groovy-2.1.xsd=org/springframework/integration/groovy/config/spring-integration-groovy-2.1.xsd
-http\://www.springframework.org/schema/integration/groovy/spring-integration-groovy.xsd=org/springframework/integration/groovy/config/spring-integration-groovy-2.1.xsd
+http\://www.springframework.org/schema/integration/groovy/spring-integration-groovy.xsd=org/springframework/integration/groovy/config/spring-integration-groovy-2.1.xsd
\ No newline at end of file
diff --git a/spring-integration-core/src/main/java/org/springframework/integration/scripting/AbstractScriptExecutingMessageProcessor.java b/spring-integration-scripting/src/main/java/org/springframework/integration/scripting/AbstractScriptExecutingMessageProcessor.java
similarity index 100%
rename from spring-integration-core/src/main/java/org/springframework/integration/scripting/AbstractScriptExecutingMessageProcessor.java
rename to spring-integration-scripting/src/main/java/org/springframework/integration/scripting/AbstractScriptExecutingMessageProcessor.java
diff --git a/spring-integration-core/src/main/java/org/springframework/integration/scripting/DefaultScriptVariableGenerator.java b/spring-integration-scripting/src/main/java/org/springframework/integration/scripting/DefaultScriptVariableGenerator.java
similarity index 100%
rename from spring-integration-core/src/main/java/org/springframework/integration/scripting/DefaultScriptVariableGenerator.java
rename to spring-integration-scripting/src/main/java/org/springframework/integration/scripting/DefaultScriptVariableGenerator.java
diff --git a/spring-integration-core/src/main/java/org/springframework/integration/scripting/RefreshableResourceScriptSource.java b/spring-integration-scripting/src/main/java/org/springframework/integration/scripting/RefreshableResourceScriptSource.java
similarity index 100%
rename from spring-integration-core/src/main/java/org/springframework/integration/scripting/RefreshableResourceScriptSource.java
rename to spring-integration-scripting/src/main/java/org/springframework/integration/scripting/RefreshableResourceScriptSource.java
diff --git a/spring-integration-core/src/main/java/org/springframework/integration/scripting/ScriptVariableGenerator.java b/spring-integration-scripting/src/main/java/org/springframework/integration/scripting/ScriptVariableGenerator.java
similarity index 100%
rename from spring-integration-core/src/main/java/org/springframework/integration/scripting/ScriptVariableGenerator.java
rename to spring-integration-scripting/src/main/java/org/springframework/integration/scripting/ScriptVariableGenerator.java
diff --git a/spring-integration-core/src/main/java/org/springframework/integration/config/xml/AbstractScriptParser.java b/spring-integration-scripting/src/main/java/org/springframework/integration/scripting/config/AbstractScriptParser.java
similarity index 97%
rename from spring-integration-core/src/main/java/org/springframework/integration/config/xml/AbstractScriptParser.java
rename to spring-integration-scripting/src/main/java/org/springframework/integration/scripting/config/AbstractScriptParser.java
index 4f527ac6fe..286386386f 100644
--- a/spring-integration-core/src/main/java/org/springframework/integration/config/xml/AbstractScriptParser.java
+++ b/spring-integration-scripting/src/main/java/org/springframework/integration/scripting/config/AbstractScriptParser.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.config.xml;
+package org.springframework.integration.scripting.config;
import java.util.List;
@@ -21,6 +21,7 @@ import org.springframework.beans.factory.support.ManagedMap;
import org.springframework.beans.factory.xml.AbstractSingleBeanDefinitionParser;
import org.springframework.beans.factory.xml.ParserContext;
import org.springframework.beans.factory.xml.XmlReaderContext;
+import org.springframework.integration.config.xml.IntegrationNamespaceUtils;
import org.springframework.scripting.support.StaticScriptSource;
import org.springframework.util.CollectionUtils;
import org.springframework.util.StringUtils;
diff --git a/spring-integration-scripting/src/main/java/org/springframework/integration/scripting/config/jsr223/ScriptParser.java b/spring-integration-scripting/src/main/java/org/springframework/integration/scripting/config/jsr223/ScriptParser.java
index 0aaa378cca..dd04bcc637 100644
--- a/spring-integration-scripting/src/main/java/org/springframework/integration/scripting/config/jsr223/ScriptParser.java
+++ b/spring-integration-scripting/src/main/java/org/springframework/integration/scripting/config/jsr223/ScriptParser.java
@@ -18,7 +18,7 @@ package org.springframework.integration.scripting.config.jsr223;
import org.springframework.beans.factory.support.BeanDefinitionBuilder;
import org.springframework.beans.factory.xml.ParserContext;
-import org.springframework.integration.config.xml.AbstractScriptParser;
+import org.springframework.integration.scripting.config.AbstractScriptParser;
import org.springframework.integration.scripting.jsr223.DefaultScriptExecutor;
import org.springframework.util.Assert;
import org.w3c.dom.Element;
diff --git a/spring-integration-scripting/src/main/resources/META-INF/spring.handlers b/spring-integration-scripting/src/main/resources/META-INF/spring.handlers
index 01d08db05d..bc3dff4203 100644
--- a/spring-integration-scripting/src/main/resources/META-INF/spring.handlers
+++ b/spring-integration-scripting/src/main/resources/META-INF/spring.handlers
@@ -1 +1 @@
-http\://www.springframework.org/schema/integration/script=org.springframework.integration.scripting.config.jsr223.ScriptNamespaceHandler
+http\://www.springframework.org/schema/integration/scripting=org.springframework.integration.scripting.config.jsr223.ScriptNamespaceHandler
diff --git a/spring-integration-scripting/src/main/resources/META-INF/spring.schemas b/spring-integration-scripting/src/main/resources/META-INF/spring.schemas
index a6072eeb56..0ad1b19997 100644
--- a/spring-integration-scripting/src/main/resources/META-INF/spring.schemas
+++ b/spring-integration-scripting/src/main/resources/META-INF/spring.schemas
@@ -1,2 +1,4 @@
-http\://www.springframework.org/schema/integration/script-2.1.xsd=org/springframework/integration/script/config/spring-integration-script-2.1.xsd
-http\://www.springframework.org/schema/integration/script.xsd=org/springframework/integration/script/config/spring-integration-script-2.1.xsd
+http\://www.springframework.org/schema/integration/scripting/spring-integration-scripting-2.1.xsd=org/springframework/integration/scripting/config/spring-integration-scripting-2.1.xsd
+http\://www.springframework.org/schema/integration/scripting/spring-integration-scripting.xsd=org/springframework/integration/scripting/config/spring-integration-scripting-2.1.xsd
+http\://www.springframework.org/schema/integration/scripting/spring-integration-scripting-core-2.1.xsd=org/springframework/integration/scripting/config/spring-integration-scripting-core-2.1.xsd
+http\://www.springframework.org/schema/integration/scripting/spring-integration-scripting-core.xsd=org/springframework/integration/scripting/config/spring-integration-scripting-core-2.1.xsd
\ No newline at end of file
diff --git a/spring-integration-scripting/src/main/resources/META-INF/spring.tooling b/spring-integration-scripting/src/main/resources/META-INF/spring.tooling
index c60b4d5e8d..14bf96f34f 100644
--- a/spring-integration-scripting/src/main/resources/META-INF/spring.tooling
+++ b/spring-integration-scripting/src/main/resources/META-INF/spring.tooling
@@ -1,4 +1,4 @@
-# Tooling related information for the integration script namespace
-http\://www.springframework.org/schema/integration/script@name=integration script Namespace
-http\://www.springframework.org/schema/integration/script@prefix=int-script
-http\://www.springframework.org/schema/integration/script@icon=org/springframework/integration/script/config/spring-integration-script.gif
+# Tooling related information for the integration scripting namespace
+http\://www.springframework.org/schema/integration/scripting@name=integration scripting Namespace
+http\://www.springframework.org/schema/integration/scripting@prefix=int-script
+http\://www.springframework.org/schema/integration/scripting@icon=org/springframework/integration/scripting/config/spring-integration-scripting.gif
diff --git a/spring-integration-scripting/src/main/resources/org/springframework/integration/script/config/spring-integration-script-2.1.xsd b/spring-integration-scripting/src/main/resources/org/springframework/integration/scripting/config/spring-integration-scripting-2.1.xsd
similarity index 97%
rename from spring-integration-scripting/src/main/resources/org/springframework/integration/script/config/spring-integration-script-2.1.xsd
rename to spring-integration-scripting/src/main/resources/org/springframework/integration/scripting/config/spring-integration-scripting-2.1.xsd
index 1f7ffe96cd..c231e310a6 100644
--- a/spring-integration-scripting/src/main/resources/org/springframework/integration/script/config/spring-integration-script-2.1.xsd
+++ b/spring-integration-scripting/src/main/resources/org/springframework/integration/scripting/config/spring-integration-scripting-2.1.xsd
@@ -1,7 +1,7 @@
-
+ http://www.springframework.org/schema/integration/scripting http://www.springframework.org/schema/integration/scripting/spring-integration-scripting.xsd">
diff --git a/spring-integration-scripting/src/test/java/org/springframework/integration/scripting/config/jsr223/Jsr223HeaderEnricherTests-context.xml b/spring-integration-scripting/src/test/java/org/springframework/integration/scripting/config/jsr223/Jsr223HeaderEnricherTests-context.xml
index 237afaeb63..8950c85815 100644
--- a/spring-integration-scripting/src/test/java/org/springframework/integration/scripting/config/jsr223/Jsr223HeaderEnricherTests-context.xml
+++ b/spring-integration-scripting/src/test/java/org/springframework/integration/scripting/config/jsr223/Jsr223HeaderEnricherTests-context.xml
@@ -2,10 +2,10 @@
+ http://www.springframework.org/schema/integration/scripting http://www.springframework.org/schema/integration/scripting/spring-integration-scripting.xsd">
diff --git a/spring-integration-scripting/src/test/java/org/springframework/integration/scripting/config/jsr223/Jsr223RefreshTests-context.xml b/spring-integration-scripting/src/test/java/org/springframework/integration/scripting/config/jsr223/Jsr223RefreshTests-context.xml
index 1bdbe3bd91..51f873994c 100644
--- a/spring-integration-scripting/src/test/java/org/springframework/integration/scripting/config/jsr223/Jsr223RefreshTests-context.xml
+++ b/spring-integration-scripting/src/test/java/org/springframework/integration/scripting/config/jsr223/Jsr223RefreshTests-context.xml
@@ -2,10 +2,10 @@
+ http://www.springframework.org/schema/integration/scripting http://www.springframework.org/schema/integration/scripting/spring-integration-scripting.xsd">
diff --git a/spring-integration-scripting/src/test/java/org/springframework/integration/scripting/config/jsr223/Jsr223RouterTests-context.xml b/spring-integration-scripting/src/test/java/org/springframework/integration/scripting/config/jsr223/Jsr223RouterTests-context.xml
index 31b9bad53b..266178ab63 100644
--- a/spring-integration-scripting/src/test/java/org/springframework/integration/scripting/config/jsr223/Jsr223RouterTests-context.xml
+++ b/spring-integration-scripting/src/test/java/org/springframework/integration/scripting/config/jsr223/Jsr223RouterTests-context.xml
@@ -2,10 +2,10 @@
+ http://www.springframework.org/schema/integration/scripting http://www.springframework.org/schema/integration/scripting/spring-integration-scripting.xsd">
diff --git a/spring-integration-scripting/src/test/java/org/springframework/integration/scripting/config/jsr223/Jsr223ServiceActivatorTests-context.xml b/spring-integration-scripting/src/test/java/org/springframework/integration/scripting/config/jsr223/Jsr223ServiceActivatorTests-context.xml
index c95155577d..00dcea4762 100644
--- a/spring-integration-scripting/src/test/java/org/springframework/integration/scripting/config/jsr223/Jsr223ServiceActivatorTests-context.xml
+++ b/spring-integration-scripting/src/test/java/org/springframework/integration/scripting/config/jsr223/Jsr223ServiceActivatorTests-context.xml
@@ -3,11 +3,11 @@
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:beans="http://www.springframework.org/schema/beans"
xmlns:aop="http://www.springframework.org/schema/aop"
- xmlns:script="http://www.springframework.org/schema/integration/script"
+ xmlns:script="http://www.springframework.org/schema/integration/scripting"
xsi:schemaLocation="http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.0.xsd
http://www.springframework.org/schema/integration http://www.springframework.org/schema/integration/spring-integration.xsd
http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
- http://www.springframework.org/schema/integration/script http://www.springframework.org/schema/integration/script.xsd">
+ http://www.springframework.org/schema/integration/scripting http://www.springframework.org/schema/integration/scripting/spring-integration-scripting.xsd">
+ http://www.springframework.org/schema/integration/scripting http://www.springframework.org/schema/integration/scripting/spring-integration-scripting.xsd">
diff --git a/spring-integration-scripting/src/test/java/org/springframework/integration/scripting/config/jsr223/Jsr223ServiceActivatorTests-fail-withgenerator-context.xml b/spring-integration-scripting/src/test/java/org/springframework/integration/scripting/config/jsr223/Jsr223ServiceActivatorTests-fail-withgenerator-context.xml
index ec992cf682..b462bdb7fa 100644
--- a/spring-integration-scripting/src/test/java/org/springframework/integration/scripting/config/jsr223/Jsr223ServiceActivatorTests-fail-withgenerator-context.xml
+++ b/spring-integration-scripting/src/test/java/org/springframework/integration/scripting/config/jsr223/Jsr223ServiceActivatorTests-fail-withgenerator-context.xml
@@ -2,10 +2,10 @@
+ http://www.springframework.org/schema/integration/scripting http://www.springframework.org/schema/integration/scripting/spring-integration-scripting.xsd">
diff --git a/spring-integration-scripting/src/test/java/org/springframework/integration/scripting/config/jsr223/Jsr223TransformerTests-context.xml b/spring-integration-scripting/src/test/java/org/springframework/integration/scripting/config/jsr223/Jsr223TransformerTests-context.xml
index c668de58db..6096802dcc 100644
--- a/spring-integration-scripting/src/test/java/org/springframework/integration/scripting/config/jsr223/Jsr223TransformerTests-context.xml
+++ b/spring-integration-scripting/src/test/java/org/springframework/integration/scripting/config/jsr223/Jsr223TransformerTests-context.xml
@@ -2,10 +2,10 @@
+ http://www.springframework.org/schema/integration/scripting http://www.springframework.org/schema/integration/scripting/spring-integration-scripting.xsd">
response = ((PollableChannel) outputChannel).receive(10000);
assertNotNull(name + ": receive timeout on " + scenario.getOutputChannelName(),response);
-
- if (scenario.getResponseValidator() instanceof PayloadValidator){
- scenario.getResponseValidator().validateResponse(response.getPayload());
- } else {
- scenario.getResponseValidator().validateResponse(response);
- }
+ scenario.getResponseValidator().handleMessage(response);
}
+
+ assertNotNull("message was not handled on " + outputChannel + " for scenario '" + scenario.getName() + "'.",
+ scenario.getResponseValidator().getLastMessage());
}
}
/**
diff --git a/spring-integration-test/src/main/java/org/springframework/integration/test/support/AbstractResponseValidator.java b/spring-integration-test/src/main/java/org/springframework/integration/test/support/AbstractResponseValidator.java
index 15fb868baf..4cc1e21133 100644
--- a/spring-integration-test/src/main/java/org/springframework/integration/test/support/AbstractResponseValidator.java
+++ b/spring-integration-test/src/main/java/org/springframework/integration/test/support/AbstractResponseValidator.java
@@ -8,20 +8,33 @@ import org.springframework.integration.core.MessageHandler;
* @author David Turanski
*
*/
-public abstract class AbstractResponseValidator implements MessageHandler {
-
+public abstract class AbstractResponseValidator implements MessageHandler {
+
+ private Message> lastMessage;
+ /**
+ * handle the message
+ */
+ @SuppressWarnings("unchecked")
+ //@Override
public void handleMessage(Message> message) throws MessagingException {
- validateResponse(extractPayload()? message.getPayload(): message );
+ this.lastMessage = message;
+ validateResponse((T) (extractPayload()? message.getPayload(): message ));
}
/**
* Implement this method to validate the response (Message or Payload)
* @param response
*/
- protected abstract void validateResponse(Object response);
+ protected abstract void validateResponse(T response);
/**
* If true will extract the payload as the parameter for validateResponse()
* @return true to extract the payload; false to process the message.
*/
protected abstract boolean extractPayload();
+ /**
+ * @return the lastMessage
+ */
+ public Message> getLastMessage() {
+ return lastMessage;
+ }
}
diff --git a/spring-integration-test/src/main/java/org/springframework/integration/test/support/MessageValidator.java b/spring-integration-test/src/main/java/org/springframework/integration/test/support/MessageValidator.java
index 47c077adb3..0a55b92ce8 100644
--- a/spring-integration-test/src/main/java/org/springframework/integration/test/support/MessageValidator.java
+++ b/spring-integration-test/src/main/java/org/springframework/integration/test/support/MessageValidator.java
@@ -7,12 +7,12 @@ import org.springframework.integration.Message;
* @author David Turanski
*
*/
-public abstract class MessageValidator extends AbstractResponseValidator {
+public abstract class MessageValidator extends AbstractResponseValidator> {
protected final boolean extractPayload(){
return false;
}
- protected final void validateResponse(Object response){
+ protected final void validateResponse(Message> response){
validateMessage((Message>) response);
}
/**
diff --git a/spring-integration-test/src/main/java/org/springframework/integration/test/support/PayloadValidator.java b/spring-integration-test/src/main/java/org/springframework/integration/test/support/PayloadValidator.java
index 8fda95ba58..aadc5a6377 100644
--- a/spring-integration-test/src/main/java/org/springframework/integration/test/support/PayloadValidator.java
+++ b/spring-integration-test/src/main/java/org/springframework/integration/test/support/PayloadValidator.java
@@ -5,7 +5,7 @@ package org.springframework.integration.test.support;
* @author David Turanski
*
*/
-public abstract class PayloadValidator extends AbstractResponseValidator {
+public abstract class PayloadValidator extends AbstractResponseValidator {
protected final boolean extractPayload(){
return true;
}
diff --git a/spring-integration-test/src/main/java/org/springframework/integration/test/support/RequestResponseScenario.java b/spring-integration-test/src/main/java/org/springframework/integration/test/support/RequestResponseScenario.java
index 32e15d1dd7..23f50b0da1 100644
--- a/spring-integration-test/src/main/java/org/springframework/integration/test/support/RequestResponseScenario.java
+++ b/spring-integration-test/src/main/java/org/springframework/integration/test/support/RequestResponseScenario.java
@@ -14,7 +14,7 @@ public class RequestResponseScenario {
private final String outputChannelName;
private Object payload;
private Message> message;
- private AbstractResponseValidator responseValidator;
+ private AbstractResponseValidator> responseValidator;
private String name;
protected Message extends Object> getMessage(){
@@ -91,7 +91,7 @@ public class RequestResponseScenario {
* @return the response validator
* @see AbstractResponseValidator
*/
- public AbstractResponseValidator getResponseValidator(){
+ public AbstractResponseValidator> getResponseValidator(){
return responseValidator;
}
@@ -101,7 +101,7 @@ public class RequestResponseScenario {
* @param responseValidator
* @return
*/
- public RequestResponseScenario setResponseValidator(AbstractResponseValidator responseValidator) {
+ public RequestResponseScenario setResponseValidator(AbstractResponseValidator> responseValidator) {
this.responseValidator = responseValidator;
return this;
}
diff --git a/spring-integration-test/src/main/java/org/springframework/integration/test/support/SingleRequestResponseScenarioTest.java b/spring-integration-test/src/main/java/org/springframework/integration/test/support/SingleRequestResponseScenarioTest.java
new file mode 100644
index 0000000000..48670e45b0
--- /dev/null
+++ b/spring-integration-test/src/main/java/org/springframework/integration/test/support/SingleRequestResponseScenarioTest.java
@@ -0,0 +1,31 @@
+/*
+ * 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.test.support;
+import java.util.Collections;
+import java.util.List;
+
+/**
+ * Convenience class for a single {@link RequestResponsScenario} test
+ * @author David Turanski
+ *
+ */
+
+public abstract class SingleRequestResponseScenarioTest extends AbstractRequestResponseScenarioTest {
+
+ @Override
+ protected List defineRequestResponseScenarios() {
+ return Collections.singletonList(defineRequestResponseScenario());
+ }
+
+ protected abstract RequestResponseScenario defineRequestResponseScenario();
+}
diff --git a/spring-integration-test/src/test/java/org/springframework/integration/test/support/MessageScenariosTest.java b/spring-integration-test/src/test/java/org/springframework/integration/test/support/MessageScenariosTest.java
index 15c3f92676..6723cc0142 100644
--- a/spring-integration-test/src/test/java/org/springframework/integration/test/support/MessageScenariosTest.java
+++ b/spring-integration-test/src/test/java/org/springframework/integration/test/support/MessageScenariosTest.java
@@ -21,9 +21,9 @@ public class MessageScenariosTest extends AbstractRequestResponseScenarioTest {
RequestResponseScenario scenario1 = new RequestResponseScenario(
"inputChannel","outputChannel")
.setPayload("hello")
- .setResponseValidator(new PayloadValidator() {
+ .setResponseValidator(new PayloadValidator() {
@Override
- protected void validateResponse(Object response) {
+ protected void validateResponse(String response) {
assertEquals("HELLO",response);
}
});
diff --git a/spring-integration-test/src/test/java/org/springframework/integration/test/support/SingleScenarioTest.java b/spring-integration-test/src/test/java/org/springframework/integration/test/support/SingleScenarioTest.java
new file mode 100644
index 0000000000..16e944429f
--- /dev/null
+++ b/spring-integration-test/src/test/java/org/springframework/integration/test/support/SingleScenarioTest.java
@@ -0,0 +1,26 @@
+package org.springframework.integration.test.support;
+
+import static org.junit.Assert.assertEquals;
+
+import org.springframework.test.context.ContextConfiguration;
+
+@ContextConfiguration("MessageScenariosTest-context.xml")
+public class SingleScenarioTest extends SingleRequestResponseScenarioTest {
+
+ /* (non-Javadoc)
+ * @see org.springframework.integration.test.support.SingleRequestResponseScenarioTest#defineRequestResponseScenario()
+ */
+ @Override
+ protected RequestResponseScenario defineRequestResponseScenario() {
+ RequestResponseScenario scenario = new RequestResponseScenario(
+ "inputChannel","outputChannel")
+ .setPayload("hello")
+ .setResponseValidator(new PayloadValidator() {
+ @Override
+ protected void validateResponse(String response) {
+ assertEquals("HELLO",response);
+ }
+ });
+ return scenario;
+ }
+}