1. Eric Mignot
  2. petstore



A sample Java application to demonstrate applying the principles and practices described in Steve Freeman and Nat Pryce book, Growing Object Oriented Software, Guided by Tests.


This application is built on top of Spring MVC 3.0, Spring Core 3.0, Hibernate 3.5, Velocity 1.6, Sitemesh 2 and Maven 2/3.

I hear people asking, why such choices? I don't pretend these are the sexiest nor best frameworks for doing web development in Java. In fact I don't think they are. I wanted to choose technologies a lot Java developers have to deal (or struggle) with, with the following objectives in mind:

  • Make it relevant and useful to a large number of Java developers using open source technologies
  • Make the point that technologies should not be preventing you from applying the best practices described in the book.
  • Learn Spring MVC myself, after doing essentially rails development recently
  • Don't make it too easy, like in real life ;-)

Getting Started

See the wiki for information on building and starting the application.