diff --git a/applications/cafe/pom.xml b/applications/cafe/pom.xml
index b0483d22..a823958b 100644
--- a/applications/cafe/pom.xml
+++ b/applications/cafe/pom.xml
@@ -8,10 +8,21 @@
Spring Integration Cafe Sample
2.1.0.M3
+ 3.1.0.RC1
1.2.16
4.7
+
+ org.springframework
+ spring-tx
+ ${spring.core.version}
+
+
+ org.springframework
+ spring-context
+ ${spring.core.version}
+
org.springframework.integration
spring-integration-amqp
diff --git a/applications/cafe/src/main/java/org/springframework/integration/samples/cafe/xml/CafeDemoAppAmqp.java b/applications/cafe/src/main/java/org/springframework/integration/samples/cafe/xml/CafeDemoAppAmqp.java
index db802315..4d259852 100644
--- a/applications/cafe/src/main/java/org/springframework/integration/samples/cafe/xml/CafeDemoAppAmqp.java
+++ b/applications/cafe/src/main/java/org/springframework/integration/samples/cafe/xml/CafeDemoAppAmqp.java
@@ -38,12 +38,14 @@ import org.springframework.integration.samples.cafe.Order;
*
* @author Tom McCuch
*/
-public class CafeDemoAppAmqp {
-
- public static void main(String[] args) {
- AbstractApplicationContext context =
- new ClassPathXmlApplicationContext("/META-INF/spring/integration/amqp/cafeDemo-amqp-xml.xml", CafeDemoAppAmqp.class);
-
+public class CafeDemoAppAmqp {
+
+ /**
+ * place some orders
+ * @param context spring context
+ * @param count the number of standard orders
+ */
+ public static void order(AbstractApplicationContext context, int count){
Cafe cafe = (Cafe) context.getBean("cafe");
for (int i = 1; i <= 100; i++) {
Order order = new Order(i);
@@ -51,7 +53,14 @@ public class CafeDemoAppAmqp {
order.addItem(DrinkType.MOCHA, 3, true);
cafe.placeOrder(order);
}
-
+ }
+
+ public static void main(String[] args) {
+ AbstractApplicationContext context =
+ CafeDemoAppUtilities.loadProfileContext(
+ "/META-INF/spring/integration/amqp/cafeDemo-amqp-xml.xml",
+ CafeDemoAppAmqp.class,CafeDemoAppUtilities.DEV);
+ order(context, 100);
context.close();
}
}
diff --git a/applications/cafe/src/main/java/org/springframework/integration/samples/cafe/xml/CafeDemoAppBaristaColdAmqp.java b/applications/cafe/src/main/java/org/springframework/integration/samples/cafe/xml/CafeDemoAppBaristaColdAmqp.java
index bde92220..2fa94d32 100644
--- a/applications/cafe/src/main/java/org/springframework/integration/samples/cafe/xml/CafeDemoAppBaristaColdAmqp.java
+++ b/applications/cafe/src/main/java/org/springframework/integration/samples/cafe/xml/CafeDemoAppBaristaColdAmqp.java
@@ -44,9 +44,9 @@ public class CafeDemoAppBaristaColdAmqp {
public static void main(String[] args) {
AbstractApplicationContext context =
- new ClassPathXmlApplicationContext(
+ CafeDemoAppUtilities.loadProfileContext(
"/META-INF/spring/integration/amqp/cafeDemo-amqp-baristaCold-xml.xml",
- CafeDemoAppBaristaColdAmqp.class);
+ CafeDemoAppBaristaColdAmqp.class,CafeDemoAppUtilities.DEV);
System.out.println("Press Enter/Return in the console to exit the Barista Cold App");
try {
diff --git a/applications/cafe/src/main/java/org/springframework/integration/samples/cafe/xml/CafeDemoAppBaristaHotAmqp.java b/applications/cafe/src/main/java/org/springframework/integration/samples/cafe/xml/CafeDemoAppBaristaHotAmqp.java
index 0f0d8d9c..0d37cad6 100644
--- a/applications/cafe/src/main/java/org/springframework/integration/samples/cafe/xml/CafeDemoAppBaristaHotAmqp.java
+++ b/applications/cafe/src/main/java/org/springframework/integration/samples/cafe/xml/CafeDemoAppBaristaHotAmqp.java
@@ -44,9 +44,9 @@ public class CafeDemoAppBaristaHotAmqp {
public static void main(String[] args) {
AbstractApplicationContext context =
- new ClassPathXmlApplicationContext(
+ CafeDemoAppUtilities.loadProfileContext(
"/META-INF/spring/integration/amqp/cafeDemo-amqp-baristaHot-xml.xml",
- CafeDemoAppBaristaHotAmqp.class);
+ CafeDemoAppBaristaHotAmqp.class,CafeDemoAppUtilities.DEV);
System.out.println("Press Enter/Return in the console to exit the Barista Hot App");
try {
diff --git a/applications/cafe/src/main/java/org/springframework/integration/samples/cafe/xml/CafeDemoAppOperationsAmqp.java b/applications/cafe/src/main/java/org/springframework/integration/samples/cafe/xml/CafeDemoAppOperationsAmqp.java
index ec894dc8..f2246647 100644
--- a/applications/cafe/src/main/java/org/springframework/integration/samples/cafe/xml/CafeDemoAppOperationsAmqp.java
+++ b/applications/cafe/src/main/java/org/springframework/integration/samples/cafe/xml/CafeDemoAppOperationsAmqp.java
@@ -50,9 +50,9 @@ public class CafeDemoAppOperationsAmqp {
public static void main(String[] args) {
AbstractApplicationContext context =
- new ClassPathXmlApplicationContext(
+ CafeDemoAppUtilities.loadProfileContext(
"/META-INF/spring/integration/amqp/cafeDemo-amqp-operations-xml.xml",
- CafeDemoAppOperationsAmqp.class);
+ CafeDemoAppOperationsAmqp.class,CafeDemoAppUtilities.DEV);
System.out.println("Press Enter/Return in the console to exit the Cafe Operations App");
try {
diff --git a/applications/cafe/src/main/java/org/springframework/integration/samples/cafe/xml/CafeDemoAppUtilities.java b/applications/cafe/src/main/java/org/springframework/integration/samples/cafe/xml/CafeDemoAppUtilities.java
new file mode 100644
index 00000000..6eac278f
--- /dev/null
+++ b/applications/cafe/src/main/java/org/springframework/integration/samples/cafe/xml/CafeDemoAppUtilities.java
@@ -0,0 +1,36 @@
+package org.springframework.integration.samples.cafe.xml;
+
+import org.springframework.context.support.AbstractApplicationContext;
+import org.springframework.context.support.GenericXmlApplicationContext;
+import org.springframework.integration.samples.cafe.Cafe;
+import org.springframework.integration.samples.cafe.DrinkType;
+import org.springframework.integration.samples.cafe.Order;
+
+public class CafeDemoAppUtilities {
+
+ /** spring profile for running locally */
+ public static final String DEV = "dev";
+ /** spring profile for running in cloud foundry */
+ public static final String CLOUD = "cloud";
+
+
+ /**
+ *
+ * @param path path to the file
+ * @param targetClass the class who's classloader we will use to laod the context file
+ * @param profile a profile name
+ * @return the spring context
+ */
+ public static AbstractApplicationContext loadProfileContext(String path, Class targetClass, String profile) {
+ GenericXmlApplicationContext ctx = new GenericXmlApplicationContext();
+ ctx.getEnvironment().setActiveProfiles(profile);
+ ctx.setClassLoader(targetClass.getClassLoader());
+ ctx.load(path);
+ ctx.refresh();
+ return ctx;
+ }
+
+
+
+
+}
diff --git a/applications/cafe/src/main/resources/META-INF/spring/integration/amqp/cafeDemo-amqp-config-xml.xml b/applications/cafe/src/main/resources/META-INF/spring/integration/amqp/cafeDemo-amqp-config-xml.xml
index cd82b341..3ac623d0 100644
--- a/applications/cafe/src/main/resources/META-INF/spring/integration/amqp/cafeDemo-amqp-config-xml.xml
+++ b/applications/cafe/src/main/resources/META-INF/spring/integration/amqp/cafeDemo-amqp-config-xml.xml
@@ -1,32 +1,39 @@
-
-
-
-
-
-
-
-
-
-
-
+
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+