Brought EventService closer to the domain by renaming it DomainEventNotifier and use ubiquitous language in the method signatures (fireHandlingEventRegistered is now cargoWasHandled) in order to make it naturally fit in among the domain services.
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.
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.
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.