This is a learning project, and can be used as a starting point for a RESTful web service implemented with Spring 3.1 and Java configuration.
Because it's a learning project, most of it's implementation is explained carefully and in great detail, in a series of posts:
- Java based Spring Configuration
- Usage of new concepts introduced with Spring 3.1
- How to set up Integration Testing with the Maven Cargo plugin
- Spring MVC for the REST web service
- Driving API discoverability with integration test
- Implementation of Discoverability with Spring
- REST advanced content type negotiation
- Security of the REST web service with Spring Security 3.1
- Basic and Digest authentication for the same URI mapping of the RESTful service
- The Persistence Layer with Spring 3.1 and Hibernate
- The Persistence Layer with Spring 3.1 and JPA
- Simplifying the Data Access Layer with Spring and Java Generics
- Integration testing of the REST service
- Comprehensive unit testing of the web tier, focusing on relevant behaviors to avoid brittleness
- Spring 3.1 with Jackson, JAXB
- Hibernate 3.6 (to be moved to Hibernate 4.0 soon)
- Junit, Mockito, Hamcrest, rest-assured
======================
- improvements in validation and HTTP response codes
- improving the marshaling of the server stack trace
- expand on the design document, covering: details of the transaction strategy