diff --git a/basic/helloworld/README.md b/basic/helloworld/README.md
index e8f3b687..6b3c2216 100644
--- a/basic/helloworld/README.md
+++ b/basic/helloworld/README.md
@@ -1,8 +1,37 @@
Hello World Sample
==================
-This is an obvious place to get started. It demonstrates a simple message flow represented by the diagram below:
+This is an obvious place to get started. This sample project contains 2 basic sample applications:
- Message -> Channel -> ServiceActivator -> QueueChannel
+* Hello World
+* Delayer Application
+
+## Hello World
+
+The Hello World application demonstrates a simple message flow represented by the diagram below:
+
+ Message -> Channel -> ServiceActivator -> QueueChannel
+
+To run the sample simply execute **HelloWorldApp** in package **org.springframework.integration.samples.helloworld**. You can also execute that class using the [Exec Maven Plugin](http://mojo.codehaus.org/exec-maven-plugin/):
+
+ $ mvn clean package exec:java -P hello
+
+You should see the following output:
+
+ INFO : org.springframework.integration.samples.helloworld.HelloWorldApp - ==> HelloWorldDemo: Hello World
+
+## Delayer Application
+
+This simple application will print out the current system time twice every 20 seconds.
+
+More specifically, an **Inbound Channel Adapter** polls for the current system time 2 times every 20 seconds (20000 milliseconds). The resulting message contains as payload the time in milliseconds and the message is sent to a **Logging Channel Adapter**, which will print the time to the command prompt.
+
+To run the sample simply execute **DelayerApp** in package **org.springframework.integration.samples.helloworld**. You can also execute that class using the [Exec Maven Plugin](http://mojo.codehaus.org/exec-maven-plugin/):
+
+ $ mvn clean package exec:java -P delayer
+
+You should see output like the following:
+
+ INFO : org.springframework.integration.samples.helloworld - 1328892135471
+ INFO : org.springframework.integration.samples.helloworld - 1328892135524
-To run sample simply execute a test case in the **org.springframework.integration.samples.helloworld** package.
\ No newline at end of file
diff --git a/basic/helloworld/pom.xml b/basic/helloworld/pom.xml
index 4f50472d..b6fb6eda 100644
--- a/basic/helloworld/pom.xml
+++ b/basic/helloworld/pom.xml
@@ -12,7 +12,24 @@
2.1.0.RELEASE
1.2.16
4.10
+ org.springframework.integration.samples.helloworld.HelloWorldApp
+
+
+
+ hello
+
+ org.springframework.integration.samples.helloworld.HelloWorldApp
+
+
+
+ delayer
+
+ org.springframework.integration.samples.helloworld.DelayerApp
+
+
+
+
org.springframework.integration
@@ -45,6 +62,14 @@
false
+
+ org.codehaus.mojo
+ exec-maven-plugin
+ 1.2
+
+ ${java.main.class}
+
+
diff --git a/basic/helloworld/src/main/java/org/springframework/integration/samples/helloworld/DelayerApp.java b/basic/helloworld/src/main/java/org/springframework/integration/samples/helloworld/DelayerApp.java
index 804466eb..3182582f 100644
--- a/basic/helloworld/src/main/java/org/springframework/integration/samples/helloworld/DelayerApp.java
+++ b/basic/helloworld/src/main/java/org/springframework/integration/samples/helloworld/DelayerApp.java
@@ -5,11 +5,17 @@ import org.springframework.context.support.ClassPathXmlApplicationContext;
public class DelayerApp {
/**
- * @param args
+ * Simple application that polls the current system time 2 times every
+ * 20 seconds (20000 milliseconds).
+ *
+ * The resulting message contains the time in milliseconds and the message
+ * is routed to a Logging Channel Adapter which will print the time to the
+ * command prompt.
+ *
+ * @param args Not used.
*/
public static void main(String[] args) throws Exception{
new ClassPathXmlApplicationContext("META-INF/spring/integration/delay.xml");
- System.in.read();
}
}
diff --git a/basic/helloworld/src/main/resources/META-INF/spring/integration/delay.xml b/basic/helloworld/src/main/resources/META-INF/spring/integration/delay.xml
index 7345602b..2e650f8e 100644
--- a/basic/helloworld/src/main/resources/META-INF/spring/integration/delay.xml
+++ b/basic/helloworld/src/main/resources/META-INF/spring/integration/delay.xml
@@ -11,8 +11,8 @@
-
-
-
+
+
+
diff --git a/basic/helloworld/src/main/resources/log4j.properties b/basic/helloworld/src/main/resources/log4j.properties
deleted file mode 100644
index eb601e8e..00000000
--- a/basic/helloworld/src/main/resources/log4j.properties
+++ /dev/null
@@ -1,9 +0,0 @@
-log4j.rootCategory=WARN, stdout
-
-log4j.appender.stdout=org.apache.log4j.ConsoleAppender
-log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
-log4j.appender.stdout.layout.ConversionPattern=%d{ABSOLUTE} %5p %t %c{2}:%L - %m%n
-
-#log4j.category.org.springframework=WARN
-#log4j.category.org.springframework.integration.sftp=TRACE
-log4j.category.org.springframework=TRACE
diff --git a/basic/helloworld/src/main/resources/log4j.xml b/basic/helloworld/src/main/resources/log4j.xml
index f391e2ed..678b69b3 100644
--- a/basic/helloworld/src/main/resources/log4j.xml
+++ b/basic/helloworld/src/main/resources/log4j.xml
@@ -24,5 +24,5 @@
-
+
\ No newline at end of file