+ * See the configuration in the three XML files that are referenced below.
+ *
+ * @author Mark Fisher
+ * @author Gunnar Hillert
+ */
+public class Main {
+
+ private final static String[] configFilesGatewayDemo = {
+ "/META-INF/spring/integration/common.xml",
+ "/META-INF/spring/integration/inboundGateway.xml",
+ "/META-INF/spring/integration/outboundGateway.xml"
+ };
+
+ private final static String[] configFilesChannelAdapterDemo = {
+ "/META-INF/spring/integration/common.xml",
+ "/META-INF/spring/integration/inboundChannelAdapter.xml",
+ "/META-INF/spring/integration/outboundChannelAdapter.xml"
+ };
+
+ public static void main(String[] args) {
+
+ final Scanner scanner = new Scanner(System.in);
+
+ System.out.println("\n========================================================="
+ + "\n "
+ + "\n Welcome to the Spring Integration JMS Sample! "
+ + "\n "
+ + "\n For more information please visit: "
+ + "\n http://www.springintegration.org/ "
+ + "\n "
+ + "\n=========================================================" );
+
+ ActiveMqTestUtils.prepare();
+
+ System.out.println("\n Which Demo would you like to run?
- * See the configuration in the three XML files that are referenced below.
- *
- * @author Mark Fisher
- * @author Gunnar Hillert
- */
-public class ChannelAdapterDemo {
-
- private final static String[] configFiles = {
- "/META-INF/spring/integration/common.xml",
- "/META-INF/spring/integration/inboundChannelAdapter.xml",
- "/META-INF/spring/integration/outboundChannelAdapter.xml"
- };
-
- public static void main(String[] args) {
- ActiveMqTestUtils.prepare();
- new ClassPathXmlApplicationContext(configFiles, ChannelAdapterDemo.class);
- System.out.println("Please type something and hit return");
- }
-
-}
diff --git a/basic/jms/src/test/java/org/springframework/integration/samples/jms/ChannelAdapterDemoTest.java b/basic/jms/src/test/java/org/springframework/integration/samples/jms/ChannelAdapterDemoTest.java
new file mode 100644
index 00000000..d9634757
--- /dev/null
+++ b/basic/jms/src/test/java/org/springframework/integration/samples/jms/ChannelAdapterDemoTest.java
@@ -0,0 +1,67 @@
+/*
+ * Copyright 2002-2012 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.samples.jms;
+
+import java.io.ByteArrayOutputStream;
+import java.io.PrintStream;
+
+import junit.framework.Assert;
+
+import org.junit.Before;
+import org.junit.Test;
+import org.springframework.context.support.GenericXmlApplicationContext;
+import org.springframework.integration.MessageChannel;
+import org.springframework.integration.support.MessageBuilder;
+
+/**
+ * @author Gunnar Hillert
+ */
+public class ChannelAdapterDemoTest {
+
+ private final static String[] configFilesChannelAdapterDemo = {
+ "/META-INF/spring/integration/common.xml",
+ "/META-INF/spring/integration/inboundChannelAdapter.xml",
+ "/META-INF/spring/integration/outboundChannelAdapter.xml"
+ };
+
+ private final ByteArrayOutputStream out = new ByteArrayOutputStream();
+
+ @Before
+ public void setupStreams() {
+ System.setOut(new PrintStream(this.out));
+ }
+
+ private void resetStreams() {
+ this.out.reset();
+ }
+
+ @Test
+ public void testChannelAdapterDemo() throws InterruptedException {
+
+ final GenericXmlApplicationContext applicationContext = new GenericXmlApplicationContext(configFilesChannelAdapterDemo);
+
+ final MessageChannel stdinToJmsoutChannel = applicationContext.getBean("stdinToJmsoutChannel", MessageChannel.class);
+
+ resetStreams();
+ stdinToJmsoutChannel.send(MessageBuilder.withPayload("jms test").build());
+
+ Thread.sleep(1000);
+ Assert.assertEquals("jms test\n", out.toString());
+
+ applicationContext.close();
+ }
+
+}
diff --git a/basic/jms/src/test/java/org/springframework/integration/samples/jms/GatewayDemo.java b/basic/jms/src/test/java/org/springframework/integration/samples/jms/GatewayDemo.java
deleted file mode 100644
index db443bc6..00000000
--- a/basic/jms/src/test/java/org/springframework/integration/samples/jms/GatewayDemo.java
+++ /dev/null
@@ -1,49 +0,0 @@
-/*
- * Copyright 2002-2010 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.samples.jms;
-
-import org.springframework.context.support.ClassPathXmlApplicationContext;
-
-/**
- * A simple bootstrap main() method for starting a pair of JMS Gateways.
- * Text entered in the console will go through an outbound JMS Gateway from
- * which it is sent to a JMS Destination. An inbound JMS Gateway is listening
- * to that same JMS Destination and will send the text to another Spring
- * Integration channel where it is handled by a service that simply converts
- * the text to upper case. The upper-case result is then sent in a response
- * message over JMS so that the outbound Gateway receives it as the reply to
- * its original request. At that point, the text is logged to the console.
- *
- * See the configuration in the three XML files that are referenced below.
- *
- * @author Mark Fisher
- */
-public class GatewayDemo {
-
- private final static String[] configFiles = {
- "/META-INF/spring/integration/common.xml",
- "/META-INF/spring/integration/inboundGateway.xml",
- "/META-INF/spring/integration/outboundGateway.xml"
- };
-
- public static void main(String[] args) {
- ActiveMqTestUtils.prepare();
- new ClassPathXmlApplicationContext(configFiles, GatewayDemo.class);
- System.out.println("Please type something and hit return");
- }
-
-}
diff --git a/basic/jms/src/test/java/org/springframework/integration/samples/jms/GatewayDemoTest.java b/basic/jms/src/test/java/org/springframework/integration/samples/jms/GatewayDemoTest.java
new file mode 100644
index 00000000..dc18c869
--- /dev/null
+++ b/basic/jms/src/test/java/org/springframework/integration/samples/jms/GatewayDemoTest.java
@@ -0,0 +1,67 @@
+/*
+ * Copyright 2002-2012 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.samples.jms;
+
+import java.io.ByteArrayOutputStream;
+import java.io.PrintStream;
+
+import junit.framework.Assert;
+
+import org.junit.Before;
+import org.junit.Test;
+import org.springframework.context.support.GenericXmlApplicationContext;
+import org.springframework.integration.MessageChannel;
+import org.springframework.integration.support.MessageBuilder;
+
+/**
+ * @author Gunnar Hillert
+ */
+public class GatewayDemoTest {
+
+ private final static String[] configFilesGatewayDemo = {
+ "/META-INF/spring/integration/common.xml",
+ "/META-INF/spring/integration/inboundGateway.xml",
+ "/META-INF/spring/integration/outboundGateway.xml"
+ };
+
+ private final ByteArrayOutputStream out = new ByteArrayOutputStream();
+
+ @Before
+ public void setupStreams() {
+ System.setOut(new PrintStream(this.out));
+ }
+
+ private void resetStreams() {
+ this.out.reset();
+ }
+
+ @Test
+ public void testGatewayDemo() throws InterruptedException {
+
+ final GenericXmlApplicationContext applicationContext = new GenericXmlApplicationContext(configFilesGatewayDemo);
+
+ final MessageChannel stdinToJmsoutChannel = applicationContext.getBean("stdinToJmsoutChannel", MessageChannel.class);
+
+ resetStreams();
+ stdinToJmsoutChannel.send(MessageBuilder.withPayload("jms test").build());
+
+ Thread.sleep(1000);
+ Assert.assertEquals("JMS response: JMS TEST\n", out.toString());
+
+ applicationContext.close();
+ }
+
+}