Huuuuge commit: restructured into project hierarchy, no other code changes. Everything compiles, tests run, but deployment is broken and will be remodeled.
HandlingEventService.registerHandlingEvent() signature takes value objects instead of HandlingEventRegistrationAttempt, decoupling it from message queues.
Creating sample data using domain objects and storing with Hibernate, for simplicity.
Estimated time of arrival is now a property of the Cargo aggregate.
Tracking web interface has new look for 1.1.
Admin interface shows more time related information.
Serverside now handles change of destination (no UI yet though)
Switched to Apache CXF for JAX-WS implementation (Metro is truly horrible).
Upgraded Spring, Hibernate, ActiveMQ etc to latest releases, cleaned up the pom a bit. Lived through the farce that is Java logging frameworks, once again...
Some restructuring of web service related classes.
Moved web interfaces, web service and RMI remoting facade to iface package (temporarily renamed due to refactoring problems in IntelliJ when a package is named as a reserved word)
Big slew of changes (too big) leading up to draft presentation:
Removed unneeded constructors in Cargo and UnLocode.
Fixed spelling error in StatusCode - "e before i except after c", or whatever that was :-)
Cascade Itinerary/Leg on Cargo persist.
Cargo registration and routing web administration interface.
Better randomization in RoutingServiceImpl.
Replaced more test locations with the SampleLocations instances.
Added asynchronous event emission whenever a handling event is registered, so that interested parties can be notified if a cargo is misdirected (is unloaded, is late, has arrived, or whatever).
Two different implementations a available: JMS and a simple thread-based one.
Also, the cargo service track method now uses TrackingId in the signature, for consistency.