I plan to create a simple webapp and illustrate using maven, hibernate, jpa, spring mvc, spring security, spring webflow etc.
And at the last point add Terracotta and see how easy it is to cluster a webapp and scale out.
Basically most of the stuffs that I am going to post here are things that I learnt when building http://reference.terracotta.org/examinator.
Yes the Examinator is live. And now you can play around with it.
You can find out more about it here.
I do not plan to rewrite the whole Examinator here, but show the glue points of making those cool technologies together.
Lets get going…
First we need a project. I am going to use the webapp-archetype to generate a skeleton for our project.
Using the quickstart guide, I changed the groupId and the artifactId to generate a project for myself like this:
mvn org.apache.maven.plugins:maven-archetype-plugin:1.0-alpha-7:create \
-DarchetypeGroupId=org.terracotta.maven.archetypes \
-DarchetypeArtifactId=webapp-archetype \
-DarchetypeVersion=1.2.1 \
-DgroupId=org.sanoujam \
-DartifactId=sample-tc-webapp \
-Dversion=1.0.0 \
-DremoteRepositories=http://www.terracotta.org/download/reflector/maven2
This created a project for me called sample-tc-webapp and generated a working project skeleton for me.
If you want, you can verify its running by:
cd sample-tc-webapp
mvn tc:run
This will bring up two tomcat nodes on your localhost. Accessing http://localhost:8080/sample-tc-webapp should show you a working web-app which is clustered with Terracotta. The other tomcat is running at http://localhost:8081/sample-tc-webapp
You can find the source code of this project at http://code.google.com/p/sample-tc-webapp/
The source can be browsed at http://sample-tc-webapp.googlecode.com/svn/tags/day1/
Stopping here for today…
Lets see if we can add Spring next time….