diff --git a/java/demo/README b/java/demo/README
new file mode 100644
index 000000000..29a46a1ae
--- /dev/null
+++ b/java/demo/README
@@ -0,0 +1,16 @@
+How to install the Appengine SDK to the Maven local repository?
+Note that this needs to be done only once.
+ $ mvn gae:unpack
+ Note that you don't need to manually download any SDK.
+
+How to generate the WAR?
+ $ mvn package
+ $ mvn war:war
+ Note that this must be done before running the webapp locally and before
+ deploying it to Appengine.
+
+How to run the webapp locally?
+ $ mvn gae:run
+
+How to deploy the webapp to Appengine?
+ $ mvn gae:update
diff --git a/java/demo/pom.xml b/java/demo/pom.xml
new file mode 100644
index 000000000..11f34f69a
--- /dev/null
+++ b/java/demo/pom.xml
@@ -0,0 +1,103 @@
+
+
+ 4.0.0
+
+ libphonenumber-parent
+ com.googlecode.libphonenumber
+ 4.4-SNAPSHOT
+
+ com.googlecode.libphonenumber
+ demo
+ 4.4-SNAPSHOT
+
+
+ 1.5.4
+
+
+
+
+ mvnrepository
+ http://mvnrepository.com/artifact/
+
+ true
+
+
+
+
+
+
+ javax.servlet
+ servlet-api
+ 2.5
+
+
+ org.apache.commons
+ commons-io
+ 1.3.2
+
+
+ commons-fileupload
+ commons-fileupload
+ 1.2
+
+
+ com.googlecode.libphonenumber
+ libphonenumber
+ 4.4-SNAPSHOT
+
+
+ com.googlecode.libphonenumber
+ geocoder
+ 1.8-SNAPSHOT
+
+
+
+
+ src
+ test
+
+
+ org.apache.maven.plugins
+ maven-compiler-plugin
+ 2.3.2
+
+ 1.6
+ 1.6
+
+
+
+ net.kindleit
+ maven-gae-plugin
+ 0.9.1
+
+
+ org.apache.maven.plugins
+ maven-war-plugin
+ 2.1.1
+
+ war
+
+
+
+ org.mortbay.jetty
+ maven-jetty-plugin
+ 6.1.10
+
+ webapp
+ 10
+
+ /
+
+
+
+ 8080
+ 60000
+
+
+
+
+
+
+
+
diff --git a/java/pom.xml b/java/pom.xml
index d20e3159e..4f6b21b1d 100644
--- a/java/pom.xml
+++ b/java/pom.xml
@@ -80,6 +80,7 @@
libphonenumbergeocoder
+ demo
diff --git a/tools/java/data/README b/tools/java/data/README
index 099cbf71e..29a46a1ae 100644
--- a/tools/java/data/README
+++ b/tools/java/data/README
@@ -4,9 +4,10 @@ Note that this needs to be done only once.
Note that you don't need to manually download any SDK.
How to generate the WAR?
-Note that this must be done before running the webapp locally and before
-deploying it to Appengine.
+ $ mvn package
$ mvn war:war
+ Note that this must be done before running the webapp locally and before
+ deploying it to Appengine.
How to run the webapp locally?
$ mvn gae:run