Made persistence configuration less intrusive by going with defaults everywhere, making it easier on the eyes. Empty default constructors are pushed to the bottom of the class.
Introduced CarrierId and embedded the DeliveryHistory in Cargo, aligning the persistence with the model as described in the DDD book.
Location.NULL changed name to Location.UNKNOWN.
Changed persistence layer to point to the InMem repositories
Added test-context-persistence.xml to still be able to test hibernate repositories
Added HandlingEventService (first lab version...)
Added HandlingEvent- and Carrier-Repository.
Modified some equality operators to fit better with HandlingEventRepository (Maybe unneccessary after all, but it's working...)
Domain model persisted using Hibernate annotations.
Repository test against an actual database.
Hibernate needs package-protected no-args constructors, which blocks the use of final in many places.
"Long id" properties are excluded from equals and hashcode builders, to enforce the use of natural business keys that are separate from persistence details.
Sitemesh introduced, slight rearranging of JSP structure.
Focus input search field.
Use XHTML 1.0 TR.
Distribution mgmt in POM allows deployment of Maven-generated site.
Brought back the xmlns attribute in the POM file (again), please don't remove!
Hibernate annotations dependencies introduced.
Removed auto deploy (the scanIntervalSeconds confguration property) since this seems to cause problems with file locking in the hsql database when auto deploy tries to reload the database schema
Tightened the CargoTrackingController a bit, treating "no cargo found" same way as a binding error
Introduced a Spring context for the web layer, where all web support components go.
Introduced the RequestContext attribute as "rc" in views.
Removed unneeded "unknown cargo" JSP.
c:out not needed anymore.
Modified InMem repository to cast exception if tryng to find cargo with track id DAE
Added new workflow for unknown cargo (new view and modified controller) instead of if statement i jsp page
Set command class in controller constructor, since it's tightly coupled to code, not configurable.
Use assertEquals in repository test, making it pass.
Added spring-test jar to pom.
No logfile appender in test-logging.
Fixed Cargo.currentLocation when still at origin location.
Moved CargoRepository to repository package, for consistency and to postpone further discussion.
HibernateTemplate replaced by pure Hibernate in repository layer.
Introduced Spring-injected and transaction-managed test classes.
Introduced transaction annotation in service layer.
Place classpath-root files under resources/ directory, which is the prefered location.
Split context files per layer, allowing easy testing of a subset of the layers.
Split Jdbc and Hibernate configuration in separate test and production files, where that makes sense, and keep common properties in a single location (context file). Properties files are pulled into the context by Spring.
Split out a javax.sql.DataSource bean, which is handy for a number of reasons.
Hibernate configuration prepared, but no classes are mapped. Test config is in-memory and verbose, production is file-based and quieter.
Transaction is annotation-driven in the service layer.
Jetty Maven plugin added, and added context loading listener to web.xml. It's now possible to run "mvn jetty:run" and find the tracking page on localhost:8080/dddsample.
Added dev.java.net maven repository with JTA artifact available.
Created new repository package. Added two new repository implementations, one for InMem (static, compile time setup) and a code skeleton for a Hibernate version