├── src
├── site
│ ├── resources
│ │ ├── css
│ │ │ └── site.css
│ │ └── images
│ │ │ ├── eclipse1.png
│ │ │ ├── eclipse2.png
│ │ │ ├── eclipse3.png
│ │ │ ├── eclipse4.png
│ │ │ ├── layers.jpg
│ │ │ ├── frontpage.jpeg
│ │ │ └── banner-left.png
│ ├── apt
│ │ ├── handlingEventRegistration.apt
│ │ ├── roadmap.apt
│ │ ├── changelog.apt
│ │ ├── patterns-reference.apt
│ │ └── index.apt
│ ├── site.xml
│ └── xdoc
│ │ └── screencast.xml
├── main
│ ├── resources
│ │ ├── hibernate.properties
│ │ ├── jdbc.properties
│ │ ├── log4j.properties
│ │ ├── context-domain.xml
│ │ ├── messages_en.properties
│ │ ├── se
│ │ │ └── citerus
│ │ │ │ └── dddsample
│ │ │ │ └── infrastructure
│ │ │ │ └── persistence
│ │ │ │ └── hibernate
│ │ │ │ ├── Location.hbm.xml
│ │ │ │ ├── CarrierMovement.hbm.xml
│ │ │ │ ├── Leg.hbm.xml
│ │ │ │ ├── Voyage.hbm.xml
│ │ │ │ └── HandlingEvent.hbm.xml
│ │ ├── com
│ │ │ └── pathfinder
│ │ │ │ └── internal
│ │ │ │ └── applicationContext.xml
│ │ ├── context-infrastructure.xml
│ │ ├── context-application.xml
│ │ ├── hibernate.cfg.xml
│ │ └── context-infrastructure-persistence.xml
│ ├── webapp
│ │ ├── images
│ │ │ ├── cross.png
│ │ │ ├── error.png
│ │ │ ├── shade.png
│ │ │ ├── tick.png
│ │ │ ├── web_logo.png
│ │ │ ├── calendarTrigger.gif
│ │ │ ├── dddsample_logotype.png
│ │ │ └── dddsample_logotype_small.png
│ │ ├── WEB-INF
│ │ │ ├── decorators.xml
│ │ │ ├── jspf
│ │ │ │ └── include.jspf
│ │ │ ├── jsp
│ │ │ │ ├── admin
│ │ │ │ │ ├── list.jsp
│ │ │ │ │ ├── pickNewDestination.jsp
│ │ │ │ │ ├── show.jsp
│ │ │ │ │ ├── selectItinerary.jsp
│ │ │ │ │ └── registrationForm.jsp
│ │ │ │ ├── publicDecorator.jsp
│ │ │ │ ├── adminDecorator.jsp
│ │ │ │ └── pub
│ │ │ │ │ └── track.jsp
│ │ │ ├── tracking-servlet.xml
│ │ │ ├── booking-servlet.xml
│ │ │ └── web.xml
│ │ ├── admin.css
│ │ ├── index.jsp
│ │ └── calendar.css
│ └── java
│ │ ├── se
│ │ └── citerus
│ │ │ └── dddsample
│ │ │ ├── application
│ │ │ ├── util
│ │ │ │ ├── package.html
│ │ │ │ └── DateTestUtil.java
│ │ │ ├── impl
│ │ │ │ ├── package.html
│ │ │ │ ├── CargoInspectionServiceImpl.java
│ │ │ │ └── HandlingEventServiceImpl.java
│ │ │ ├── package.html
│ │ │ ├── CargoInspectionService.java
│ │ │ ├── ApplicationEvents.java
│ │ │ ├── HandlingEventService.java
│ │ │ └── BookingService.java
│ │ │ ├── interfaces
│ │ │ ├── tracking
│ │ │ │ ├── package.html
│ │ │ │ ├── TrackCommand.java
│ │ │ │ └── TrackCommandValidator.java
│ │ │ ├── booking
│ │ │ │ ├── facade
│ │ │ │ │ ├── internal
│ │ │ │ │ │ ├── assembler
│ │ │ │ │ │ │ ├── package.html
│ │ │ │ │ │ │ ├── LocationDTOAssembler.java
│ │ │ │ │ │ │ ├── CargoRoutingDTOAssembler.java
│ │ │ │ │ │ │ └── ItineraryCandidateDTOAssembler.java
│ │ │ │ │ │ └── package.html
│ │ │ │ │ ├── package.html
│ │ │ │ │ ├── dto
│ │ │ │ │ │ ├── LocationDTO.java
│ │ │ │ │ │ ├── RouteCandidateDTO.java
│ │ │ │ │ │ ├── LegDTO.java
│ │ │ │ │ │ ├── CargoRoutingDTO.java
│ │ │ │ │ │ └── package.html
│ │ │ │ │ └── BookingServiceFacade.java
│ │ │ │ └── web
│ │ │ │ │ ├── package.html
│ │ │ │ │ ├── BookingDispatcherServlet.java
│ │ │ │ │ ├── RegistrationCommand.java
│ │ │ │ │ └── RouteAssignmentCommand.java
│ │ │ └── handling
│ │ │ │ ├── file
│ │ │ │ └── package.html
│ │ │ │ ├── package.html
│ │ │ │ ├── ws
│ │ │ │ └── package.html
│ │ │ │ └── HandlingEventRegistrationAttempt.java
│ │ │ ├── domain
│ │ │ ├── model
│ │ │ │ ├── cargo
│ │ │ │ │ ├── package.html
│ │ │ │ │ ├── RoutingStatus.java
│ │ │ │ │ ├── TransportStatus.java
│ │ │ │ │ ├── CargoRepository.java
│ │ │ │ │ ├── TrackingId.java
│ │ │ │ │ ├── Leg.java
│ │ │ │ │ └── HandlingActivity.java
│ │ │ │ ├── voyage
│ │ │ │ │ ├── package.html
│ │ │ │ │ ├── VoyageRepository.java
│ │ │ │ │ ├── VoyageNumber.java
│ │ │ │ │ └── Schedule.java
│ │ │ │ ├── location
│ │ │ │ │ ├── package.html
│ │ │ │ │ ├── LocationRepository.java
│ │ │ │ │ ├── UnLocode.java
│ │ │ │ │ ├── SampleLocations.java
│ │ │ │ │ └── Location.java
│ │ │ │ ├── handling
│ │ │ │ │ ├── package.html
│ │ │ │ │ ├── UnknownLocationException.java
│ │ │ │ │ ├── HandlingEventRepository.java
│ │ │ │ │ ├── UnknownVoyageException.java
│ │ │ │ │ ├── CannotCreateHandlingEventException.java
│ │ │ │ │ ├── UnknownCargoException.java
│ │ │ │ │ └── HandlingHistory.java
│ │ │ │ └── package.html
│ │ │ ├── shared
│ │ │ │ ├── package.html
│ │ │ │ ├── experimental
│ │ │ │ │ ├── package.html
│ │ │ │ │ ├── Identity.java
│ │ │ │ │ ├── Entity.java
│ │ │ │ │ ├── DomainEvent.java
│ │ │ │ │ ├── ValueObject.java
│ │ │ │ │ ├── ValueObjectSupport.java
│ │ │ │ │ └── EntitySupport.java
│ │ │ │ ├── Entity.java
│ │ │ │ ├── ValueObject.java
│ │ │ │ ├── DomainEvent.java
│ │ │ │ ├── NotSpecification.java
│ │ │ │ ├── DomainObjectUtils.java
│ │ │ │ ├── OrSpecification.java
│ │ │ │ ├── AndSpecification.java
│ │ │ │ ├── AbstractSpecification.java
│ │ │ │ └── Specification.java
│ │ │ ├── service
│ │ │ │ ├── package.html
│ │ │ │ └── RoutingService.java
│ │ │ └── package.html
│ │ │ └── infrastructure
│ │ │ ├── routing
│ │ │ └── package.html
│ │ │ ├── messaging
│ │ │ └── jms
│ │ │ │ ├── package.html
│ │ │ │ ├── SimpleLoggingConsumer.java
│ │ │ │ ├── CargoHandledConsumer.java
│ │ │ │ └── HandlingEventRegistrationAttemptConsumer.java
│ │ │ └── persistence
│ │ │ └── hibernate
│ │ │ ├── package.html
│ │ │ ├── HibernateRepository.java
│ │ │ ├── VoyageRepositoryHibernate.java
│ │ │ ├── LocationRepositoryHibernate.java
│ │ │ ├── HandlingEventRepositoryHibernate.java
│ │ │ └── CargoRepositoryHibernate.java
│ │ └── com
│ │ ├── pathfinder
│ │ ├── api
│ │ │ ├── package.html
│ │ │ ├── TransitPath.java
│ │ │ ├── GraphTraversalService.java
│ │ │ └── TransitEdge.java
│ │ ├── internal
│ │ │ ├── package.html
│ │ │ └── GraphDAO.java
│ │ └── package.html
│ │ └── aggregator
│ │ ├── package.html
│ │ ├── package-info.java
│ │ ├── HandlingReportErrors.java
│ │ ├── SubmitReportResponse.java
│ │ ├── HandlingReportService.java
│ │ ├── HandlingReportErrors_Exception.java
│ │ ├── SubmitReport.java
│ │ └── HandlingReportServiceService.java
└── test
│ ├── resources
│ ├── handling_events.csv
│ ├── jdbc.properties
│ └── log4j.properties
│ └── java
│ └── se
│ └── citerus
│ └── dddsample
│ ├── domain
│ ├── shared
│ │ ├── AlwaysFalseSpec.java
│ │ ├── AlwaysTrueSpec.java
│ │ ├── NotSpecificationTest.java
│ │ ├── OrSpecificationTest.java
│ │ ├── AndSpecificationTest.java
│ │ └── experimental
│ │ │ ├── ValueObjectSupportTest.java
│ │ │ └── EntitySupportTest.java
│ └── model
│ │ ├── cargo
│ │ ├── LegTest.java
│ │ ├── TrackingIdTest.java
│ │ └── RouteSpecificationTest.java
│ │ ├── voyage
│ │ ├── ScheduleTest.java
│ │ ├── VoyageNumberTest.java
│ │ ├── VoyageTest.java
│ │ └── CarrierMovementTest.java
│ │ ├── location
│ │ ├── LocationTest.java
│ │ └── UnLocodeTest.java
│ │ └── handling
│ │ └── HandlingHistoryTest.java
│ ├── infrastructure
│ ├── persistence
│ │ ├── inmemory
│ │ │ ├── VoyageRepositoryInMem.java
│ │ │ ├── LocationRepositoryInMem.java
│ │ │ └── HandlingEventRepositoryInMem.java
│ │ └── hibernate
│ │ │ ├── LocationRepositoryTest.java
│ │ │ ├── CarrierMovementRepositoryTest.java
│ │ │ ├── HandlingEventRepositoryTest.java
│ │ │ └── AbstractRepositoryTest.java
│ └── messaging
│ │ └── stub
│ │ └── SynchronousApplicationEventsStub.java
│ ├── interfaces
│ ├── booking
│ │ ├── web
│ │ │ ├── CargoAdminControllerTest.java
│ │ │ └── ItinerarySelectionCommandTest.java
│ │ └── facade
│ │ │ └── internal
│ │ │ └── assembler
│ │ │ ├── LocationDTOAssemblerTest.java
│ │ │ └── CargoRoutingDTOAssemblerTest.java
│ └── tracking
│ │ └── TrackCommandValidatorTest.java
│ └── application
│ ├── BookingServiceTest.java
│ └── HandlingEventServiceTest.java
└── license.txt
/src/site/resources/css/site.css:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/src/main/resources/hibernate.properties:
--------------------------------------------------------------------------------
1 | hibernate.hbm2ddl.auto=create-drop
2 | hibernate.format_sql=true
--------------------------------------------------------------------------------
/src/main/webapp/images/cross.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/joolu/ddd-sample/HEAD/src/main/webapp/images/cross.png
--------------------------------------------------------------------------------
/src/main/webapp/images/error.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/joolu/ddd-sample/HEAD/src/main/webapp/images/error.png
--------------------------------------------------------------------------------
/src/main/webapp/images/shade.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/joolu/ddd-sample/HEAD/src/main/webapp/images/shade.png
--------------------------------------------------------------------------------
/src/main/webapp/images/tick.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/joolu/ddd-sample/HEAD/src/main/webapp/images/tick.png
--------------------------------------------------------------------------------
/src/main/webapp/images/web_logo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/joolu/ddd-sample/HEAD/src/main/webapp/images/web_logo.png
--------------------------------------------------------------------------------
/src/site/resources/images/eclipse1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/joolu/ddd-sample/HEAD/src/site/resources/images/eclipse1.png
--------------------------------------------------------------------------------
/src/site/resources/images/eclipse2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/joolu/ddd-sample/HEAD/src/site/resources/images/eclipse2.png
--------------------------------------------------------------------------------
/src/site/resources/images/eclipse3.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/joolu/ddd-sample/HEAD/src/site/resources/images/eclipse3.png
--------------------------------------------------------------------------------
/src/site/resources/images/eclipse4.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/joolu/ddd-sample/HEAD/src/site/resources/images/eclipse4.png
--------------------------------------------------------------------------------
/src/site/resources/images/layers.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/joolu/ddd-sample/HEAD/src/site/resources/images/layers.jpg
--------------------------------------------------------------------------------
/src/site/resources/images/frontpage.jpeg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/joolu/ddd-sample/HEAD/src/site/resources/images/frontpage.jpeg
--------------------------------------------------------------------------------
/src/main/webapp/images/calendarTrigger.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/joolu/ddd-sample/HEAD/src/main/webapp/images/calendarTrigger.gif
--------------------------------------------------------------------------------
/src/site/resources/images/banner-left.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/joolu/ddd-sample/HEAD/src/site/resources/images/banner-left.png
--------------------------------------------------------------------------------
/src/main/webapp/images/dddsample_logotype.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/joolu/ddd-sample/HEAD/src/main/webapp/images/dddsample_logotype.png
--------------------------------------------------------------------------------
/src/main/java/se/citerus/dddsample/application/util/package.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | Various utilities.
5 |
6 |
7 |
--------------------------------------------------------------------------------
/src/main/java/com/pathfinder/api/package.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | Public API for the pathfinder application.
5 |
6 |
7 |
--------------------------------------------------------------------------------
/src/main/java/com/aggregator/package.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | Generated from the upstream Aggregation Service WSDL
5 |
6 |
7 |
--------------------------------------------------------------------------------
/src/main/webapp/images/dddsample_logotype_small.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/joolu/ddd-sample/HEAD/src/main/webapp/images/dddsample_logotype_small.png
--------------------------------------------------------------------------------
/src/main/java/com/pathfinder/internal/package.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | Internal parts of the pathfinder application.
5 |
6 |
7 |
--------------------------------------------------------------------------------
/src/main/java/se/citerus/dddsample/interfaces/tracking/package.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | Public tracking web interface.
5 |
6 |
7 |
--------------------------------------------------------------------------------
/src/main/java/se/citerus/dddsample/application/impl/package.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | Implementation of the application layer.
5 |
6 |
7 |
--------------------------------------------------------------------------------
/src/main/java/se/citerus/dddsample/interfaces/booking/facade/internal/assembler/package.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | DTO assemblers.
5 |
6 |
7 |
--------------------------------------------------------------------------------
/src/site/apt/handlingEventRegistration.apt:
--------------------------------------------------------------------------------
1 | --------------------------------
2 | Registration of a handling event
3 | --------------------------------
4 |
5 | TODO
6 |
--------------------------------------------------------------------------------
/src/main/java/com/aggregator/package-info.java:
--------------------------------------------------------------------------------
1 | @javax.xml.bind.annotation.XmlSchema(namespace = "http://ws.handling.interfaces.dddsample.citerus.se/")
2 | package com.aggregator;
3 |
--------------------------------------------------------------------------------
/src/main/java/se/citerus/dddsample/domain/model/cargo/package.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | The cargo aggregate. Cargo is the aggregate root.
5 |
6 |
7 |
--------------------------------------------------------------------------------
/src/main/java/se/citerus/dddsample/domain/model/voyage/package.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | The voyage aggregate. Voyage is the aggregate root.
5 |
6 |
7 |
--------------------------------------------------------------------------------
/src/main/java/se/citerus/dddsample/domain/shared/package.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | Pattern interfaces and support code for the domain layer.
5 |
6 |
7 |
--------------------------------------------------------------------------------
/src/main/java/se/citerus/dddsample/interfaces/handling/file/package.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | Handles event registration by file upload.
5 |
6 |
7 |
--------------------------------------------------------------------------------
/src/main/java/se/citerus/dddsample/interfaces/handling/package.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | Interfaces for receiving handling events into the system.
5 |
6 |
7 |
--------------------------------------------------------------------------------
/src/main/java/se/citerus/dddsample/domain/model/location/package.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | The location aggregate. Location is the aggregate root.
5 |
6 |
7 |
--------------------------------------------------------------------------------
/src/main/java/se/citerus/dddsample/interfaces/booking/facade/internal/package.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | Internal parts of the remote facade API.
5 |
6 |
7 |
--------------------------------------------------------------------------------
/src/main/java/se/citerus/dddsample/interfaces/handling/ws/package.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | Web service interface for registering handling events.
5 |
6 |
7 |
--------------------------------------------------------------------------------
/src/main/java/se/citerus/dddsample/domain/model/handling/package.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | The handling aggregate. HandlingEvent is the aggregate root.
5 |
6 |
7 |
--------------------------------------------------------------------------------
/src/main/java/se/citerus/dddsample/infrastructure/routing/package.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | Communicates with the Pathfinder external routing service.
5 |
6 |
7 |
--------------------------------------------------------------------------------
/src/main/java/se/citerus/dddsample/interfaces/booking/web/package.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | Web user interfaces for booking, routing and re-routing cargo.
5 |
6 |
7 |
--------------------------------------------------------------------------------
/src/main/resources/jdbc.properties:
--------------------------------------------------------------------------------
1 | hibernate.connection.driver_class=org.hsqldb.jdbcDriver
2 | hibernate.connection.url=jdbc:hsqldb:mem:dddsample
3 | hibernate.connection.username=sa
4 | hibernate.connection.password=
--------------------------------------------------------------------------------
/src/test/resources/handling_events.csv:
--------------------------------------------------------------------------------
1 | 2009-03-06 12:30 ABC123 0200T USNYC LOAD
2 | 2009-03-08 04:00 ABC123 0200T USDAL UNLOAD
3 | 2009-03-09 08:12 ABC123 0300A USDAL LOAD
4 | 2009-03-12 19:25 ABC123 0300A FIHEL UNLOAD
5 |
--------------------------------------------------------------------------------
/src/test/resources/jdbc.properties:
--------------------------------------------------------------------------------
1 | hibernate.connection.driver_class=org.hsqldb.jdbcDriver
2 | hibernate.connection.url=jdbc:hsqldb:mem:dddsample_test
3 | hibernate.connection.username=sa
4 | hibernate.connection.password=
--------------------------------------------------------------------------------
/src/main/java/se/citerus/dddsample/infrastructure/messaging/jms/package.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | Asynchronous messaging implemented using JMS. This is part of the infrastructure.
5 |
6 |
7 |
--------------------------------------------------------------------------------
/src/main/java/se/citerus/dddsample/infrastructure/persistence/hibernate/package.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | Hibernate implementations of the repository interfaces. This is part of the infrastructure.
5 |
6 |
7 |
--------------------------------------------------------------------------------
/src/main/java/se/citerus/dddsample/domain/shared/experimental/package.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | Experimental versions of pattern interfaces and support code for the domain layer.
5 | Not used in the application.
6 |
7 |
8 |
--------------------------------------------------------------------------------
/src/test/java/se/citerus/dddsample/domain/shared/AlwaysFalseSpec.java:
--------------------------------------------------------------------------------
1 | package se.citerus.dddsample.domain.shared;
2 |
3 | public class AlwaysFalseSpec extends AbstractSpecification