Running Tapestry5 + Maven on Google App Engine

 

1) Checking out Tapestry


As explained on the tapestry website , you should use the maven-tapestry-archetype

 

While I'm writting this article, the lastest stable version of tapestry is 5.1.0.5, but there are an issue concerning tapestry/gae compatibility.

However, this bug is corrected in tapestry 5.1.0.6. If you still want to run tapestry 5.1.0.5 on GAE, you should use this quick fix :

Create a new class org.apache.tapestry5.internal.antlr.PropertyExpressionLexer and put this code on :


 

2) Configuring the project for GAE


Drop a file named "appengine-web.xml" in src/main/webapp/WEB-INF

The file should looks like this :

If you want to know how to synchronize GAE and maven version you should read this excellent article writed by Antoine : http://blog.dooapp.com/synchronize-maven-and-gae-application-version

Of course, you'll need to download the GAE SDK for java from here : http://code.google.com/intl/fr/appengine/downloads.html

3) Running the tapestry project on gae


Before starting to code, I suggest you to try running the simple tapestry example on gae.

 

  • Go to your project
  • mvn package
  • go to GAEHOME/bin
  • ./appcfg.sh update YOURPROJECTHOME/target/YOURPROJECTNAME
  • Enter your mail and password
  • go to http://YOURPROJECTNAME.appspot.com

For now, there are some issues when you run the gae server on your localhost. So I suggest you to test everything you do online.

4) What's Next


Now you can run tapestry on gae, if you want to upload your application with maven, I suggest you to have a look at this plugin : http://code.google.com/p/maven-gae-plugin/

And of course configuring a continuous integration server can be very useful to automatically build and deploy your application: http://hudson-ci.org/