Better date handling in route assigment.
Added voyage to handling activity, where applicable.
Next expected activity is now visible in the tracking interface.
Now possible to change destination of a cargo.
Minor touchups of the web pages.
Moved ExternalRoutingService into impl subpackage and renamed it RoutingServiceImpl, for consistency. We probably should try to find use-case based package names below application though.
Introduced asynchronous processing of incoming handling event registration attempts.
Removed the plain-delegation track() method from TrackingService (using repository directly in CargoTrackingController instead).
Fixed a few carrier movement -> voyage references in setters and JSP expressions.
Added cargoIsMisdirected() and cargoHasArrived() to DomainEventNotifier (but no consumers yet).
Routing a cargo is still broken due to database changes incompatible with the random route generation algorithm.
Introduced Voyage, Schedule and VoyageNumber. CarrierMovement is now a value object, CarrierMovementId is dropped.
Leg now has load/unload location and time, and a reference to a Voyage.
HandlingEvent references a Voyage instead of a CarrierMovement.
DeliveryHistory is renamed to Delivery.
(Yes, it's very broken right now, but it compiles)
Package "remote" renamed "remoting" for consistency.
The implementation of our routing service - which consists mainly of model translation and delegation - is moved to the application part, from the domain service layer. The routing service interface is part of our domain but the implementation is not, similar to repositories and their implementations.
Slight refinement of packge structure under application - service is split into things like messagning and remoting.
The external routing team application is moved out to its own top-level package, to highlight the fact that it is a completely separate application from booking/tracking.
Split routing service into two parts: "our" part with model translation, and remote service part for graph calculations. Still a bit sketchy though.
More flesh on RouteSpecification, with some ideas around factory methods for specifications.
Renamed a few service methods to match ubiquotous language more closely.
Pushed DTO assembly outside of service layer and into MVC controllers, pending creation of dedicated remoting layer. Service layer now uses pure domain model classes.
CarrierMovementId implements ValueObject.
Added Checkstyle configuration file that checks the sun coding conventions.
Misc CheckStyle fixes.
Removed magic numbers from HashCodeBuilder.
Created a separate sub package for DTO assemblers.
Minor refactorings to increase readability.
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.