├── Chapter3
└── cargotracker
│ ├── Readme.md
│ ├── pom.xml
│ └── src
│ └── main
│ ├── java
│ └── com
│ │ └── practicalddd
│ │ └── cargotracker
│ │ ├── CargoMainApplication.java
│ │ ├── booking
│ │ ├── application
│ │ │ └── internal
│ │ │ │ ├── commandservices
│ │ │ │ └── CargoBookingCommandService.java
│ │ │ │ ├── outboundservices
│ │ │ │ └── acl
│ │ │ │ │ └── ExternalCargoRoutingService.java
│ │ │ │ └── queryservices
│ │ │ │ └── CargoBookingQueryService.java
│ │ ├── domain
│ │ │ └── model
│ │ │ │ ├── aggregates
│ │ │ │ ├── BookingId.java
│ │ │ │ └── Cargo.java
│ │ │ │ ├── commands
│ │ │ │ ├── BookCargoCommand.java
│ │ │ │ └── RouteCargoCommand.java
│ │ │ │ ├── entities
│ │ │ │ └── Location.java
│ │ │ │ └── valueobjects
│ │ │ │ ├── BookingAmount.java
│ │ │ │ ├── CargoHandlingActivity.java
│ │ │ │ ├── CargoItinerary.java
│ │ │ │ ├── Delivery.java
│ │ │ │ ├── LastCargoHandledEvent.java
│ │ │ │ ├── Leg.java
│ │ │ │ ├── RouteSpecification.java
│ │ │ │ ├── RoutingStatus.java
│ │ │ │ ├── TransportStatus.java
│ │ │ │ └── Voyage.java
│ │ ├── infrastructure
│ │ │ ├── repositories
│ │ │ │ └── jpa
│ │ │ │ │ └── CargoRepository.java
│ │ │ └── services
│ │ │ │ └── http
│ │ │ │ └── ExternalCargoRoutingClient.java
│ │ └── interfaces
│ │ │ └── rest
│ │ │ ├── CargoBookingController.java
│ │ │ ├── CargoRoutingController.java
│ │ │ ├── dto
│ │ │ ├── BookCargoResource.java
│ │ │ └── RouteCargoResource.java
│ │ │ └── transform
│ │ │ ├── BookCargoCommandDTOAssembler.java
│ │ │ └── RouteCargoCommandDTOAssembler.java
│ │ ├── handling
│ │ ├── application
│ │ │ └── internal
│ │ │ │ ├── commandservices
│ │ │ │ └── HandlingActivityRegistrationCommandService.java
│ │ │ │ └── queryservices
│ │ │ │ └── HandlingHistoryService.java
│ │ ├── domain
│ │ │ └── model
│ │ │ │ ├── aggregates
│ │ │ │ └── HandlingActivity.java
│ │ │ │ ├── commands
│ │ │ │ └── HandlingActivityRegistrationCommand.java
│ │ │ │ └── valueobjects
│ │ │ │ ├── CargoBookingId.java
│ │ │ │ ├── HandlingActivityHistory.java
│ │ │ │ ├── Location.java
│ │ │ │ ├── Type.java
│ │ │ │ └── VoyageNumber.java
│ │ ├── infrastructure
│ │ │ └── repositories
│ │ │ │ └── jpa
│ │ │ │ └── HandlingActivityRepository.java
│ │ └── interfaces
│ │ │ └── rest
│ │ │ ├── CargoHandlingController.java
│ │ │ ├── dto
│ │ │ └── HandlingActivityRegistrationResource.java
│ │ │ └── transform
│ │ │ └── HandlingActivityRegistrationCommandDTOAssembler.java
│ │ ├── routing
│ │ ├── application
│ │ │ └── internal
│ │ │ │ └── queryservices
│ │ │ │ └── CargoRoutingQueryService.java
│ │ ├── domain
│ │ │ └── model
│ │ │ │ ├── aggregates
│ │ │ │ └── Voyage.java
│ │ │ │ ├── entities
│ │ │ │ └── CarrierMovement.java
│ │ │ │ └── valueobjects
│ │ │ │ ├── Location.java
│ │ │ │ ├── Schedule.java
│ │ │ │ └── VoyageNumber.java
│ │ ├── infrastructure
│ │ │ └── repositories
│ │ │ │ └── jpa
│ │ │ │ └── VoyageRepository.java
│ │ └── interfaces
│ │ │ └── rest
│ │ │ └── CargoRoutingController.java
│ │ ├── shareddomain
│ │ ├── events
│ │ │ ├── CargoBookedEvent.java
│ │ │ ├── CargoHandledEvent.java
│ │ │ ├── CargoHandledEventData.java
│ │ │ ├── CargoRoutedEvent.java
│ │ │ └── CargoRoutedEventData.java
│ │ └── model
│ │ │ ├── TransitEdge.java
│ │ │ └── TransitPath.java
│ │ └── tracking
│ │ ├── application
│ │ └── internal
│ │ │ └── commandservices
│ │ │ └── AssignTrackingIdCommandService.java
│ │ ├── domain
│ │ └── model
│ │ │ ├── aggregates
│ │ │ ├── TrackingActivity.java
│ │ │ └── TrackingNumber.java
│ │ │ ├── commands
│ │ │ ├── AddTrackingEventCommand.java
│ │ │ └── AssignTrackingNumberCommand.java
│ │ │ ├── entities
│ │ │ ├── TrackingActivityEvent.java
│ │ │ └── TrackingBookingId.java
│ │ │ └── valueobjects
│ │ │ ├── TrackingEvent.java
│ │ │ ├── TrackingEventType.java
│ │ │ ├── TrackingLocation.java
│ │ │ └── TrackingVoyageNumber.java
│ │ ├── infrastructure
│ │ └── repositories
│ │ │ └── jpa
│ │ │ └── TrackingRepository.java
│ │ └── interfaces
│ │ └── events
│ │ ├── CargoBookedEventHandler.java
│ │ ├── CargoHandledEventHandler.java
│ │ ├── CargoRoutedEventHandler.java
│ │ └── transform
│ │ ├── TrackingActivityCommandEventAssembler.java
│ │ └── TrackingDetailsCommandEventAssembler.java
│ ├── liberty
│ └── config
│ │ └── server.xml
│ ├── resources
│ └── META-INF
│ │ ├── beans.xml
│ │ └── persistence.xml
│ └── webapp
│ ├── WEB-INF
│ ├── beans.xml
│ └── web.xml
│ └── index.html
├── Chapter4
├── Readme.md
├── Utilities
│ ├── rabbitadaptor-1.0.pom
│ ├── rabbitadaptor-cdi-1.0.jar
│ ├── rabbitadaptor-cdi-1.0.pom
│ ├── rabbitadaptor-core-1.0.jar
│ └── rabbitadaptor-core-1.0.pom
├── bookingms
│ ├── .dockerignore
│ ├── .idea
│ │ ├── compiler.xml
│ │ ├── encodings.xml
│ │ ├── misc.xml
│ │ └── workspace.xml
│ ├── Dockerfile
│ ├── README.md
│ ├── app.yaml
│ ├── etc
│ │ └── checkstyle.xml
│ ├── pom.xml
│ └── src
│ │ ├── main
│ │ ├── java
│ │ │ └── com
│ │ │ │ └── practicalddd
│ │ │ │ └── cargotracker
│ │ │ │ ├── bookingms
│ │ │ │ ├── Main.java
│ │ │ │ ├── application
│ │ │ │ │ └── internal
│ │ │ │ │ │ ├── commandservices
│ │ │ │ │ │ └── CargoBookingCommandService.java
│ │ │ │ │ │ ├── outboundservices
│ │ │ │ │ │ └── acl
│ │ │ │ │ │ │ └── ExternalCargoRoutingService.java
│ │ │ │ │ │ └── queryservices
│ │ │ │ │ │ └── CargoBookingQueryService.java
│ │ │ │ ├── domain
│ │ │ │ │ └── model
│ │ │ │ │ │ ├── aggregates
│ │ │ │ │ │ ├── BookingId.java
│ │ │ │ │ │ └── Cargo.java
│ │ │ │ │ │ ├── commands
│ │ │ │ │ │ ├── BookCargoCommand.java
│ │ │ │ │ │ └── RouteCargoCommand.java
│ │ │ │ │ │ ├── entities
│ │ │ │ │ │ └── Location.java
│ │ │ │ │ │ └── valueobjects
│ │ │ │ │ │ ├── BookingAmount.java
│ │ │ │ │ │ ├── CargoHandlingActivity.java
│ │ │ │ │ │ ├── CargoItinerary.java
│ │ │ │ │ │ ├── Delivery.java
│ │ │ │ │ │ ├── LastCargoHandledEvent.java
│ │ │ │ │ │ ├── Leg.java
│ │ │ │ │ │ ├── RouteSpecification.java
│ │ │ │ │ │ ├── RoutingStatus.java
│ │ │ │ │ │ ├── TransportStatus.java
│ │ │ │ │ │ └── Voyage.java
│ │ │ │ ├── infrastructure
│ │ │ │ │ ├── brokers
│ │ │ │ │ │ └── rabbitmq
│ │ │ │ │ │ │ ├── BookingEventBinder.java
│ │ │ │ │ │ │ └── RoutingEventBinder.java
│ │ │ │ │ ├── repositories
│ │ │ │ │ │ └── jpa
│ │ │ │ │ │ │ └── CargoRepository.java
│ │ │ │ │ └── services
│ │ │ │ │ │ └── http
│ │ │ │ │ │ └── ExternalCargoRoutingClient.java
│ │ │ │ ├── interfaces
│ │ │ │ │ ├── events
│ │ │ │ │ │ └── transform
│ │ │ │ │ │ │ └── CargoRoutedEventHandler.java
│ │ │ │ │ └── rest
│ │ │ │ │ │ ├── CargoBookingController.java
│ │ │ │ │ │ ├── CargoRoutingController.java
│ │ │ │ │ │ ├── dto
│ │ │ │ │ │ ├── BookCargoResource.java
│ │ │ │ │ │ └── RouteCargoResource.java
│ │ │ │ │ │ └── transform
│ │ │ │ │ │ ├── BookCargoCommandDTOAssembler.java
│ │ │ │ │ │ └── RouteCargoCommandDTOAssembler.java
│ │ │ │ └── package-info.java
│ │ │ │ └── shareddomain
│ │ │ │ ├── events
│ │ │ │ ├── CargoBookedEvent.java
│ │ │ │ ├── CargoHandledEvent.java
│ │ │ │ ├── CargoHandledEventData.java
│ │ │ │ ├── CargoRoutedEvent.java
│ │ │ │ └── CargoRoutedEventData.java
│ │ │ │ └── model
│ │ │ │ ├── TransitEdge.java
│ │ │ │ └── TransitPath.java
│ │ └── resources
│ │ │ ├── META-INF
│ │ │ ├── beans.xml
│ │ │ ├── microprofile-config.properties
│ │ │ └── persistence.xml
│ │ │ └── logging.properties
│ │ └── test
│ │ └── resources
│ │ └── META-INF
│ │ └── microprofile-config.properties
├── handlingms
│ ├── .dockerignore
│ ├── .idea
│ │ ├── compiler.xml
│ │ ├── encodings.xml
│ │ ├── misc.xml
│ │ ├── uiDesigner.xml
│ │ └── workspace.xml
│ ├── Dockerfile
│ ├── README.md
│ ├── app.yaml
│ ├── etc
│ │ └── checkstyle.xml
│ ├── pom.xml
│ └── src
│ │ ├── main
│ │ ├── java
│ │ │ └── com
│ │ │ │ └── practicalddd
│ │ │ │ └── cargotracker
│ │ │ │ ├── handlingms
│ │ │ │ ├── Main.java
│ │ │ │ ├── application
│ │ │ │ │ └── internal
│ │ │ │ │ │ ├── commandservices
│ │ │ │ │ │ └── HandlingActivityRegistrationCommandService.java
│ │ │ │ │ │ └── queryservices
│ │ │ │ │ │ └── HandlingHistoryService.java
│ │ │ │ ├── domain
│ │ │ │ │ └── model
│ │ │ │ │ │ ├── aggregates
│ │ │ │ │ │ └── HandlingActivity.java
│ │ │ │ │ │ ├── commands
│ │ │ │ │ │ └── HandlingActivityRegistrationCommand.java
│ │ │ │ │ │ └── valueobjects
│ │ │ │ │ │ ├── CargoBookingId.java
│ │ │ │ │ │ ├── HandlingActivityHistory.java
│ │ │ │ │ │ ├── Location.java
│ │ │ │ │ │ ├── Type.java
│ │ │ │ │ │ └── VoyageNumber.java
│ │ │ │ ├── infrastructure
│ │ │ │ │ ├── brokers
│ │ │ │ │ │ └── rabbitmq
│ │ │ │ │ │ │ └── HandlingEventBinder.java
│ │ │ │ │ └── jpa
│ │ │ │ │ │ └── HandlingActivityRepository.java
│ │ │ │ ├── interfaces
│ │ │ │ │ └── rest
│ │ │ │ │ │ ├── CargoHandlingController.java
│ │ │ │ │ │ ├── dto
│ │ │ │ │ │ └── HandlingActivityRegistrationResource.java
│ │ │ │ │ │ └── transform
│ │ │ │ │ │ └── HandlingActivityRegistrationCommandDTOAssembler.java
│ │ │ │ └── package-info.java
│ │ │ │ └── shareddomain
│ │ │ │ ├── events
│ │ │ │ ├── CargoBookedEvent.java
│ │ │ │ ├── CargoHandledEvent.java
│ │ │ │ ├── CargoHandledEventData.java
│ │ │ │ ├── CargoRoutedEvent.java
│ │ │ │ └── CargoRoutedEventData.java
│ │ │ │ └── model
│ │ │ │ ├── TransitEdge.java
│ │ │ │ └── TransitPath.java
│ │ └── resources
│ │ │ ├── META-INF
│ │ │ ├── beans.xml
│ │ │ ├── microprofile-config.properties
│ │ │ └── persistence.xml
│ │ │ └── logging.properties
│ │ └── test
│ │ └── resources
│ │ └── META-INF
│ │ └── microprofile-config.properties
├── routingms
│ ├── .dockerignore
│ ├── .idea
│ │ ├── compiler.xml
│ │ ├── encodings.xml
│ │ ├── misc.xml
│ │ ├── uiDesigner.xml
│ │ └── workspace.xml
│ ├── Dockerfile
│ ├── README.md
│ ├── app.yaml
│ ├── etc
│ │ └── checkstyle.xml
│ ├── pom.xml
│ └── src
│ │ ├── main
│ │ ├── java
│ │ │ └── com
│ │ │ │ └── practicalddd
│ │ │ │ └── cargotracker
│ │ │ │ ├── routingms
│ │ │ │ ├── Main.java
│ │ │ │ ├── application
│ │ │ │ │ └── internal
│ │ │ │ │ │ └── queryservices
│ │ │ │ │ │ └── CargoRoutingQueryService.java
│ │ │ │ ├── domain
│ │ │ │ │ └── model
│ │ │ │ │ │ ├── aggregates
│ │ │ │ │ │ └── Voyage.java
│ │ │ │ │ │ ├── entities
│ │ │ │ │ │ └── CarrierMovement.java
│ │ │ │ │ │ └── valueobjects
│ │ │ │ │ │ ├── Location.java
│ │ │ │ │ │ ├── Schedule.java
│ │ │ │ │ │ └── VoyageNumber.java
│ │ │ │ ├── infrastructure
│ │ │ │ │ └── repositories
│ │ │ │ │ │ └── jpa
│ │ │ │ │ │ └── VoyageRepository.java
│ │ │ │ ├── interfaces
│ │ │ │ │ └── rest
│ │ │ │ │ │ └── CargoRoutingController.java
│ │ │ │ └── package-info.java
│ │ │ │ └── shareddomain
│ │ │ │ ├── events
│ │ │ │ ├── CargoBookedEvent.java
│ │ │ │ ├── CargoHandledEvent.java
│ │ │ │ ├── CargoHandledEventData.java
│ │ │ │ ├── CargoRoutedEvent.java
│ │ │ │ └── CargoRoutedEventData.java
│ │ │ │ └── model
│ │ │ │ ├── TransitEdge.java
│ │ │ │ └── TransitPath.java
│ │ └── resources
│ │ │ ├── META-INF
│ │ │ ├── beans.xml
│ │ │ ├── microprofile-config.properties
│ │ │ └── persistence.xml
│ │ │ └── logging.properties
│ │ └── test
│ │ └── resources
│ │ └── META-INF
│ │ └── microprofile-config.properties
└── trackingms
│ ├── .idea
│ ├── compiler.xml
│ ├── encodings.xml
│ ├── libraries
│ │ ├── Maven__com_fasterxml_jackson_core_jackson_annotations_2_9_9.xml
│ │ ├── Maven__com_fasterxml_jackson_core_jackson_core_2_9_9.xml
│ │ ├── Maven__com_fasterxml_jackson_core_jackson_databind_2_9_9.xml
│ │ ├── Maven__com_fasterxml_jackson_dataformat_jackson_dataformat_yaml_2_9_9.xml
│ │ ├── Maven__com_google_protobuf_protobuf_java_3_5_1.xml
│ │ ├── Maven__com_netflix_archaius_archaius_core_0_4_1.xml
│ │ ├── Maven__com_netflix_hystrix_hystrix_core_1_5_18.xml
│ │ ├── Maven__com_practicalddd_cargotracker_rabbitadaptor_cdi_1_0.xml
│ │ ├── Maven__com_practicalddd_cargotracker_rabbitadaptor_core_1_0.xml
│ │ ├── Maven__com_rabbitmq_amqp_client_5_7_2.xml
│ │ ├── Maven__com_typesafe_config_1_3_3.xml
│ │ ├── Maven__com_zaxxer_HikariCP_2_7_8.xml
│ │ ├── Maven__commons_beanutils_commons_beanutils_1_9_3.xml
│ │ ├── Maven__commons_collections_commons_collections_3_2_2.xml
│ │ ├── Maven__commons_configuration_commons_configuration_1_8.xml
│ │ ├── Maven__commons_io_commons_io_2_6.xml
│ │ ├── Maven__commons_lang_commons_lang_2_6.xml
│ │ ├── Maven__commons_logging_commons_logging_1_2.xml
│ │ ├── Maven__io_helidon_bundles_helidon_bundles_config_1_2_0.xml
│ │ ├── Maven__io_helidon_bundles_helidon_bundles_security_1_2_0.xml
│ │ ├── Maven__io_helidon_common_helidon_common_1_2_0.xml
│ │ ├── Maven__io_helidon_common_helidon_common_configurable_1_2_0.xml
│ │ ├── Maven__io_helidon_common_helidon_common_context_1_2_0.xml
│ │ ├── Maven__io_helidon_common_helidon_common_http_1_2_0.xml
│ │ ├── Maven__io_helidon_common_helidon_common_key_util_1_2_0.xml
│ │ ├── Maven__io_helidon_common_helidon_common_reactive_1_2_0.xml
│ │ ├── Maven__io_helidon_common_helidon_common_service_loader_1_2_0.xml
│ │ ├── Maven__io_helidon_config_helidon_config_1_2_0.xml
│ │ ├── Maven__io_helidon_config_helidon_config_encryption_1_2_0.xml
│ │ ├── Maven__io_helidon_config_helidon_config_hocon_1_2_0.xml
│ │ ├── Maven__io_helidon_config_helidon_config_object_mapping_1_2_0.xml
│ │ ├── Maven__io_helidon_config_helidon_config_yaml_1_2_0.xml
│ │ ├── Maven__io_helidon_health_helidon_health_1_2_0.xml
│ │ ├── Maven__io_helidon_health_helidon_health_checks_1_2_0.xml
│ │ ├── Maven__io_helidon_integrations_cdi_helidon_integrations_cdi_datasource_1_2_0.xml
│ │ ├── Maven__io_helidon_integrations_cdi_helidon_integrations_cdi_datasource_hikaricp_1_2_0.xml
│ │ ├── Maven__io_helidon_integrations_cdi_helidon_integrations_cdi_delegates_1_2_0.xml
│ │ ├── Maven__io_helidon_integrations_cdi_helidon_integrations_cdi_eclipselink_1_2_0.xml
│ │ ├── Maven__io_helidon_integrations_cdi_helidon_integrations_cdi_jpa_1_2_0.xml
│ │ ├── Maven__io_helidon_integrations_cdi_helidon_integrations_cdi_jpa_weld_1_2_0.xml
│ │ ├── Maven__io_helidon_integrations_cdi_helidon_integrations_cdi_jta_1_2_0.xml
│ │ ├── Maven__io_helidon_integrations_cdi_helidon_integrations_cdi_jta_weld_1_2_0.xml
│ │ ├── Maven__io_helidon_integrations_cdi_helidon_integrations_cdi_reference_counted_context_1_2_0.xml
│ │ ├── Maven__io_helidon_jersey_helidon_jersey_client_1_2_0.xml
│ │ ├── Maven__io_helidon_jersey_helidon_jersey_common_1_2_0.xml
│ │ ├── Maven__io_helidon_jersey_helidon_jersey_media_jsonp_1_2_0.xml
│ │ ├── Maven__io_helidon_jersey_helidon_jersey_server_1_2_0.xml
│ │ ├── Maven__io_helidon_media_helidon_media_common_1_2_0.xml
│ │ ├── Maven__io_helidon_media_jsonp_helidon_media_jsonp_common_1_2_0.xml
│ │ ├── Maven__io_helidon_media_jsonp_helidon_media_jsonp_server_1_2_0.xml
│ │ ├── Maven__io_helidon_metrics_helidon_metrics_1_2_0.xml
│ │ ├── Maven__io_helidon_microprofile_bundles_helidon_microprofile_1_1_1_2_0.xml
│ │ ├── Maven__io_helidon_microprofile_bundles_helidon_microprofile_1_2_1_2_0.xml
│ │ ├── Maven__io_helidon_microprofile_bundles_helidon_microprofile_2_2_1_2_0.xml
│ │ ├── Maven__io_helidon_microprofile_config_helidon_microprofile_config_1_2_0.xml
│ │ ├── Maven__io_helidon_microprofile_config_helidon_microprofile_config_cdi_1_2_0.xml
│ │ ├── Maven__io_helidon_microprofile_health_helidon_microprofile_health_1_2_0.xml
│ │ ├── Maven__io_helidon_microprofile_helidon_microprofile_fault_tolerance_1_2_0.xml
│ │ ├── Maven__io_helidon_microprofile_helidon_microprofile_security_1_2_0.xml
│ │ ├── Maven__io_helidon_microprofile_jwt_helidon_microprofile_jwt_auth_1_2_0.xml
│ │ ├── Maven__io_helidon_microprofile_jwt_helidon_microprofile_jwt_auth_cdi_1_2_0.xml
│ │ ├── Maven__io_helidon_microprofile_metrics_helidon_microprofile_metrics_1_2_0.xml
│ │ ├── Maven__io_helidon_microprofile_openapi_helidon_microprofile_openapi_1_2_0.xml
│ │ ├── Maven__io_helidon_microprofile_rest_client_helidon_microprofile_rest_client_1_2_0.xml
│ │ ├── Maven__io_helidon_microprofile_server_helidon_microprofile_server_1_2_0.xml
│ │ ├── Maven__io_helidon_microprofile_tracing_helidon_microprofile_tracing_1_2_0.xml
│ │ ├── Maven__io_helidon_openapi_helidon_openapi_1_2_0.xml
│ │ ├── Maven__io_helidon_security_abac_helidon_security_abac_policy_1_2_0.xml
│ │ ├── Maven__io_helidon_security_abac_helidon_security_abac_role_1_2_0.xml
│ │ ├── Maven__io_helidon_security_abac_helidon_security_abac_scope_1_2_0.xml
│ │ ├── Maven__io_helidon_security_abac_helidon_security_abac_time_1_2_0.xml
│ │ ├── Maven__io_helidon_security_helidon_security_1_2_0.xml
│ │ ├── Maven__io_helidon_security_helidon_security_annotations_1_2_0.xml
│ │ ├── Maven__io_helidon_security_helidon_security_jwt_1_2_0.xml
│ │ ├── Maven__io_helidon_security_helidon_security_util_1_2_0.xml
│ │ ├── Maven__io_helidon_security_integration_helidon_security_integration_common_1_2_0.xml
│ │ ├── Maven__io_helidon_security_integration_helidon_security_integration_jersey_1_2_0.xml
│ │ ├── Maven__io_helidon_security_integration_helidon_security_integration_webserver_1_2_0.xml
│ │ ├── Maven__io_helidon_security_providers_helidon_security_providers_abac_1_2_0.xml
│ │ ├── Maven__io_helidon_security_providers_helidon_security_providers_common_1_2_0.xml
│ │ ├── Maven__io_helidon_security_providers_helidon_security_providers_header_1_2_0.xml
│ │ ├── Maven__io_helidon_security_providers_helidon_security_providers_http_auth_1_2_0.xml
│ │ ├── Maven__io_helidon_security_providers_helidon_security_providers_http_sign_1_2_0.xml
│ │ ├── Maven__io_helidon_security_providers_helidon_security_providers_jwt_1_2_0.xml
│ │ ├── Maven__io_helidon_security_providers_helidon_security_providers_oidc_1_2_0.xml
│ │ ├── Maven__io_helidon_security_providers_helidon_security_providers_oidc_common_1_2_0.xml
│ │ ├── Maven__io_helidon_serviceconfiguration_helidon_serviceconfiguration_api_1_2_0.xml
│ │ ├── Maven__io_helidon_serviceconfiguration_helidon_serviceconfiguration_config_source_1_2_0.xml
│ │ ├── Maven__io_helidon_serviceconfiguration_helidon_serviceconfiguration_hikaricp_1_2_0.xml
│ │ ├── Maven__io_helidon_tracing_helidon_tracing_1_2_0.xml
│ │ ├── Maven__io_helidon_tracing_helidon_tracing_config_1_2_0.xml
│ │ ├── Maven__io_helidon_tracing_helidon_tracing_jersey_1_2_0.xml
│ │ ├── Maven__io_helidon_tracing_helidon_tracing_jersey_client_1_2_0.xml
│ │ ├── Maven__io_helidon_webserver_helidon_webserver_1_2_0.xml
│ │ ├── Maven__io_helidon_webserver_helidon_webserver_jersey_1_2_0.xml
│ │ ├── Maven__io_netty_netty_buffer_4_1_34_Final.xml
│ │ ├── Maven__io_netty_netty_codec_4_1_34_Final.xml
│ │ ├── Maven__io_netty_netty_codec_http2_4_1_34_Final.xml
│ │ ├── Maven__io_netty_netty_codec_http_4_1_34_Final.xml
│ │ ├── Maven__io_netty_netty_common_4_1_34_Final.xml
│ │ ├── Maven__io_netty_netty_handler_4_1_34_Final.xml
│ │ ├── Maven__io_netty_netty_resolver_4_1_34_Final.xml
│ │ ├── Maven__io_netty_netty_transport_4_1_34_Final.xml
│ │ ├── Maven__io_opentracing_opentracing_api_0_31_0.xml
│ │ ├── Maven__io_opentracing_opentracing_noop_0_31_0.xml
│ │ ├── Maven__io_opentracing_opentracing_util_0_31_0.xml
│ │ ├── Maven__io_projectreactor_reactor_core_3_1_5_RELEASE.xml
│ │ ├── Maven__io_reactivex_rxjava_1_2_0.xml
│ │ ├── Maven__io_smallrye_smallrye_open_api_1_1_1.xml
│ │ ├── Maven__jakarta_annotation_jakarta_annotation_api_1_3_4.xml
│ │ ├── Maven__jakarta_json_bind_jakarta_json_bind_api_1_0_1.xml
│ │ ├── Maven__jakarta_json_jakarta_json_api_1_1_5.xml
│ │ ├── Maven__jakarta_persistence_jakarta_persistence_api_2_2_2.xml
│ │ ├── Maven__jakarta_ws_rs_jakarta_ws_rs_api_2_1_5.xml
│ │ ├── Maven__javax_activation_javax_activation_api_1_2_0.xml
│ │ ├── Maven__javax_annotation_javax_annotation_api_1_3_1.xml
│ │ ├── Maven__javax_enterprise_cdi_api_2_0.xml
│ │ ├── Maven__javax_inject_javax_inject_1.xml
│ │ ├── Maven__javax_json_javax_json_api_1_1_2.xml
│ │ ├── Maven__javax_transaction_javax_transaction_api_1_2.xml
│ │ ├── Maven__javax_validation_validation_api_2_0_1_Final.xml
│ │ ├── Maven__mysql_mysql_connector_java_8_0_11.xml
│ │ ├── Maven__net_jodah_failsafe_1_1_0.xml
│ │ ├── Maven__org_eclipse_microprofile_config_microprofile_config_api_1_3.xml
│ │ ├── Maven__org_eclipse_microprofile_fault_tolerance_microprofile_fault_tolerance_api_2_0.xml
│ │ ├── Maven__org_eclipse_microprofile_health_microprofile_health_api_2_0_1.xml
│ │ ├── Maven__org_eclipse_microprofile_jwt_microprofile_jwt_auth_api_1_1_1.xml
│ │ ├── Maven__org_eclipse_microprofile_metrics_microprofile_metrics_api_1_1.xml
│ │ ├── Maven__org_eclipse_microprofile_openapi_microprofile_openapi_api_1_1_2.xml
│ │ ├── Maven__org_eclipse_microprofile_opentracing_microprofile_opentracing_api_1_3_1.xml
│ │ ├── Maven__org_eclipse_microprofile_rest_client_microprofile_rest_client_api_1_2_1.xml
│ │ ├── Maven__org_eclipse_persistence_jakarta_persistence_2_2_2.xml
│ │ ├── Maven__org_eclipse_persistence_org_eclipse_persistence_antlr_2_7_4.xml
│ │ ├── Maven__org_eclipse_persistence_org_eclipse_persistence_asm_2_7_4.xml
│ │ ├── Maven__org_eclipse_persistence_org_eclipse_persistence_core_2_7_4.xml
│ │ ├── Maven__org_eclipse_persistence_org_eclipse_persistence_jpa_2_7_4.xml
│ │ ├── Maven__org_eclipse_persistence_org_eclipse_persistence_jpa_jpql_2_7_4.xml
│ │ ├── Maven__org_eclipse_yasson_1_0_3.xml
│ │ ├── Maven__org_glassfish_hk2_external_aopalliance_repackaged_2_5_0.xml
│ │ ├── Maven__org_glassfish_hk2_external_jakarta_inject_2_5_0.xml
│ │ ├── Maven__org_glassfish_hk2_hk2_api_2_5_0.xml
│ │ ├── Maven__org_glassfish_hk2_hk2_locator_2_5_0.xml
│ │ ├── Maven__org_glassfish_hk2_hk2_utils_2_5_0.xml
│ │ ├── Maven__org_glassfish_hk2_osgi_resource_locator_1_0_3.xml
│ │ ├── Maven__org_glassfish_jakarta_json_1_1_5.xml
│ │ ├── Maven__org_glassfish_javax_json_1_1_2.xml
│ │ ├── Maven__org_glassfish_jersey_core_jersey_client_2_29.xml
│ │ ├── Maven__org_glassfish_jersey_core_jersey_common_2_29.xml
│ │ ├── Maven__org_glassfish_jersey_core_jersey_server_2_29.xml
│ │ ├── Maven__org_glassfish_jersey_ext_cdi_jersey_cdi1x_2_29.xml
│ │ ├── Maven__org_glassfish_jersey_ext_cdi_jersey_weld2_se_2_29.xml
│ │ ├── Maven__org_glassfish_jersey_ext_microprofile_jersey_mp_rest_client_2_29.xml
│ │ ├── Maven__org_glassfish_jersey_inject_jersey_hk2_2_29.xml
│ │ ├── Maven__org_glassfish_jersey_media_jersey_media_json_binding_2_29.xml
│ │ ├── Maven__org_glassfish_jersey_media_jersey_media_json_processing_2_29.xml
│ │ ├── Maven__org_glassfish_jsonp_jaxrs_1_1_5.xml
│ │ ├── Maven__org_hdrhistogram_HdrHistogram_2_1_9.xml
│ │ ├── Maven__org_javassist_javassist_3_22_0_CR2.xml
│ │ ├── Maven__org_jboss_classfilewriter_jboss_classfilewriter_1_2_4_Final.xml
│ │ ├── Maven__org_jboss_jandex_2_1_1_Final.xml
│ │ ├── Maven__org_jboss_jboss_transaction_spi_7_6_0_Final.xml
│ │ ├── Maven__org_jboss_logging_jboss_logging_3_2_1_Final.xml
│ │ ├── Maven__org_jboss_narayana_arjunacore_arjuna_5_9_3_Final.xml
│ │ ├── Maven__org_jboss_narayana_common_5_9_3_Final.xml
│ │ ├── Maven__org_jboss_narayana_jta_cdi_5_9_3_Final.xml
│ │ ├── Maven__org_jboss_narayana_jta_jta_5_9_3_Final.xml
│ │ ├── Maven__org_jboss_shrinkwrap_shrinkwrap_api_1_2_6.xml
│ │ ├── Maven__org_jboss_spec_javax_annotation_jboss_annotations_api_1_3_spec_1_0_0_Final.xml
│ │ ├── Maven__org_jboss_spec_javax_el_jboss_el_api_3_0_spec_1_0_13_Final.xml
│ │ ├── Maven__org_jboss_spec_javax_interceptor_jboss_interceptors_api_1_2_spec_1_0_0_Final.xml
│ │ ├── Maven__org_jboss_spec_javax_transaction_jboss_transaction_api_1_2_spec_1_0_0_Final.xml
│ │ ├── Maven__org_jboss_weld_environment_weld_environment_common_3_1_1_Final.xml
│ │ ├── Maven__org_jboss_weld_module_weld_jta_3_1_1_Final.xml
│ │ ├── Maven__org_jboss_weld_probe_weld_probe_core_3_1_1_Final.xml
│ │ ├── Maven__org_jboss_weld_se_weld_se_core_3_1_1_Final.xml
│ │ ├── Maven__org_jboss_weld_weld_api_3_1_Final.xml
│ │ ├── Maven__org_jboss_weld_weld_core_impl_3_1_1_Final.xml
│ │ ├── Maven__org_jboss_weld_weld_spi_3_1_Final.xml
│ │ ├── Maven__org_junit_jupiter_junit_jupiter_api_5_0_1.xml
│ │ ├── Maven__org_junit_jupiter_junit_jupiter_engine_5_0_1.xml
│ │ ├── Maven__org_junit_platform_junit_platform_commons_1_0_1.xml
│ │ ├── Maven__org_junit_platform_junit_platform_engine_1_0_1.xml
│ │ ├── Maven__org_opentest4j_opentest4j_1_0_0.xml
│ │ ├── Maven__org_osgi_org_osgi_annotation_versioning_1_0_0.xml
│ │ ├── Maven__org_reactivestreams_reactive_streams_1_0_2.xml
│ │ ├── Maven__org_slf4j_slf4j_api_1_7_26.xml
│ │ ├── Maven__org_slf4j_slf4j_jdk14_1_7_26.xml
│ │ └── Maven__org_yaml_snakeyaml_1_24.xml
│ ├── misc.xml
│ ├── modules.xml
│ ├── uiDesigner.xml
│ └── workspace.xml
│ ├── Dockerfile
│ ├── README.md
│ ├── app.yaml
│ ├── etc
│ └── checkstyle.xml
│ ├── pom.xml
│ ├── src
│ ├── main
│ │ ├── java
│ │ │ └── com
│ │ │ │ └── practicalddd
│ │ │ │ └── cargotracker
│ │ │ │ ├── shareddomain
│ │ │ │ ├── events
│ │ │ │ │ ├── CargoBookedEvent.java
│ │ │ │ │ ├── CargoHandledEvent.java
│ │ │ │ │ ├── CargoHandledEventData.java
│ │ │ │ │ ├── CargoRoutedEvent.java
│ │ │ │ │ └── CargoRoutedEventData.java
│ │ │ │ └── model
│ │ │ │ │ ├── TransitEdge.java
│ │ │ │ │ └── TransitPath.java
│ │ │ │ └── trackingms
│ │ │ │ ├── Main.java
│ │ │ │ ├── application
│ │ │ │ └── internal
│ │ │ │ │ └── commandservices
│ │ │ │ │ └── AssignTrackingIdCommandService.java
│ │ │ │ ├── domain
│ │ │ │ └── model
│ │ │ │ │ ├── aggregates
│ │ │ │ │ ├── TrackingActivity.java
│ │ │ │ │ └── TrackingNumber.java
│ │ │ │ │ ├── commands
│ │ │ │ │ ├── AddTrackingEventCommand.java
│ │ │ │ │ └── AssignTrackingNumberCommand.java
│ │ │ │ │ ├── entities
│ │ │ │ │ ├── BookingId.java
│ │ │ │ │ └── TrackingActivityEvent.java
│ │ │ │ │ └── valueobjects
│ │ │ │ │ ├── TrackingEvent.java
│ │ │ │ │ ├── TrackingEventType.java
│ │ │ │ │ ├── TrackingLocation.java
│ │ │ │ │ └── TrackingVoyageNumber.java
│ │ │ │ ├── infrastructure
│ │ │ │ ├── brokers
│ │ │ │ │ └── rabbitmq
│ │ │ │ │ │ ├── BookingEventBinder.java
│ │ │ │ │ │ ├── HandlingEventBinder.java
│ │ │ │ │ │ └── RoutingEventBinder.java
│ │ │ │ └── repositories
│ │ │ │ │ └── jpa
│ │ │ │ │ └── TrackingRepository.java
│ │ │ │ ├── interfaces
│ │ │ │ └── events
│ │ │ │ │ ├── CargoBookedEventHandler.java
│ │ │ │ │ ├── CargoHandledEventHandler.java
│ │ │ │ │ ├── CargoRoutedEventHandler.java
│ │ │ │ │ └── transform
│ │ │ │ │ ├── TrackingActivityCommandEventAssembler.java
│ │ │ │ │ └── TrackingDetailsCommandEventAssembler.java
│ │ │ │ └── package-info.java
│ │ └── resources
│ │ │ ├── META-INF
│ │ │ ├── beans.xml
│ │ │ ├── microprofile-config.properties
│ │ │ └── persistence.xml
│ │ │ └── logging.properties
│ └── test
│ │ └── resources
│ │ └── META-INF
│ │ └── microprofile-config.properties
│ └── trackingms.iml
├── Chapter5
├── Readme.md
├── bookingms
│ ├── .gitignore
│ ├── .mvn
│ │ └── wrapper
│ │ │ ├── MavenWrapperDownloader.java
│ │ │ ├── maven-wrapper.jar
│ │ │ └── maven-wrapper.properties
│ ├── mvnw
│ ├── mvnw.cmd
│ ├── pom.xml
│ └── src
│ │ ├── main
│ │ ├── .DS_Store
│ │ ├── java
│ │ │ ├── .DS_Store
│ │ │ └── com
│ │ │ │ ├── .DS_Store
│ │ │ │ └── practicalddd
│ │ │ │ ├── .DS_Store
│ │ │ │ └── cargotracker
│ │ │ │ ├── .DS_Store
│ │ │ │ ├── bookingms
│ │ │ │ ├── .DS_Store
│ │ │ │ ├── BookingmsApplication.java
│ │ │ │ ├── application
│ │ │ │ │ ├── .DS_Store
│ │ │ │ │ └── internal
│ │ │ │ │ │ ├── .DS_Store
│ │ │ │ │ │ ├── commandservices
│ │ │ │ │ │ └── CargoBookingCommandService.java
│ │ │ │ │ │ ├── outboundservices
│ │ │ │ │ │ ├── CargoEventPublisherService.java
│ │ │ │ │ │ └── acl
│ │ │ │ │ │ │ └── ExternalCargoRoutingService.java
│ │ │ │ │ │ └── queryservices
│ │ │ │ │ │ └── CargoBookingQueryService.java
│ │ │ │ ├── domain
│ │ │ │ │ ├── .DS_Store
│ │ │ │ │ └── model
│ │ │ │ │ │ ├── .DS_Store
│ │ │ │ │ │ ├── aggregates
│ │ │ │ │ │ ├── BookingId.java
│ │ │ │ │ │ └── Cargo.java
│ │ │ │ │ │ ├── commands
│ │ │ │ │ │ ├── BookCargoCommand.java
│ │ │ │ │ │ └── RouteCargoCommand.java
│ │ │ │ │ │ ├── entities
│ │ │ │ │ │ └── Location.java
│ │ │ │ │ │ └── valueobjects
│ │ │ │ │ │ ├── BookingAmount.java
│ │ │ │ │ │ ├── CargoHandlingActivity.java
│ │ │ │ │ │ ├── CargoItinerary.java
│ │ │ │ │ │ ├── Delivery.java
│ │ │ │ │ │ ├── LastCargoHandledEvent.java
│ │ │ │ │ │ ├── Leg.java
│ │ │ │ │ │ ├── RouteSpecification.java
│ │ │ │ │ │ ├── RoutingStatus.java
│ │ │ │ │ │ ├── TransportStatus.java
│ │ │ │ │ │ └── Voyage.java
│ │ │ │ ├── infrastructure
│ │ │ │ │ ├── .DS_Store
│ │ │ │ │ ├── brokers
│ │ │ │ │ │ └── rabbitmq
│ │ │ │ │ │ │ └── CargoEventSource.java
│ │ │ │ │ └── repositories
│ │ │ │ │ │ └── CargoRepository.java
│ │ │ │ └── interfaces
│ │ │ │ │ ├── .DS_Store
│ │ │ │ │ └── rest
│ │ │ │ │ ├── CargoBookingController.java
│ │ │ │ │ ├── CargoRoutingController.java
│ │ │ │ │ ├── dto
│ │ │ │ │ ├── BookCargoResource.java
│ │ │ │ │ └── RouteCargoResource.java
│ │ │ │ │ └── transform
│ │ │ │ │ ├── BookCargoCommandDTOAssembler.java
│ │ │ │ │ └── RouteCargoCommandDTOAssembler.java
│ │ │ │ └── shareddomain
│ │ │ │ ├── .DS_Store
│ │ │ │ ├── events
│ │ │ │ ├── CargoBookedEvent.java
│ │ │ │ ├── CargoBookedEventData.java
│ │ │ │ ├── CargoHandledEvent.java
│ │ │ │ ├── CargoHandledEventData.java
│ │ │ │ ├── CargoRoutedEvent.java
│ │ │ │ └── CargoRoutedEventData.java
│ │ │ │ └── model
│ │ │ │ ├── TransitEdge.java
│ │ │ │ └── TransitPath.java
│ │ └── resources
│ │ │ └── application.properties
│ │ └── test
│ │ └── java
│ │ └── com
│ │ └── practicalddd
│ │ └── cargotracker
│ │ └── bookingms
│ │ └── BookingmsApplicationTests.java
├── handlingms
│ ├── .gitignore
│ ├── .mvn
│ │ └── wrapper
│ │ │ ├── MavenWrapperDownloader.java
│ │ │ ├── maven-wrapper.jar
│ │ │ └── maven-wrapper.properties
│ ├── mvnw
│ ├── mvnw.cmd
│ ├── pom.xml
│ └── src
│ │ ├── main
│ │ ├── .DS_Store
│ │ ├── java
│ │ │ ├── .DS_Store
│ │ │ └── com
│ │ │ │ ├── .DS_Store
│ │ │ │ └── practicalddd
│ │ │ │ ├── .DS_Store
│ │ │ │ └── cargotracker
│ │ │ │ ├── .DS_Store
│ │ │ │ ├── handlingms
│ │ │ │ ├── .DS_Store
│ │ │ │ ├── HandlingmsApplication.java
│ │ │ │ ├── application
│ │ │ │ │ ├── .DS_Store
│ │ │ │ │ └── internal
│ │ │ │ │ │ ├── .DS_Store
│ │ │ │ │ │ ├── commandservices
│ │ │ │ │ │ └── HandlingActivityRegistrationCommandService.java
│ │ │ │ │ │ └── outboundservices
│ │ │ │ │ │ └── CargoEventPublisherService.java
│ │ │ │ ├── domain
│ │ │ │ │ ├── .DS_Store
│ │ │ │ │ └── model
│ │ │ │ │ │ ├── .DS_Store
│ │ │ │ │ │ ├── aggregates
│ │ │ │ │ │ └── HandlingActivity.java
│ │ │ │ │ │ ├── commands
│ │ │ │ │ │ └── HandlingActivityRegistrationCommand.java
│ │ │ │ │ │ └── valueobjects
│ │ │ │ │ │ ├── CargoBookingId.java
│ │ │ │ │ │ ├── HandlingActivityHistory.java
│ │ │ │ │ │ ├── Location.java
│ │ │ │ │ │ ├── Type.java
│ │ │ │ │ │ └── VoyageNumber.java
│ │ │ │ ├── infrastructure
│ │ │ │ │ ├── .DS_Store
│ │ │ │ │ ├── brokers
│ │ │ │ │ │ └── rabbitmq
│ │ │ │ │ │ │ └── CargoEventSource.java
│ │ │ │ │ └── repositories
│ │ │ │ │ │ ├── .DS_Store
│ │ │ │ │ │ └── jpa
│ │ │ │ │ │ └── HandlingActivityRepository.java
│ │ │ │ └── interfaces
│ │ │ │ │ ├── .DS_Store
│ │ │ │ │ ├── events
│ │ │ │ │ └── .DS_Store
│ │ │ │ │ └── rest
│ │ │ │ │ ├── .DS_Store
│ │ │ │ │ ├── CargoHandlingController.java
│ │ │ │ │ ├── dto
│ │ │ │ │ └── HandlingActivityRegistrationResource.java
│ │ │ │ │ └── transform
│ │ │ │ │ └── HandlingActivityRegistrationCommandDTOAssembler.java
│ │ │ │ └── shareddomain
│ │ │ │ ├── .DS_Store
│ │ │ │ ├── events
│ │ │ │ ├── CargoBookedEvent.java
│ │ │ │ ├── CargoBookedEventData.java
│ │ │ │ ├── CargoHandledEvent.java
│ │ │ │ ├── CargoHandledEventData.java
│ │ │ │ ├── CargoRoutedEvent.java
│ │ │ │ └── CargoRoutedEventData.java
│ │ │ │ └── model
│ │ │ │ ├── TransitEdge.java
│ │ │ │ └── TransitPath.java
│ │ └── resources
│ │ │ └── application.properties
│ │ └── test
│ │ └── java
│ │ └── com
│ │ └── practicalddd
│ │ └── cargotracker
│ │ └── handlingms
│ │ └── HandlingmsApplicationTests.java
├── routingms
│ ├── .gitignore
│ ├── .mvn
│ │ └── wrapper
│ │ │ ├── MavenWrapperDownloader.java
│ │ │ ├── maven-wrapper.jar
│ │ │ └── maven-wrapper.properties
│ ├── mvnw
│ ├── mvnw.cmd
│ ├── pom.xml
│ └── src
│ │ ├── main
│ │ ├── .DS_Store
│ │ ├── java
│ │ │ ├── .DS_Store
│ │ │ └── com
│ │ │ │ ├── .DS_Store
│ │ │ │ └── practicalddd
│ │ │ │ ├── .DS_Store
│ │ │ │ └── cargotracker
│ │ │ │ ├── .DS_Store
│ │ │ │ ├── routingms
│ │ │ │ ├── .DS_Store
│ │ │ │ ├── RoutingmsApplication.java
│ │ │ │ ├── application
│ │ │ │ │ ├── .DS_Store
│ │ │ │ │ └── internal
│ │ │ │ │ │ ├── .DS_Store
│ │ │ │ │ │ └── queryservices
│ │ │ │ │ │ └── CargoRoutingQueryService.java
│ │ │ │ ├── domain
│ │ │ │ │ ├── .DS_Store
│ │ │ │ │ └── model
│ │ │ │ │ │ ├── .DS_Store
│ │ │ │ │ │ ├── aggregates
│ │ │ │ │ │ └── Voyage.java
│ │ │ │ │ │ ├── entities
│ │ │ │ │ │ └── CarrierMovement.java
│ │ │ │ │ │ └── valueobjects
│ │ │ │ │ │ ├── Location.java
│ │ │ │ │ │ ├── Schedule.java
│ │ │ │ │ │ └── VoyageNumber.java
│ │ │ │ ├── infrastructure
│ │ │ │ │ ├── .DS_Store
│ │ │ │ │ ├── brokers
│ │ │ │ │ │ └── .DS_Store
│ │ │ │ │ └── repositories
│ │ │ │ │ │ ├── .DS_Store
│ │ │ │ │ │ └── jpa
│ │ │ │ │ │ └── VoyageRepository.java
│ │ │ │ └── interfaces
│ │ │ │ │ ├── .DS_Store
│ │ │ │ │ └── rest
│ │ │ │ │ ├── .DS_Store
│ │ │ │ │ └── CargoRoutingController.java
│ │ │ │ └── shareddomain
│ │ │ │ ├── .DS_Store
│ │ │ │ ├── events
│ │ │ │ ├── CargoBookedEvent.java
│ │ │ │ ├── CargoBookedEventData.java
│ │ │ │ ├── CargoHandledEvent.java
│ │ │ │ ├── CargoHandledEventData.java
│ │ │ │ ├── CargoRoutedEvent.java
│ │ │ │ └── CargoRoutedEventData.java
│ │ │ │ └── model
│ │ │ │ ├── TransitEdge.java
│ │ │ │ └── TransitPath.java
│ │ └── resources
│ │ │ └── application.properties
│ │ └── test
│ │ └── java
│ │ └── com
│ │ └── practicalddd
│ │ └── cargotracker
│ │ └── routingms
│ │ └── RoutingmsApplicationTests.java
└── trackingms
│ ├── .gitignore
│ ├── .mvn
│ └── wrapper
│ │ ├── MavenWrapperDownloader.java
│ │ ├── maven-wrapper.jar
│ │ └── maven-wrapper.properties
│ ├── mvnw
│ ├── mvnw.cmd
│ ├── pom.xml
│ └── src
│ ├── main
│ ├── .DS_Store
│ ├── java
│ │ ├── .DS_Store
│ │ └── com
│ │ │ ├── .DS_Store
│ │ │ └── practicalddd
│ │ │ ├── .DS_Store
│ │ │ └── cargotracker
│ │ │ ├── .DS_Store
│ │ │ ├── shareddomain
│ │ │ ├── .DS_Store
│ │ │ ├── events
│ │ │ │ ├── .DS_Store
│ │ │ │ ├── CargoBookedEvent.java
│ │ │ │ ├── CargoBookedEventData.java
│ │ │ │ ├── CargoHandledEvent.java
│ │ │ │ ├── CargoHandledEventData.java
│ │ │ │ ├── CargoRoutedEvent.java
│ │ │ │ └── CargoRoutedEventData.java
│ │ │ └── model
│ │ │ │ ├── TransitEdge.java
│ │ │ │ └── TransitPath.java
│ │ │ └── trackingms
│ │ │ ├── .DS_Store
│ │ │ ├── TrackingmsApplication.java
│ │ │ ├── application
│ │ │ ├── .DS_Store
│ │ │ └── internal
│ │ │ │ ├── .DS_Store
│ │ │ │ └── commandservices
│ │ │ │ └── AssignTrackingIdCommandService.java
│ │ │ ├── domain
│ │ │ ├── .DS_Store
│ │ │ └── model
│ │ │ │ ├── .DS_Store
│ │ │ │ ├── aggregates
│ │ │ │ ├── TrackingActivity.java
│ │ │ │ └── TrackingNumber.java
│ │ │ │ ├── commands
│ │ │ │ ├── AddTrackingEventCommand.java
│ │ │ │ └── AssignTrackingNumberCommand.java
│ │ │ │ ├── entities
│ │ │ │ ├── BookingId.java
│ │ │ │ └── TrackingActivityEvent.java
│ │ │ │ └── valueobjects
│ │ │ │ ├── TrackingEvent.java
│ │ │ │ ├── TrackingEventType.java
│ │ │ │ ├── TrackingLocation.java
│ │ │ │ └── TrackingVoyageNumber.java
│ │ │ ├── infrastructure
│ │ │ ├── .DS_Store
│ │ │ ├── brokers
│ │ │ │ ├── .DS_Store
│ │ │ │ └── rabbitmq
│ │ │ │ │ ├── .DS_Store
│ │ │ │ │ ├── HandlingBinding.java
│ │ │ │ │ └── RoutingBinding.java
│ │ │ └── repositories
│ │ │ │ ├── .DS_Store
│ │ │ │ └── jpa
│ │ │ │ └── TrackingRepository.java
│ │ │ └── interfaces
│ │ │ ├── .DS_Store
│ │ │ └── events
│ │ │ ├── CargoHandledEventHandler.java
│ │ │ ├── CargoRoutedEventHandler.java
│ │ │ └── transform
│ │ │ ├── TrackingActivityCommandEventAssembler.java
│ │ │ └── TrackingDetailsCommandEventAssembler.java
│ └── resources
│ │ └── application.properties
│ └── test
│ └── java
│ └── com
│ └── practicalddd
│ └── cargotracker
│ └── trackingms
│ └── TrackingmsApplicationTests.java
├── Chapter6
├── bookingms
│ ├── .gitignore
│ ├── .mvn
│ │ └── wrapper
│ │ │ ├── MavenWrapperDownloader.java
│ │ │ ├── maven-wrapper.jar
│ │ │ └── maven-wrapper.properties
│ ├── mvnw
│ ├── mvnw.cmd
│ ├── pom.xml
│ └── src
│ │ └── main
│ │ ├── java
│ │ └── com
│ │ │ └── practicalddd
│ │ │ └── cargotracker
│ │ │ └── bookingms
│ │ │ ├── BookingMSApplication.java
│ │ │ ├── application
│ │ │ └── internal
│ │ │ │ ├── commandgateways
│ │ │ │ └── CargoBookingService.java
│ │ │ │ ├── outboundservices
│ │ │ │ └── acl
│ │ │ │ │ └── ExternalCargoRoutingService.java
│ │ │ │ ├── querygateways
│ │ │ │ └── CargoProjectionService.java
│ │ │ │ └── sagaparticipants
│ │ │ │ └── BookingSagaManager.java
│ │ │ ├── domain
│ │ │ ├── commands
│ │ │ │ ├── AssignRouteToCargoCommand.java
│ │ │ │ ├── AssignTrackingDetailsToCargoCommand.java
│ │ │ │ ├── BookCargoCommand.java
│ │ │ │ └── ChangeDestinationCommand.java
│ │ │ ├── events
│ │ │ │ ├── CargoBookedEvent.java
│ │ │ │ ├── CargoDestinationChangedEvent.java
│ │ │ │ ├── CargoRoutedEvent.java
│ │ │ │ └── CargoTrackedEvent.java
│ │ │ ├── model
│ │ │ │ ├── BookingAmount.java
│ │ │ │ ├── Cargo.java
│ │ │ │ ├── CargoItinerary.java
│ │ │ │ ├── Itinerary.java
│ │ │ │ ├── Leg.java
│ │ │ │ ├── Location.java
│ │ │ │ ├── RouteSpecification.java
│ │ │ │ ├── RoutingStatus.java
│ │ │ │ ├── TransitEdge.java
│ │ │ │ ├── TransitPath.java
│ │ │ │ ├── TransportStatus.java
│ │ │ │ └── Voyage.java
│ │ │ ├── projections
│ │ │ │ └── CargoSummary.java
│ │ │ ├── queries
│ │ │ │ ├── CargoSummaryQuery.java
│ │ │ │ ├── CargoSummaryResult.java
│ │ │ │ ├── ListCargoSummariesQuery.java
│ │ │ │ └── ListCargoSummaryResult.java
│ │ │ └── queryhandlers
│ │ │ │ └── CargoAggregateQueryHandler.java
│ │ │ └── interfaces
│ │ │ ├── events
│ │ │ └── CargoProjectionsEventHandler.java
│ │ │ └── rest
│ │ │ ├── CargoBookingController.java
│ │ │ ├── CargoProjectionController.java
│ │ │ └── transform
│ │ │ ├── assembler
│ │ │ ├── AssignRouteCommandDTOAssembler.java
│ │ │ ├── BookCargoCommandDTOAssembler.java
│ │ │ └── ChangeDestinationCommandDTOAssembler.java
│ │ │ └── dto
│ │ │ ├── BookCargoResource.java
│ │ │ ├── CargoRouteResource.java
│ │ │ ├── ChangeDestinationResource.java
│ │ │ └── Leg.java
│ │ └── resources
│ │ └── application.properties
├── cargobookingsaga
│ └── src
│ │ └── main
│ │ └── java
│ │ └── com
│ │ └── practicalddd
│ │ └── cargotracker
│ │ └── cargobookingsaga
│ │ ├── events
│ │ ├── CargoBookedEvent.java
│ │ ├── CargoDestinationChangedEvent.java
│ │ └── CargoRoutedEvent.java
│ │ └── model
│ │ └── model
│ │ ├── BookingAmount.java
│ │ ├── Cargo.java
│ │ ├── Itinerary.java
│ │ ├── Leg.java
│ │ ├── Location.java
│ │ ├── RouteSpecification.java
│ │ ├── RoutingStatus.java
│ │ └── TransportStatus.java
├── handlingms
│ ├── .gitignore
│ ├── .mvn
│ │ └── wrapper
│ │ │ ├── MavenWrapperDownloader.java
│ │ │ ├── maven-wrapper.jar
│ │ │ └── maven-wrapper.properties
│ ├── mvnw
│ ├── mvnw.cmd
│ ├── pom.xml
│ └── src
│ │ ├── main
│ │ ├── .DS_Store
│ │ ├── java
│ │ │ ├── .DS_Store
│ │ │ └── com
│ │ │ │ ├── .DS_Store
│ │ │ │ └── practicalddd
│ │ │ │ ├── .DS_Store
│ │ │ │ └── cargotracker
│ │ │ │ ├── .DS_Store
│ │ │ │ ├── handlingms
│ │ │ │ ├── .DS_Store
│ │ │ │ ├── HandlingmsApplication.java
│ │ │ │ ├── application
│ │ │ │ │ ├── .DS_Store
│ │ │ │ │ └── internal
│ │ │ │ │ │ ├── .DS_Store
│ │ │ │ │ │ ├── commandservices
│ │ │ │ │ │ └── HandlingActivityRegistrationCommandService.java
│ │ │ │ │ │ └── outboundservices
│ │ │ │ │ │ └── CargoEventPublisherService.java
│ │ │ │ ├── domain
│ │ │ │ │ ├── .DS_Store
│ │ │ │ │ └── model
│ │ │ │ │ │ ├── .DS_Store
│ │ │ │ │ │ ├── aggregates
│ │ │ │ │ │ └── HandlingActivity.java
│ │ │ │ │ │ ├── commands
│ │ │ │ │ │ └── HandlingActivityRegistrationCommand.java
│ │ │ │ │ │ └── valueobjects
│ │ │ │ │ │ ├── CargoBookingId.java
│ │ │ │ │ │ ├── HandlingActivityHistory.java
│ │ │ │ │ │ ├── Location.java
│ │ │ │ │ │ ├── Type.java
│ │ │ │ │ │ └── VoyageNumber.java
│ │ │ │ ├── infrastructure
│ │ │ │ │ ├── .DS_Store
│ │ │ │ │ ├── brokers
│ │ │ │ │ │ └── rabbitmq
│ │ │ │ │ │ │ └── CargoEventSource.java
│ │ │ │ │ └── repositories
│ │ │ │ │ │ ├── .DS_Store
│ │ │ │ │ │ └── jpa
│ │ │ │ │ │ └── HandlingActivityRepository.java
│ │ │ │ └── interfaces
│ │ │ │ │ ├── .DS_Store
│ │ │ │ │ ├── events
│ │ │ │ │ └── .DS_Store
│ │ │ │ │ └── rest
│ │ │ │ │ ├── .DS_Store
│ │ │ │ │ ├── CargoHandlingController.java
│ │ │ │ │ ├── dto
│ │ │ │ │ └── HandlingActivityRegistrationResource.java
│ │ │ │ │ └── transform
│ │ │ │ │ └── HandlingActivityRegistrationCommandDTOAssembler.java
│ │ │ │ └── shareddomain
│ │ │ │ ├── .DS_Store
│ │ │ │ ├── events
│ │ │ │ ├── CargoBookedEvent.java
│ │ │ │ ├── CargoBookedEventData.java
│ │ │ │ ├── CargoHandledEvent.java
│ │ │ │ ├── CargoHandledEventData.java
│ │ │ │ ├── CargoRoutedEvent.java
│ │ │ │ └── CargoRoutedEventData.java
│ │ │ │ └── model
│ │ │ │ ├── TransitEdge.java
│ │ │ │ └── TransitPath.java
│ │ └── resources
│ │ │ └── application.properties
│ │ └── test
│ │ └── java
│ │ └── com
│ │ └── practicalddd
│ │ └── cargotracker
│ │ └── handlingms
│ │ └── HandlingmsApplicationTests.java
├── routingms
│ ├── .gitignore
│ ├── .mvn
│ │ └── wrapper
│ │ │ ├── MavenWrapperDownloader.java
│ │ │ ├── maven-wrapper.jar
│ │ │ └── maven-wrapper.properties
│ ├── mvnw
│ ├── mvnw.cmd
│ ├── pom.xml
│ └── src
│ │ ├── main
│ │ ├── .DS_Store
│ │ ├── java
│ │ │ ├── .DS_Store
│ │ │ └── com
│ │ │ │ ├── .DS_Store
│ │ │ │ └── practicalddd
│ │ │ │ ├── .DS_Store
│ │ │ │ └── cargotracker
│ │ │ │ ├── .DS_Store
│ │ │ │ ├── routingms
│ │ │ │ ├── .DS_Store
│ │ │ │ ├── RoutingmsApplication.java
│ │ │ │ ├── application
│ │ │ │ │ ├── .DS_Store
│ │ │ │ │ └── internal
│ │ │ │ │ │ ├── .DS_Store
│ │ │ │ │ │ └── queryservices
│ │ │ │ │ │ └── CargoRoutingQueryService.java
│ │ │ │ ├── domain
│ │ │ │ │ ├── .DS_Store
│ │ │ │ │ └── model
│ │ │ │ │ │ ├── .DS_Store
│ │ │ │ │ │ ├── aggregates
│ │ │ │ │ │ └── Voyage.java
│ │ │ │ │ │ ├── entities
│ │ │ │ │ │ └── CarrierMovement.java
│ │ │ │ │ │ └── valueobjects
│ │ │ │ │ │ ├── Location.java
│ │ │ │ │ │ ├── Schedule.java
│ │ │ │ │ │ └── VoyageNumber.java
│ │ │ │ ├── infrastructure
│ │ │ │ │ ├── .DS_Store
│ │ │ │ │ ├── brokers
│ │ │ │ │ │ └── .DS_Store
│ │ │ │ │ └── repositories
│ │ │ │ │ │ ├── .DS_Store
│ │ │ │ │ │ └── jpa
│ │ │ │ │ │ └── VoyageRepository.java
│ │ │ │ └── interfaces
│ │ │ │ │ ├── .DS_Store
│ │ │ │ │ └── rest
│ │ │ │ │ ├── .DS_Store
│ │ │ │ │ └── CargoRoutingController.java
│ │ │ │ └── shareddomain
│ │ │ │ ├── .DS_Store
│ │ │ │ ├── events
│ │ │ │ ├── CargoBookedEvent.java
│ │ │ │ ├── CargoBookedEventData.java
│ │ │ │ ├── CargoHandledEvent.java
│ │ │ │ ├── CargoHandledEventData.java
│ │ │ │ ├── CargoRoutedEvent.java
│ │ │ │ └── CargoRoutedEventData.java
│ │ │ │ └── model
│ │ │ │ ├── TransitEdge.java
│ │ │ │ └── TransitPath.java
│ │ └── resources
│ │ │ └── application.properties
│ │ └── test
│ │ └── java
│ │ └── com
│ │ └── practicalddd
│ │ └── cargotracker
│ │ └── routingms
│ │ └── RoutingmsApplicationTests.java
└── trackingms
│ ├── .gitignore
│ ├── .mvn
│ └── wrapper
│ │ ├── MavenWrapperDownloader.java
│ │ ├── maven-wrapper.jar
│ │ └── maven-wrapper.properties
│ ├── mvnw
│ ├── mvnw.cmd
│ ├── pom.xml
│ └── src
│ ├── main
│ ├── .DS_Store
│ ├── java
│ │ ├── .DS_Store
│ │ └── com
│ │ │ ├── .DS_Store
│ │ │ └── practicalddd
│ │ │ ├── .DS_Store
│ │ │ └── cargotracker
│ │ │ ├── .DS_Store
│ │ │ └── trackingms
│ │ │ ├── .DS_Store
│ │ │ ├── TrackingmsApplication.java
│ │ │ ├── application
│ │ │ ├── .DS_Store
│ │ │ └── internal
│ │ │ │ ├── .DS_Store
│ │ │ │ └── commandgateways
│ │ │ │ └── TrackingProjectionService.java
│ │ │ ├── domain
│ │ │ ├── .DS_Store
│ │ │ ├── commands
│ │ │ │ ├── AddTrackingEventCommand.java
│ │ │ │ └── AssignTrackingDetailsToCargoCommand.java
│ │ │ ├── events
│ │ │ │ └── CargoTrackedEvent.java
│ │ │ ├── model
│ │ │ │ ├── .DS_Store
│ │ │ │ └── TrackingActivity.java
│ │ │ ├── projections
│ │ │ │ ├── BookingId.java
│ │ │ │ ├── TrackingNumber.java
│ │ │ │ └── TrackingProjection.java
│ │ │ └── valueobjects
│ │ │ │ ├── TrackingEvent.java
│ │ │ │ ├── TrackingEventType.java
│ │ │ │ ├── TrackingLocation.java
│ │ │ │ └── TrackingVoyageNumber.java
│ │ │ ├── infrastructure
│ │ │ ├── .DS_Store
│ │ │ ├── brokers
│ │ │ │ └── .DS_Store
│ │ │ └── repositories
│ │ │ │ ├── .DS_Store
│ │ │ │ └── jpa
│ │ │ │ └── TrackingRepository.java
│ │ │ └── interfaces
│ │ │ ├── .DS_Store
│ │ │ └── events
│ │ │ └── TrackingProjectionsEventHandler.java
│ └── resources
│ │ └── application.properties
│ └── test
│ └── java
│ └── com
│ └── practicalddd
│ └── cargotracker
│ └── trackingms
│ └── TrackingmsApplicationTests.java
└── README.md
/Chapter3/cargotracker/src/main/java/com/practicalddd/cargotracker/booking/domain/model/aggregates/BookingId.java:
--------------------------------------------------------------------------------
1 | package com.practicalddd.cargotracker.booking.domain.model.aggregates;
2 |
3 |
4 | import javax.persistence.Column;
5 | import javax.persistence.Embeddable;
6 | import java.io.Serializable;
7 |
8 | /**
9 | * Aggregate Identifier for the Cargo Aggregate
10 | */
11 | @Embeddable
12 | public class BookingId implements Serializable {
13 |
14 | @Column(name="booking_id")
15 | private String bookingId;
16 |
17 | public BookingId(){}
18 |
19 | public BookingId(String bookingId){this.bookingId = bookingId;}
20 |
21 | public String getBookingId(){return this.bookingId;}
22 | }
23 |
--------------------------------------------------------------------------------
/Chapter3/cargotracker/src/main/java/com/practicalddd/cargotracker/booking/domain/model/entities/Location.java:
--------------------------------------------------------------------------------
1 | package com.practicalddd.cargotracker.booking.domain.model.entities;
2 |
3 | import javax.persistence.Column;
4 | import javax.persistence.Embeddable;
5 |
6 | /**
7 | * Location class represented by a unique 5-diigit UN Location code.
8 | */
9 | @Embeddable
10 | public class Location {
11 |
12 | @Column(name = "origin_id")
13 | private String unLocCode;
14 | public Location(){}
15 | public Location(String unLocCode){this.unLocCode = unLocCode;}
16 | public void setUnLocCode(String unLocCode){this.unLocCode = unLocCode;}
17 | public String getUnLocCode(){return this.unLocCode;}
18 | }
19 |
--------------------------------------------------------------------------------
/Chapter3/cargotracker/src/main/java/com/practicalddd/cargotracker/booking/domain/model/valueobjects/RoutingStatus.java:
--------------------------------------------------------------------------------
1 | package com.practicalddd.cargotracker.booking.domain.model.valueobjects;
2 |
3 | public enum RoutingStatus {
4 |
5 | NOT_ROUTED, ROUTED, MISROUTED;
6 | }
7 |
--------------------------------------------------------------------------------
/Chapter3/cargotracker/src/main/java/com/practicalddd/cargotracker/booking/domain/model/valueobjects/TransportStatus.java:
--------------------------------------------------------------------------------
1 | package com.practicalddd.cargotracker.booking.domain.model.valueobjects;
2 |
3 | public enum TransportStatus {
4 | NOT_RECEIVED, IN_PORT, ONBOARD_CARRIER, CLAIMED, UNKNOWN;
5 | }
6 |
--------------------------------------------------------------------------------
/Chapter3/cargotracker/src/main/java/com/practicalddd/cargotracker/booking/interfaces/rest/dto/RouteCargoResource.java:
--------------------------------------------------------------------------------
1 | package com.practicalddd.cargotracker.booking.interfaces.rest.dto;
2 |
3 |
4 | /**
5 | * Resource class for the Book Cargo Command API
6 | */
7 | public class RouteCargoResource {
8 |
9 | private String bookingId;
10 |
11 |
12 | public RouteCargoResource(){}
13 |
14 | public RouteCargoResource(String bookingId){
15 | this.bookingId = bookingId;
16 | }
17 |
18 | public String getBookingId(){return this.bookingId;}
19 |
20 | public void setBookingId(String bookingId){this.bookingId = bookingId;}
21 | }
22 |
--------------------------------------------------------------------------------
/Chapter3/cargotracker/src/main/java/com/practicalddd/cargotracker/handling/domain/model/valueobjects/CargoBookingId.java:
--------------------------------------------------------------------------------
1 | package com.practicalddd.cargotracker.handling.domain.model.valueobjects;
2 |
3 | import javax.persistence.Column;
4 | import javax.persistence.Embeddable;
5 |
6 | @Embeddable
7 | public class CargoBookingId {
8 | @Column(name = "booking_id")
9 | private String bookingId;
10 | public CargoBookingId(){}
11 | public CargoBookingId(String bookingId){this.bookingId = bookingId;}
12 | public void setBookingId(String bookingId){this.bookingId = bookingId;}
13 | public String getBookingId(){return this.bookingId;}
14 | }
15 |
--------------------------------------------------------------------------------
/Chapter3/cargotracker/src/main/java/com/practicalddd/cargotracker/handling/domain/model/valueobjects/Location.java:
--------------------------------------------------------------------------------
1 | package com.practicalddd.cargotracker.handling.domain.model.valueobjects;
2 |
3 | import javax.persistence.Column;
4 | import javax.persistence.Embeddable;
5 |
6 | /**
7 | * Location class represented by a unique 5-diigit UN Location code.
8 | */
9 | @Embeddable
10 | public class Location {
11 |
12 | @Column(name = "location")
13 | private String unLocCode;
14 | public Location(){}
15 | public Location(String unLocCode){this.unLocCode = unLocCode;}
16 | public void setUnLocCode(String unLocCode){this.unLocCode = unLocCode;}
17 | public String getUnLocCode(){return this.unLocCode;}
18 | }
19 |
--------------------------------------------------------------------------------
/Chapter3/cargotracker/src/main/java/com/practicalddd/cargotracker/handling/domain/model/valueobjects/VoyageNumber.java:
--------------------------------------------------------------------------------
1 | package com.practicalddd.cargotracker.handling.domain.model.valueobjects;
2 |
3 | import javax.persistence.Column;
4 | import javax.persistence.Embeddable;
5 |
6 | @Embeddable
7 | public class VoyageNumber {
8 | @Column(name="voyage_number")
9 | private String voyageNumber;
10 | public VoyageNumber(){}
11 | public VoyageNumber(String voyageNumber){this.voyageNumber = voyageNumber;}
12 | public String getVoyageNumber(){return this.voyageNumber;}
13 | public void setVoyageNumber(String voyageNumber){this.voyageNumber = voyageNumber;}
14 | }
15 |
--------------------------------------------------------------------------------
/Chapter3/cargotracker/src/main/java/com/practicalddd/cargotracker/routing/domain/model/valueobjects/VoyageNumber.java:
--------------------------------------------------------------------------------
1 | package com.practicalddd.cargotracker.routing.domain.model.valueobjects;
2 |
3 | import javax.persistence.Column;
4 | import javax.persistence.Embeddable;
5 |
6 | @Embeddable
7 | public class VoyageNumber {
8 | @Column(name="voyage_number")
9 | private String voyageNumber;
10 | public VoyageNumber(){}
11 | public VoyageNumber(String voyageNumber){this.voyageNumber = voyageNumber;}
12 | public String getVoyageNumber(){return this.voyageNumber;}
13 | public void setVoyageNumber(String voyageNumber){this.voyageNumber = voyageNumber;}
14 | }
15 |
--------------------------------------------------------------------------------
/Chapter3/cargotracker/src/main/java/com/practicalddd/cargotracker/shareddomain/events/CargoBookedEvent.java:
--------------------------------------------------------------------------------
1 | package com.practicalddd.cargotracker.shareddomain.events;
2 |
3 |
4 | /**
5 | * Event Class for the Cargo Booked Event. Wraps up the Cargo Booking identifier
6 | * for the event
7 | */
8 |
9 | public class CargoBookedEvent {
10 | private String id;
11 | public void setId(String id) {
12 | this.id = id;
13 | }
14 | public String getId() {
15 | return id;
16 | }
17 | }
18 |
--------------------------------------------------------------------------------
/Chapter3/cargotracker/src/main/java/com/practicalddd/cargotracker/shareddomain/events/CargoHandledEvent.java:
--------------------------------------------------------------------------------
1 | package com.practicalddd.cargotracker.shareddomain.events;
2 |
3 |
4 | public class CargoHandledEvent {
5 |
6 | private CargoHandledEventData cargoHandledEventData;
7 | public CargoHandledEvent(){}
8 | public void setContent(CargoHandledEventData cargoHandledEventData) { this.cargoHandledEventData = cargoHandledEventData; }
9 | public CargoHandledEventData getContent() {
10 | return cargoHandledEventData;
11 | }
12 | }
13 |
--------------------------------------------------------------------------------
/Chapter3/cargotracker/src/main/java/com/practicalddd/cargotracker/shareddomain/events/CargoRoutedEvent.java:
--------------------------------------------------------------------------------
1 | package com.practicalddd.cargotracker.shareddomain.events;
2 |
3 |
4 | /**
5 | * Event Class for the Cargo Routed Event. Wraps up the Cargo
6 | */
7 |
8 | public class CargoRoutedEvent {
9 | private CargoRoutedEventData cargoRoutedEventData;
10 | public CargoRoutedEvent(){}
11 | public void setContent(CargoRoutedEventData cargoRoutedEventData) { this.cargoRoutedEventData = cargoRoutedEventData; }
12 | public CargoRoutedEventData getContent() {
13 | return cargoRoutedEventData;
14 | }
15 | }
--------------------------------------------------------------------------------
/Chapter3/cargotracker/src/main/java/com/practicalddd/cargotracker/shareddomain/events/CargoRoutedEventData.java:
--------------------------------------------------------------------------------
1 | package com.practicalddd.cargotracker.shareddomain.events;
2 |
3 | /**
4 | * Event Data for the Cargo Routed Event
5 | */
6 | public class CargoRoutedEventData {
7 |
8 | private String bookingId;
9 |
10 | public CargoRoutedEventData(){}
11 |
12 | public void setBookingId(String bookingId){
13 | this.bookingId = bookingId;
14 | }
15 |
16 | public String getBookingId(){return this.bookingId;}
17 |
18 | }
19 |
--------------------------------------------------------------------------------
/Chapter3/cargotracker/src/main/java/com/practicalddd/cargotracker/tracking/domain/model/aggregates/TrackingNumber.java:
--------------------------------------------------------------------------------
1 | package com.practicalddd.cargotracker.tracking.domain.model.aggregates;
2 |
3 |
4 | import javax.persistence.Column;
5 | import javax.persistence.Embeddable;
6 |
7 | @Embeddable
8 | public class TrackingNumber {
9 |
10 | @Column(name="tracking_number")
11 | private String trackingNumber;
12 |
13 | public TrackingNumber(){}
14 |
15 | public TrackingNumber(String trackingNumber){this.trackingNumber = trackingNumber;}
16 |
17 | public String getTrackingNumber(){return this.trackingNumber;}
18 | }
19 |
--------------------------------------------------------------------------------
/Chapter3/cargotracker/src/main/java/com/practicalddd/cargotracker/tracking/domain/model/valueobjects/TrackingVoyageNumber.java:
--------------------------------------------------------------------------------
1 | package com.practicalddd.cargotracker.tracking.domain.model.valueobjects;
2 |
3 | import javax.persistence.Column;
4 | import javax.persistence.Embeddable;
5 |
6 | @Embeddable
7 | public class TrackingVoyageNumber {
8 | @Column(name="voyage_number")
9 | private String voyageNumber;
10 | public TrackingVoyageNumber(){}
11 | public TrackingVoyageNumber(String voyageNumber){this.voyageNumber = voyageNumber;}
12 | public String getVoyageNumber(){return this.voyageNumber;}
13 | public void setVoyageNumber(String voyageNumber){this.voyageNumber = voyageNumber;}
14 | }
15 |
--------------------------------------------------------------------------------
/Chapter3/cargotracker/src/main/java/com/practicalddd/cargotracker/tracking/interfaces/events/CargoBookedEventHandler.java:
--------------------------------------------------------------------------------
1 | package com.practicalddd.cargotracker.tracking.interfaces.events;
2 |
3 | import com.practicalddd.cargotracker.shareddomain.events.CargoBookedEvent;
4 |
5 | import javax.enterprise.context.ApplicationScoped;
6 | import javax.enterprise.event.Observes;
7 |
8 | @ApplicationScoped
9 | public class CargoBookedEventHandler {
10 |
11 | public void testEventObserving(@Observes CargoBookedEvent event) {
12 | // Processing of an event
13 | System.out.println("***Just a Test***"+event.getId());
14 | }
15 | }
16 |
--------------------------------------------------------------------------------
/Chapter3/cargotracker/src/main/resources/META-INF/beans.xml:
--------------------------------------------------------------------------------
1 |
2 |
8 |
--------------------------------------------------------------------------------
/Chapter3/cargotracker/src/main/webapp/WEB-INF/beans.xml:
--------------------------------------------------------------------------------
1 |
2 |
8 |
--------------------------------------------------------------------------------
/Chapter3/cargotracker/src/main/webapp/WEB-INF/web.xml:
--------------------------------------------------------------------------------
1 |
2 |
5 | Hello Servlet
6 |
7 |
8 | index.html
9 |
10 |
11 |
--------------------------------------------------------------------------------
/Chapter3/cargotracker/src/main/webapp/index.html:
--------------------------------------------------------------------------------
1 |
2 |
12 |
13 |
14 |
15 | Welcome to Hello Servlet
16 |
17 | Click here to get a greeting from the Hello Servlet.
18 |
19 |
20 |
21 |
--------------------------------------------------------------------------------
/Chapter4/Utilities/rabbitadaptor-cdi-1.0.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/practicalddd/practicaldddbook/8ecfe7ac6bdbc527ada0603ea472d425a7ee1e4b/Chapter4/Utilities/rabbitadaptor-cdi-1.0.jar
--------------------------------------------------------------------------------
/Chapter4/Utilities/rabbitadaptor-core-1.0.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/practicalddd/practicaldddbook/8ecfe7ac6bdbc527ada0603ea472d425a7ee1e4b/Chapter4/Utilities/rabbitadaptor-core-1.0.jar
--------------------------------------------------------------------------------
/Chapter4/bookingms/.dockerignore:
--------------------------------------------------------------------------------
1 | target/*
--------------------------------------------------------------------------------
/Chapter4/bookingms/.idea/compiler.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/Chapter4/bookingms/.idea/encodings.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/Chapter4/bookingms/.idea/misc.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
10 |
11 |
12 |
13 |
14 |
--------------------------------------------------------------------------------
/Chapter4/bookingms/README.md:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/Chapter4/bookingms/src/main/java/com/practicalddd/cargotracker/bookingms/domain/model/aggregates/BookingId.java:
--------------------------------------------------------------------------------
1 | package com.practicalddd.cargotracker.bookingms.domain.model.aggregates;
2 |
3 |
4 | import javax.persistence.Column;
5 | import javax.persistence.Embeddable;
6 | import java.io.Serializable;
7 |
8 | /**
9 | * Aggregate Identifier for the Cargo Aggregate
10 | */
11 | @Embeddable
12 | public class BookingId implements Serializable {
13 |
14 | @Column(name="booking_id")
15 | private String bookingId;
16 |
17 | public BookingId(){}
18 |
19 | public BookingId(String bookingId){this.bookingId = bookingId;}
20 |
21 | public String getBookingId(){return this.bookingId;}
22 | }
23 |
--------------------------------------------------------------------------------
/Chapter4/bookingms/src/main/java/com/practicalddd/cargotracker/bookingms/domain/model/entities/Location.java:
--------------------------------------------------------------------------------
1 | package com.practicalddd.cargotracker.bookingms.domain.model.entities;
2 |
3 | import javax.persistence.Column;
4 | import javax.persistence.Embeddable;
5 |
6 | /**
7 | * Location class represented by a unique 5-diigit UN Location code.
8 | */
9 | @Embeddable
10 | public class Location {
11 |
12 | @Column(name = "origin_id")
13 | private String unLocCode;
14 | public Location(){}
15 | public Location(String unLocCode){this.unLocCode = unLocCode;}
16 | public void setUnLocCode(String unLocCode){this.unLocCode = unLocCode;}
17 | public String getUnLocCode(){return this.unLocCode;}
18 | }
19 |
--------------------------------------------------------------------------------
/Chapter4/bookingms/src/main/java/com/practicalddd/cargotracker/bookingms/domain/model/valueobjects/RoutingStatus.java:
--------------------------------------------------------------------------------
1 | package com.practicalddd.cargotracker.bookingms.domain.model.valueobjects;
2 |
3 | public enum RoutingStatus {
4 |
5 | NOT_ROUTED, ROUTED, MISROUTED;
6 | }
7 |
--------------------------------------------------------------------------------
/Chapter4/bookingms/src/main/java/com/practicalddd/cargotracker/bookingms/domain/model/valueobjects/TransportStatus.java:
--------------------------------------------------------------------------------
1 | package com.practicalddd.cargotracker.bookingms.domain.model.valueobjects;
2 |
3 | public enum TransportStatus {
4 | NOT_RECEIVED, IN_PORT, ONBOARD_CARRIER, CLAIMED, UNKNOWN;
5 | }
6 |
--------------------------------------------------------------------------------
/Chapter4/bookingms/src/main/java/com/practicalddd/cargotracker/bookingms/interfaces/events/transform/CargoRoutedEventHandler.java:
--------------------------------------------------------------------------------
1 | package com.practicalddd.cargotracker.bookingms.interfaces.events.transform;
2 |
3 |
4 | //@ApplicationScoped
5 | public class CargoRoutedEventHandler {
6 |
7 | }
8 |
--------------------------------------------------------------------------------
/Chapter4/bookingms/src/main/java/com/practicalddd/cargotracker/bookingms/interfaces/rest/dto/RouteCargoResource.java:
--------------------------------------------------------------------------------
1 | package com.practicalddd.cargotracker.bookingms.interfaces.rest.dto;
2 |
3 |
4 | /**
5 | * Resource class for the Book Cargo Command API
6 | */
7 | public class RouteCargoResource {
8 |
9 | private String bookingId;
10 |
11 |
12 | public RouteCargoResource(){}
13 |
14 | public RouteCargoResource(String bookingId){
15 | this.bookingId = bookingId;
16 | }
17 |
18 | public String getBookingId(){return this.bookingId;}
19 |
20 | public void setBookingId(String bookingId){this.bookingId = bookingId;}
21 | }
22 |
--------------------------------------------------------------------------------
/Chapter4/bookingms/src/main/java/com/practicalddd/cargotracker/shareddomain/events/CargoBookedEvent.java:
--------------------------------------------------------------------------------
1 | package com.practicalddd.cargotracker.shareddomain.events;
2 |
3 | import com.practicalddd.rabbitadaptor.cdi.ContainsId;
4 |
5 | /**
6 | * Event Class for the Cargo Booked Event. Wraps up the Cargo Booking identifier
7 | * for the event
8 | */
9 |
10 | public class CargoBookedEvent implements ContainsId {
11 | private String id;
12 | public void setId(String id) {
13 | this.id = id;
14 | }
15 | public String getId() {
16 | return id;
17 | }
18 | }
19 |
--------------------------------------------------------------------------------
/Chapter4/bookingms/src/main/java/com/practicalddd/cargotracker/shareddomain/events/CargoHandledEvent.java:
--------------------------------------------------------------------------------
1 | package com.practicalddd.cargotracker.shareddomain.events;
2 |
3 | import com.practicalddd.rabbitadaptor.cdi.ContainsContent;
4 |
5 | public class CargoHandledEvent implements ContainsContent {
6 |
7 | private CargoHandledEventData cargoHandledEventData;
8 | public void setContent(CargoHandledEventData cargoHandledEventData) { this.cargoHandledEventData = cargoHandledEventData; }
9 | public CargoHandledEventData getContent() {
10 | return cargoHandledEventData;
11 | }
12 | }
13 |
--------------------------------------------------------------------------------
/Chapter4/bookingms/src/main/java/com/practicalddd/cargotracker/shareddomain/events/CargoRoutedEvent.java:
--------------------------------------------------------------------------------
1 | package com.practicalddd.cargotracker.shareddomain.events;
2 |
3 | import com.practicalddd.rabbitadaptor.cdi.ContainsContent;
4 |
5 | /**
6 | * Event Class for the Cargo Routed Event. Wraps up the Cargo
7 | */
8 |
9 | public class CargoRoutedEvent implements ContainsContent {
10 | private CargoRoutedEventData cargoRoutedEventData;
11 | public void setContent(CargoRoutedEventData cargoRoutedEventData) { this.cargoRoutedEventData = cargoRoutedEventData; }
12 | public CargoRoutedEventData getContent() {
13 | return cargoRoutedEventData;
14 | }
15 | }
--------------------------------------------------------------------------------
/Chapter4/bookingms/src/main/java/com/practicalddd/cargotracker/shareddomain/events/CargoRoutedEventData.java:
--------------------------------------------------------------------------------
1 | package com.practicalddd.cargotracker.shareddomain.events;
2 |
3 | /**
4 | * Event Data for the Cargo Routed Event
5 | */
6 | public class CargoRoutedEventData {
7 |
8 | private String bookingId;
9 |
10 | public CargoRoutedEventData(){}
11 |
12 | public void setBookingId(String bookingId){
13 | this.bookingId = bookingId;
14 | }
15 |
16 | public String getBookingId(){return this.bookingId;}
17 |
18 | }
19 |
--------------------------------------------------------------------------------
/Chapter4/handlingms/.dockerignore:
--------------------------------------------------------------------------------
1 | target/*
--------------------------------------------------------------------------------
/Chapter4/handlingms/.idea/compiler.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/Chapter4/handlingms/.idea/encodings.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/Chapter4/handlingms/.idea/misc.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
--------------------------------------------------------------------------------
/Chapter4/handlingms/README.md:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/Chapter4/handlingms/src/main/java/com/practicalddd/cargotracker/handlingms/domain/model/valueobjects/CargoBookingId.java:
--------------------------------------------------------------------------------
1 | package com.practicalddd.cargotracker.handlingms.domain.model.valueobjects;
2 |
3 | import javax.persistence.Column;
4 | import javax.persistence.Embeddable;
5 |
6 | @Embeddable
7 | public class CargoBookingId {
8 | @Column(name = "booking_id")
9 | private String bookingId;
10 | public CargoBookingId(){}
11 | public CargoBookingId(String bookingId){this.bookingId = bookingId;}
12 | public void setBookingId(String bookingId){this.bookingId = bookingId;}
13 | public String getBookingId(){return this.bookingId;}
14 | }
15 |
--------------------------------------------------------------------------------
/Chapter4/handlingms/src/main/java/com/practicalddd/cargotracker/handlingms/domain/model/valueobjects/Location.java:
--------------------------------------------------------------------------------
1 | package com.practicalddd.cargotracker.handlingms.domain.model.valueobjects;
2 |
3 | import javax.persistence.Column;
4 | import javax.persistence.Embeddable;
5 |
6 | /**
7 | * Location class represented by a unique 5-diigit UN Location code.
8 | */
9 | @Embeddable
10 | public class Location {
11 |
12 | @Column(name = "location")
13 | private String unLocCode;
14 | public Location(){}
15 | public Location(String unLocCode){this.unLocCode = unLocCode;}
16 | public void setUnLocCode(String unLocCode){this.unLocCode = unLocCode;}
17 | public String getUnLocCode(){return this.unLocCode;}
18 | }
19 |
--------------------------------------------------------------------------------
/Chapter4/handlingms/src/main/java/com/practicalddd/cargotracker/handlingms/domain/model/valueobjects/VoyageNumber.java:
--------------------------------------------------------------------------------
1 | package com.practicalddd.cargotracker.handlingms.domain.model.valueobjects;
2 |
3 | import javax.persistence.Column;
4 | import javax.persistence.Embeddable;
5 |
6 | @Embeddable
7 | public class VoyageNumber {
8 | @Column(name="voyage_number")
9 | private String voyageNumber;
10 | public VoyageNumber(){}
11 | public VoyageNumber(String voyageNumber){this.voyageNumber = voyageNumber;}
12 | public String getVoyageNumber(){return this.voyageNumber;}
13 | public void setVoyageNumber(String voyageNumber){this.voyageNumber = voyageNumber;}
14 | }
15 |
--------------------------------------------------------------------------------
/Chapter4/handlingms/src/main/java/com/practicalddd/cargotracker/shareddomain/events/CargoBookedEvent.java:
--------------------------------------------------------------------------------
1 | package com.practicalddd.cargotracker.shareddomain.events;
2 |
3 | import com.practicalddd.rabbitadaptor.cdi.ContainsId;
4 |
5 | /**
6 | * Event Class for the Cargo Booked Event. Wraps up the Cargo Booking identifier
7 | * for the event
8 | */
9 |
10 | public class CargoBookedEvent implements ContainsId {
11 | private String id;
12 | public void setId(String id) {
13 | this.id = id;
14 | }
15 | public String getId() {
16 | return id;
17 | }
18 | }
19 |
--------------------------------------------------------------------------------
/Chapter4/handlingms/src/main/java/com/practicalddd/cargotracker/shareddomain/events/CargoHandledEvent.java:
--------------------------------------------------------------------------------
1 | package com.practicalddd.cargotracker.shareddomain.events;
2 |
3 | import com.practicalddd.rabbitadaptor.cdi.ContainsContent;
4 |
5 | public class CargoHandledEvent implements ContainsContent {
6 |
7 | private CargoHandledEventData cargoHandledEventData;
8 | public void setContent(CargoHandledEventData cargoHandledEventData) { this.cargoHandledEventData = cargoHandledEventData; }
9 | public CargoHandledEventData getContent() {
10 | return cargoHandledEventData;
11 | }
12 | }
13 |
--------------------------------------------------------------------------------
/Chapter4/handlingms/src/main/java/com/practicalddd/cargotracker/shareddomain/events/CargoRoutedEvent.java:
--------------------------------------------------------------------------------
1 | package com.practicalddd.cargotracker.shareddomain.events;
2 |
3 | import com.practicalddd.rabbitadaptor.cdi.ContainsContent;
4 |
5 | /**
6 | * Event Class for the Cargo Routed Event. Wraps up the Cargo
7 | */
8 |
9 | public class CargoRoutedEvent implements ContainsContent {
10 | private CargoRoutedEventData cargoRoutedEventData;
11 | public void setContent(CargoRoutedEventData cargoRoutedEventData) { this.cargoRoutedEventData = cargoRoutedEventData; }
12 | public CargoRoutedEventData getContent() {
13 | return cargoRoutedEventData;
14 | }
15 | }
--------------------------------------------------------------------------------
/Chapter4/handlingms/src/main/java/com/practicalddd/cargotracker/shareddomain/events/CargoRoutedEventData.java:
--------------------------------------------------------------------------------
1 | package com.practicalddd.cargotracker.shareddomain.events;
2 |
3 | /**
4 | * Event Data for the Cargo Routed Event
5 | */
6 | public class CargoRoutedEventData {
7 |
8 | private String bookingId;
9 |
10 | public CargoRoutedEventData(String bookingId){
11 | this.bookingId = bookingId;
12 |
13 | }
14 | public String getBookingId(){return this.bookingId;}
15 |
16 | }
17 |
--------------------------------------------------------------------------------
/Chapter4/routingms/.dockerignore:
--------------------------------------------------------------------------------
1 | target/*
--------------------------------------------------------------------------------
/Chapter4/routingms/.idea/compiler.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/Chapter4/routingms/.idea/encodings.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/Chapter4/routingms/.idea/misc.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
--------------------------------------------------------------------------------
/Chapter4/routingms/README.md:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/Chapter4/routingms/src/main/java/com/practicalddd/cargotracker/routingms/domain/model/valueobjects/VoyageNumber.java:
--------------------------------------------------------------------------------
1 | package com.practicalddd.cargotracker.routingms.domain.model.valueobjects;
2 |
3 | import javax.persistence.Column;
4 | import javax.persistence.Embeddable;
5 |
6 | @Embeddable
7 | public class VoyageNumber {
8 | @Column(name="voyage_number")
9 | private String voyageNumber;
10 | public VoyageNumber(){}
11 | public VoyageNumber(String voyageNumber){this.voyageNumber = voyageNumber;}
12 | public String getVoyageNumber(){return this.voyageNumber;}
13 | public void setVoyageNumber(String voyageNumber){this.voyageNumber = voyageNumber;}
14 | }
15 |
--------------------------------------------------------------------------------
/Chapter4/routingms/src/main/java/com/practicalddd/cargotracker/shareddomain/events/CargoBookedEvent.java:
--------------------------------------------------------------------------------
1 | package com.practicalddd.cargotracker.shareddomain.events;
2 |
3 | import com.practicalddd.rabbitadaptor.cdi.ContainsId;
4 |
5 | /**
6 | * Event Class for the Cargo Booked Event. Wraps up the Cargo Booking identifier
7 | * for the event
8 | */
9 |
10 | public class CargoBookedEvent implements ContainsId {
11 | private String id;
12 | public void setId(String id) {
13 | this.id = id;
14 | }
15 | public String getId() {
16 | return id;
17 | }
18 | }
19 |
--------------------------------------------------------------------------------
/Chapter4/routingms/src/main/java/com/practicalddd/cargotracker/shareddomain/events/CargoHandledEvent.java:
--------------------------------------------------------------------------------
1 | package com.practicalddd.cargotracker.shareddomain.events;
2 |
3 | import com.practicalddd.rabbitadaptor.cdi.ContainsContent;
4 |
5 | public class CargoHandledEvent implements ContainsContent {
6 |
7 | private CargoHandledEventData cargoHandledEventData;
8 | public void setContent(CargoHandledEventData cargoHandledEventData) { this.cargoHandledEventData = cargoHandledEventData; }
9 | public CargoHandledEventData getContent() {
10 | return cargoHandledEventData;
11 | }
12 | }
13 |
--------------------------------------------------------------------------------
/Chapter4/routingms/src/main/java/com/practicalddd/cargotracker/shareddomain/events/CargoHandledEventData.java:
--------------------------------------------------------------------------------
1 | package com.practicalddd.cargotracker.shareddomain.events;
2 |
3 | /**
4 | * Event Data for the Cargo Handled Event
5 | */
6 | public class CargoHandledEventData {
7 | private String bookingId;
8 | private String handlingType;
9 |
10 | public CargoHandledEventData(String bookingId,String handlingType){
11 | this.bookingId = bookingId;
12 | this.handlingType = handlingType;
13 | }
14 |
15 | public String getBookingId(){return this.bookingId;}
16 | public String getHandlingType(){return this.handlingType;}
17 | }
18 |
--------------------------------------------------------------------------------
/Chapter4/routingms/src/main/java/com/practicalddd/cargotracker/shareddomain/events/CargoRoutedEvent.java:
--------------------------------------------------------------------------------
1 | package com.practicalddd.cargotracker.shareddomain.events;
2 |
3 | import com.practicalddd.rabbitadaptor.cdi.ContainsContent;
4 |
5 | /**
6 | * Event Class for the Cargo Routed Event. Wraps up the Cargo
7 | */
8 |
9 | public class CargoRoutedEvent implements ContainsContent {
10 | private CargoRoutedEventData cargoRoutedEventData;
11 | public void setContent(CargoRoutedEventData cargoRoutedEventData) { this.cargoRoutedEventData = cargoRoutedEventData; }
12 | public CargoRoutedEventData getContent() {
13 | return cargoRoutedEventData;
14 | }
15 | }
--------------------------------------------------------------------------------
/Chapter4/routingms/src/main/java/com/practicalddd/cargotracker/shareddomain/events/CargoRoutedEventData.java:
--------------------------------------------------------------------------------
1 | package com.practicalddd.cargotracker.shareddomain.events;
2 |
3 | /**
4 | * Event Data for the Cargo Routed Event
5 | */
6 | public class CargoRoutedEventData {
7 |
8 | private String bookingId;
9 |
10 | public CargoRoutedEventData(String bookingId){
11 | this.bookingId = bookingId;
12 |
13 | }
14 | public String getBookingId(){return this.bookingId;}
15 |
16 | }
17 |
--------------------------------------------------------------------------------
/Chapter4/trackingms/.idea/compiler.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
--------------------------------------------------------------------------------
/Chapter4/trackingms/.idea/encodings.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/Chapter4/trackingms/.idea/libraries/Maven__com_fasterxml_jackson_core_jackson_core_2_9_9.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/Chapter4/trackingms/.idea/libraries/Maven__com_google_protobuf_protobuf_java_3_5_1.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/Chapter4/trackingms/.idea/libraries/Maven__com_netflix_archaius_archaius_core_0_4_1.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/Chapter4/trackingms/.idea/libraries/Maven__com_netflix_hystrix_hystrix_core_1_5_18.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/Chapter4/trackingms/.idea/libraries/Maven__com_rabbitmq_amqp_client_5_7_2.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/Chapter4/trackingms/.idea/libraries/Maven__com_typesafe_config_1_3_3.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/Chapter4/trackingms/.idea/libraries/Maven__com_zaxxer_HikariCP_2_7_8.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/Chapter4/trackingms/.idea/libraries/Maven__commons_beanutils_commons_beanutils_1_9_3.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/Chapter4/trackingms/.idea/libraries/Maven__commons_collections_commons_collections_3_2_2.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/Chapter4/trackingms/.idea/libraries/Maven__commons_io_commons_io_2_6.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/Chapter4/trackingms/.idea/libraries/Maven__commons_lang_commons_lang_2_6.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/Chapter4/trackingms/.idea/libraries/Maven__commons_logging_commons_logging_1_2.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/Chapter4/trackingms/.idea/libraries/Maven__io_helidon_common_helidon_common_1_2_0.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/Chapter4/trackingms/.idea/libraries/Maven__io_helidon_common_helidon_common_http_1_2_0.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/Chapter4/trackingms/.idea/libraries/Maven__io_helidon_config_helidon_config_1_2_0.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/Chapter4/trackingms/.idea/libraries/Maven__io_helidon_config_helidon_config_hocon_1_2_0.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/Chapter4/trackingms/.idea/libraries/Maven__io_helidon_config_helidon_config_yaml_1_2_0.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/Chapter4/trackingms/.idea/libraries/Maven__io_helidon_health_helidon_health_1_2_0.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/Chapter4/trackingms/.idea/libraries/Maven__io_helidon_media_helidon_media_common_1_2_0.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/Chapter4/trackingms/.idea/libraries/Maven__io_helidon_metrics_helidon_metrics_1_2_0.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/Chapter4/trackingms/.idea/libraries/Maven__io_helidon_openapi_helidon_openapi_1_2_0.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/Chapter4/trackingms/.idea/libraries/Maven__io_helidon_security_helidon_security_1_2_0.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/Chapter4/trackingms/.idea/libraries/Maven__io_helidon_tracing_helidon_tracing_1_2_0.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/Chapter4/trackingms/.idea/libraries/Maven__io_helidon_webserver_helidon_webserver_1_2_0.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/Chapter4/trackingms/.idea/libraries/Maven__io_netty_netty_buffer_4_1_34_Final.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/Chapter4/trackingms/.idea/libraries/Maven__io_netty_netty_codec_4_1_34_Final.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/Chapter4/trackingms/.idea/libraries/Maven__io_netty_netty_codec_http2_4_1_34_Final.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/Chapter4/trackingms/.idea/libraries/Maven__io_netty_netty_codec_http_4_1_34_Final.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/Chapter4/trackingms/.idea/libraries/Maven__io_netty_netty_common_4_1_34_Final.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/Chapter4/trackingms/.idea/libraries/Maven__io_netty_netty_handler_4_1_34_Final.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/Chapter4/trackingms/.idea/libraries/Maven__io_netty_netty_resolver_4_1_34_Final.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/Chapter4/trackingms/.idea/libraries/Maven__io_netty_netty_transport_4_1_34_Final.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/Chapter4/trackingms/.idea/libraries/Maven__io_opentracing_opentracing_api_0_31_0.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/Chapter4/trackingms/.idea/libraries/Maven__io_opentracing_opentracing_noop_0_31_0.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/Chapter4/trackingms/.idea/libraries/Maven__io_opentracing_opentracing_util_0_31_0.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/Chapter4/trackingms/.idea/libraries/Maven__io_projectreactor_reactor_core_3_1_5_RELEASE.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/Chapter4/trackingms/.idea/libraries/Maven__io_reactivex_rxjava_1_2_0.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/Chapter4/trackingms/.idea/libraries/Maven__io_smallrye_smallrye_open_api_1_1_1.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/Chapter4/trackingms/.idea/libraries/Maven__jakarta_json_jakarta_json_api_1_1_5.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/Chapter4/trackingms/.idea/libraries/Maven__jakarta_ws_rs_jakarta_ws_rs_api_2_1_5.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/Chapter4/trackingms/.idea/libraries/Maven__javax_activation_javax_activation_api_1_2_0.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/Chapter4/trackingms/.idea/libraries/Maven__javax_annotation_javax_annotation_api_1_3_1.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/Chapter4/trackingms/.idea/libraries/Maven__javax_enterprise_cdi_api_2_0.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/Chapter4/trackingms/.idea/libraries/Maven__javax_inject_javax_inject_1.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/Chapter4/trackingms/.idea/libraries/Maven__javax_json_javax_json_api_1_1_2.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/Chapter4/trackingms/.idea/libraries/Maven__javax_transaction_javax_transaction_api_1_2.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/Chapter4/trackingms/.idea/libraries/Maven__javax_validation_validation_api_2_0_1_Final.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/Chapter4/trackingms/.idea/libraries/Maven__mysql_mysql_connector_java_8_0_11.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/Chapter4/trackingms/.idea/libraries/Maven__net_jodah_failsafe_1_1_0.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/Chapter4/trackingms/.idea/libraries/Maven__org_eclipse_yasson_1_0_3.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/Chapter4/trackingms/.idea/libraries/Maven__org_glassfish_hk2_external_jakarta_inject_2_5_0.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/Chapter4/trackingms/.idea/libraries/Maven__org_glassfish_hk2_hk2_api_2_5_0.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/Chapter4/trackingms/.idea/libraries/Maven__org_glassfish_hk2_hk2_locator_2_5_0.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/Chapter4/trackingms/.idea/libraries/Maven__org_glassfish_hk2_hk2_utils_2_5_0.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/Chapter4/trackingms/.idea/libraries/Maven__org_glassfish_jakarta_json_1_1_5.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/Chapter4/trackingms/.idea/libraries/Maven__org_glassfish_javax_json_1_1_2.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/Chapter4/trackingms/.idea/libraries/Maven__org_glassfish_jersey_core_jersey_client_2_29.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/Chapter4/trackingms/.idea/libraries/Maven__org_glassfish_jersey_core_jersey_common_2_29.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/Chapter4/trackingms/.idea/libraries/Maven__org_glassfish_jersey_core_jersey_server_2_29.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/Chapter4/trackingms/.idea/libraries/Maven__org_glassfish_jersey_ext_cdi_jersey_cdi1x_2_29.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/Chapter4/trackingms/.idea/libraries/Maven__org_glassfish_jersey_inject_jersey_hk2_2_29.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/Chapter4/trackingms/.idea/libraries/Maven__org_glassfish_jsonp_jaxrs_1_1_5.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/Chapter4/trackingms/.idea/libraries/Maven__org_hdrhistogram_HdrHistogram_2_1_9.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/Chapter4/trackingms/.idea/libraries/Maven__org_javassist_javassist_3_22_0_CR2.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/Chapter4/trackingms/.idea/libraries/Maven__org_jboss_jandex_2_1_1_Final.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/Chapter4/trackingms/.idea/libraries/Maven__org_jboss_logging_jboss_logging_3_2_1_Final.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/Chapter4/trackingms/.idea/libraries/Maven__org_jboss_narayana_arjunacore_arjuna_5_9_3_Final.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/Chapter4/trackingms/.idea/libraries/Maven__org_jboss_narayana_common_5_9_3_Final.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/Chapter4/trackingms/.idea/libraries/Maven__org_jboss_narayana_jta_cdi_5_9_3_Final.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/Chapter4/trackingms/.idea/libraries/Maven__org_jboss_narayana_jta_jta_5_9_3_Final.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/Chapter4/trackingms/.idea/libraries/Maven__org_jboss_shrinkwrap_shrinkwrap_api_1_2_6.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/Chapter4/trackingms/.idea/libraries/Maven__org_jboss_weld_module_weld_jta_3_1_1_Final.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/Chapter4/trackingms/.idea/libraries/Maven__org_jboss_weld_se_weld_se_core_3_1_1_Final.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/Chapter4/trackingms/.idea/libraries/Maven__org_jboss_weld_weld_api_3_1_Final.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/Chapter4/trackingms/.idea/libraries/Maven__org_jboss_weld_weld_core_impl_3_1_1_Final.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/Chapter4/trackingms/.idea/libraries/Maven__org_jboss_weld_weld_spi_3_1_Final.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/Chapter4/trackingms/.idea/libraries/Maven__org_junit_jupiter_junit_jupiter_api_5_0_1.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/Chapter4/trackingms/.idea/libraries/Maven__org_junit_jupiter_junit_jupiter_engine_5_0_1.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/Chapter4/trackingms/.idea/libraries/Maven__org_opentest4j_opentest4j_1_0_0.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/Chapter4/trackingms/.idea/libraries/Maven__org_reactivestreams_reactive_streams_1_0_2.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/Chapter4/trackingms/.idea/libraries/Maven__org_slf4j_slf4j_api_1_7_26.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/Chapter4/trackingms/.idea/libraries/Maven__org_slf4j_slf4j_jdk14_1_7_26.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/Chapter4/trackingms/.idea/libraries/Maven__org_yaml_snakeyaml_1_24.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/Chapter4/trackingms/.idea/misc.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/Chapter4/trackingms/.idea/modules.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/Chapter4/trackingms/README.md:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/Chapter4/trackingms/src/main/java/com/practicalddd/cargotracker/shareddomain/events/CargoHandledEvent.java:
--------------------------------------------------------------------------------
1 | package com.practicalddd.cargotracker.shareddomain.events;
2 |
3 | import com.practicalddd.rabbitadaptor.cdi.ContainsContent;
4 |
5 | import javax.enterprise.context.Dependent;
6 |
7 | @Dependent
8 | public class CargoHandledEvent implements ContainsContent {
9 |
10 | private CargoHandledEventData cargoHandledEventData;
11 | public void setContent(CargoHandledEventData cargoHandledEventData) { this.cargoHandledEventData = cargoHandledEventData; }
12 | public CargoHandledEventData getContent() {
13 | return cargoHandledEventData;
14 | }
15 | }
16 |
--------------------------------------------------------------------------------
/Chapter4/trackingms/src/main/java/com/practicalddd/cargotracker/shareddomain/events/CargoRoutedEventData.java:
--------------------------------------------------------------------------------
1 | package com.practicalddd.cargotracker.shareddomain.events;
2 |
3 | /**
4 | * Event Data for the Cargo Routed Event
5 | */
6 | public class CargoRoutedEventData {
7 |
8 | private String bookingId;
9 |
10 | public CargoRoutedEventData(){}
11 |
12 | public void setBookingId(String bookingId){
13 | this.bookingId = bookingId;
14 | }
15 |
16 | public String getBookingId(){return this.bookingId;}
17 |
18 | }
19 |
--------------------------------------------------------------------------------
/Chapter4/trackingms/src/main/java/com/practicalddd/cargotracker/trackingms/domain/model/aggregates/TrackingNumber.java:
--------------------------------------------------------------------------------
1 | package com.practicalddd.cargotracker.trackingms.domain.model.aggregates;
2 |
3 |
4 | import javax.persistence.Column;
5 | import javax.persistence.Embeddable;
6 |
7 | @Embeddable
8 | public class TrackingNumber {
9 |
10 | @Column(name="tracking_number")
11 | private String trackingNumber;
12 |
13 | public TrackingNumber(){}
14 |
15 | public TrackingNumber(String trackingNumber){this.trackingNumber = trackingNumber;}
16 |
17 | public String getTrackingNumber(){return this.trackingNumber;}
18 | }
19 |
--------------------------------------------------------------------------------
/Chapter4/trackingms/src/main/java/com/practicalddd/cargotracker/trackingms/domain/model/entities/BookingId.java:
--------------------------------------------------------------------------------
1 | package com.practicalddd.cargotracker.trackingms.domain.model.entities;
2 |
3 |
4 | import javax.persistence.Column;
5 | import javax.persistence.Embeddable;
6 | import java.io.Serializable;
7 |
8 | /**
9 | * Aggregate Identifier for the Cargo Aggregate
10 | */
11 | @Embeddable
12 | public class BookingId implements Serializable {
13 |
14 | @Column(name="booking_id")
15 | private String bookingId;
16 |
17 | public BookingId(){}
18 |
19 | public BookingId(String bookingId){this.bookingId = bookingId;}
20 |
21 | public String getBookingId(){return this.bookingId;}
22 | }
23 |
--------------------------------------------------------------------------------
/Chapter4/trackingms/src/main/java/com/practicalddd/cargotracker/trackingms/domain/model/valueobjects/TrackingVoyageNumber.java:
--------------------------------------------------------------------------------
1 | package com.practicalddd.cargotracker.trackingms.domain.model.valueobjects;
2 |
3 | import javax.persistence.Column;
4 | import javax.persistence.Embeddable;
5 |
6 | @Embeddable
7 | public class TrackingVoyageNumber {
8 | @Column(name="voyage_number")
9 | private String voyageNumber;
10 | public TrackingVoyageNumber(){}
11 | public TrackingVoyageNumber(String voyageNumber){this.voyageNumber = voyageNumber;}
12 | public String getVoyageNumber(){return this.voyageNumber;}
13 | public void setVoyageNumber(String voyageNumber){this.voyageNumber = voyageNumber;}
14 | }
15 |
--------------------------------------------------------------------------------
/Chapter4/trackingms/src/main/java/com/practicalddd/cargotracker/trackingms/interfaces/events/CargoBookedEventHandler.java:
--------------------------------------------------------------------------------
1 | package com.practicalddd.cargotracker.trackingms.interfaces.events;
2 |
3 | import com.practicalddd.cargotracker.shareddomain.events.CargoBookedEvent;
4 |
5 | import javax.enterprise.context.ApplicationScoped;
6 | import javax.enterprise.event.Observes;
7 |
8 | @ApplicationScoped
9 | public class CargoBookedEventHandler {
10 |
11 | public void testEventObserving(@Observes CargoBookedEvent event) {
12 | // Processing of an event
13 | System.out.println("***Just a Test***"+event.getId());
14 | }
15 | }
16 |
--------------------------------------------------------------------------------
/Chapter5/bookingms/.gitignore:
--------------------------------------------------------------------------------
1 | HELP.md
2 | target/
3 | !.mvn/wrapper/maven-wrapper.jar
4 | !**/src/main/**
5 | !**/src/test/**
6 |
7 | ### STS ###
8 | .apt_generated
9 | .classpath
10 | .factorypath
11 | .project
12 | .settings
13 | .springBeans
14 | .sts4-cache
15 |
16 | ### IntelliJ IDEA ###
17 | .idea
18 | *.iws
19 | *.iml
20 | *.ipr
21 |
22 | ### NetBeans ###
23 | /nbproject/private/
24 | /nbbuild/
25 | /dist/
26 | /nbdist/
27 | /.nb-gradle/
28 | build/
29 |
30 | ### VS Code ###
31 | .vscode/
32 |
--------------------------------------------------------------------------------
/Chapter5/bookingms/.mvn/wrapper/maven-wrapper.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/practicalddd/practicaldddbook/8ecfe7ac6bdbc527ada0603ea472d425a7ee1e4b/Chapter5/bookingms/.mvn/wrapper/maven-wrapper.jar
--------------------------------------------------------------------------------
/Chapter5/bookingms/.mvn/wrapper/maven-wrapper.properties:
--------------------------------------------------------------------------------
1 | distributionUrl=https://repo.maven.apache.org/maven2/org/apache/maven/apache-maven/3.6.0/apache-maven-3.6.0-bin.zip
2 |
--------------------------------------------------------------------------------
/Chapter5/bookingms/src/main/.DS_Store:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/practicalddd/practicaldddbook/8ecfe7ac6bdbc527ada0603ea472d425a7ee1e4b/Chapter5/bookingms/src/main/.DS_Store
--------------------------------------------------------------------------------
/Chapter5/bookingms/src/main/java/.DS_Store:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/practicalddd/practicaldddbook/8ecfe7ac6bdbc527ada0603ea472d425a7ee1e4b/Chapter5/bookingms/src/main/java/.DS_Store
--------------------------------------------------------------------------------
/Chapter5/bookingms/src/main/java/com/.DS_Store:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/practicalddd/practicaldddbook/8ecfe7ac6bdbc527ada0603ea472d425a7ee1e4b/Chapter5/bookingms/src/main/java/com/.DS_Store
--------------------------------------------------------------------------------
/Chapter5/bookingms/src/main/java/com/practicalddd/.DS_Store:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/practicalddd/practicaldddbook/8ecfe7ac6bdbc527ada0603ea472d425a7ee1e4b/Chapter5/bookingms/src/main/java/com/practicalddd/.DS_Store
--------------------------------------------------------------------------------
/Chapter5/bookingms/src/main/java/com/practicalddd/cargotracker/.DS_Store:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/practicalddd/practicaldddbook/8ecfe7ac6bdbc527ada0603ea472d425a7ee1e4b/Chapter5/bookingms/src/main/java/com/practicalddd/cargotracker/.DS_Store
--------------------------------------------------------------------------------
/Chapter5/bookingms/src/main/java/com/practicalddd/cargotracker/bookingms/.DS_Store:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/practicalddd/practicaldddbook/8ecfe7ac6bdbc527ada0603ea472d425a7ee1e4b/Chapter5/bookingms/src/main/java/com/practicalddd/cargotracker/bookingms/.DS_Store
--------------------------------------------------------------------------------
/Chapter5/bookingms/src/main/java/com/practicalddd/cargotracker/bookingms/BookingmsApplication.java:
--------------------------------------------------------------------------------
1 | package com.practicalddd.cargotracker.bookingms;
2 |
3 | import org.springframework.boot.SpringApplication;
4 | import org.springframework.boot.autoconfigure.SpringBootApplication;
5 |
6 | @SpringBootApplication
7 | public class BookingmsApplication {
8 | public static void main(String[] args) {
9 | SpringApplication.run(BookingmsApplication.class, args);
10 | }
11 | }
12 |
--------------------------------------------------------------------------------
/Chapter5/bookingms/src/main/java/com/practicalddd/cargotracker/bookingms/application/.DS_Store:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/practicalddd/practicaldddbook/8ecfe7ac6bdbc527ada0603ea472d425a7ee1e4b/Chapter5/bookingms/src/main/java/com/practicalddd/cargotracker/bookingms/application/.DS_Store
--------------------------------------------------------------------------------
/Chapter5/bookingms/src/main/java/com/practicalddd/cargotracker/bookingms/application/internal/.DS_Store:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/practicalddd/practicaldddbook/8ecfe7ac6bdbc527ada0603ea472d425a7ee1e4b/Chapter5/bookingms/src/main/java/com/practicalddd/cargotracker/bookingms/application/internal/.DS_Store
--------------------------------------------------------------------------------
/Chapter5/bookingms/src/main/java/com/practicalddd/cargotracker/bookingms/domain/.DS_Store:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/practicalddd/practicaldddbook/8ecfe7ac6bdbc527ada0603ea472d425a7ee1e4b/Chapter5/bookingms/src/main/java/com/practicalddd/cargotracker/bookingms/domain/.DS_Store
--------------------------------------------------------------------------------
/Chapter5/bookingms/src/main/java/com/practicalddd/cargotracker/bookingms/domain/model/.DS_Store:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/practicalddd/practicaldddbook/8ecfe7ac6bdbc527ada0603ea472d425a7ee1e4b/Chapter5/bookingms/src/main/java/com/practicalddd/cargotracker/bookingms/domain/model/.DS_Store
--------------------------------------------------------------------------------
/Chapter5/bookingms/src/main/java/com/practicalddd/cargotracker/bookingms/domain/model/aggregates/BookingId.java:
--------------------------------------------------------------------------------
1 | package com.practicalddd.cargotracker.bookingms.domain.model.aggregates;
2 |
3 |
4 | import javax.persistence.Column;
5 | import javax.persistence.Embeddable;
6 | import java.io.Serializable;
7 |
8 | /**
9 | * Aggregate Identifier for the Cargo Aggregate
10 | */
11 | @Embeddable
12 | public class BookingId implements Serializable {
13 |
14 | @Column(name="booking_id")
15 | private String bookingId;
16 |
17 | public BookingId(){}
18 |
19 | public BookingId(String bookingId){this.bookingId = bookingId;}
20 |
21 | public String getBookingId(){return this.bookingId;}
22 | }
23 |
--------------------------------------------------------------------------------
/Chapter5/bookingms/src/main/java/com/practicalddd/cargotracker/bookingms/domain/model/valueobjects/RoutingStatus.java:
--------------------------------------------------------------------------------
1 | package com.practicalddd.cargotracker.bookingms.domain.model.valueobjects;
2 |
3 | public enum RoutingStatus {
4 |
5 | NOT_ROUTED, ROUTED, MISROUTED;
6 | }
7 |
--------------------------------------------------------------------------------
/Chapter5/bookingms/src/main/java/com/practicalddd/cargotracker/bookingms/domain/model/valueobjects/TransportStatus.java:
--------------------------------------------------------------------------------
1 | package com.practicalddd.cargotracker.bookingms.domain.model.valueobjects;
2 |
3 | public enum TransportStatus {
4 | NOT_RECEIVED, IN_PORT, ONBOARD_CARRIER, CLAIMED, UNKNOWN;
5 | }
6 |
--------------------------------------------------------------------------------
/Chapter5/bookingms/src/main/java/com/practicalddd/cargotracker/bookingms/infrastructure/.DS_Store:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/practicalddd/practicaldddbook/8ecfe7ac6bdbc527ada0603ea472d425a7ee1e4b/Chapter5/bookingms/src/main/java/com/practicalddd/cargotracker/bookingms/infrastructure/.DS_Store
--------------------------------------------------------------------------------
/Chapter5/bookingms/src/main/java/com/practicalddd/cargotracker/bookingms/infrastructure/brokers/rabbitmq/CargoEventSource.java:
--------------------------------------------------------------------------------
1 | package com.practicalddd.cargotracker.bookingms.infrastructure.brokers.rabbitmq;
2 |
3 | import org.springframework.cloud.stream.annotation.Output;
4 | import org.springframework.messaging.MessageChannel;
5 |
6 | /**
7 | * Interface depicting all output channels
8 | */
9 | public interface CargoEventSource {
10 |
11 | @Output("cargoBookingChannel")
12 | MessageChannel cargoBooking();
13 |
14 | @Output("cargoRoutingChannel")
15 | MessageChannel cargoRouting();
16 |
17 | }
18 |
--------------------------------------------------------------------------------
/Chapter5/bookingms/src/main/java/com/practicalddd/cargotracker/bookingms/interfaces/.DS_Store:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/practicalddd/practicaldddbook/8ecfe7ac6bdbc527ada0603ea472d425a7ee1e4b/Chapter5/bookingms/src/main/java/com/practicalddd/cargotracker/bookingms/interfaces/.DS_Store
--------------------------------------------------------------------------------
/Chapter5/bookingms/src/main/java/com/practicalddd/cargotracker/bookingms/interfaces/rest/dto/RouteCargoResource.java:
--------------------------------------------------------------------------------
1 | package com.practicalddd.cargotracker.bookingms.interfaces.rest.dto;
2 |
3 |
4 | /**
5 | * Resource class for the Book Cargo Command API
6 | */
7 | public class RouteCargoResource {
8 |
9 | private String bookingId;
10 |
11 | public RouteCargoResource(){}
12 |
13 | public RouteCargoResource(String bookingId){
14 | this.bookingId = bookingId;
15 | }
16 |
17 | public String getBookingId(){return this.bookingId;}
18 |
19 | public void setBookingId(String bookingId){this.bookingId = bookingId;}
20 | }
21 |
--------------------------------------------------------------------------------
/Chapter5/bookingms/src/main/java/com/practicalddd/cargotracker/shareddomain/.DS_Store:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/practicalddd/practicaldddbook/8ecfe7ac6bdbc527ada0603ea472d425a7ee1e4b/Chapter5/bookingms/src/main/java/com/practicalddd/cargotracker/shareddomain/.DS_Store
--------------------------------------------------------------------------------
/Chapter5/bookingms/src/main/java/com/practicalddd/cargotracker/shareddomain/events/CargoBookedEvent.java:
--------------------------------------------------------------------------------
1 | package com.practicalddd.cargotracker.shareddomain.events;
2 |
3 |
4 | /**
5 | * Event Class for the Cargo Booked Event. Wraps up the Cargo Booking identifier
6 | * for the event
7 | */
8 |
9 | public class CargoBookedEvent {
10 | private CargoBookedEventData cargoBookedEventData;
11 | public CargoBookedEvent(){}
12 | public CargoBookedEvent(CargoBookedEventData cargoBookedEventData){
13 | this.cargoBookedEventData = cargoBookedEventData;
14 | }
15 |
16 | public CargoBookedEventData getCargoBookedEventData() {
17 | return cargoBookedEventData;
18 | }
19 | }
20 |
--------------------------------------------------------------------------------
/Chapter5/bookingms/src/main/java/com/practicalddd/cargotracker/shareddomain/events/CargoBookedEventData.java:
--------------------------------------------------------------------------------
1 | package com.practicalddd.cargotracker.shareddomain.events;
2 |
3 |
4 | /**
5 | * Event Data for the Cargo Booked Event
6 | */
7 | public class CargoBookedEventData {
8 |
9 | private String bookingId;
10 |
11 | public CargoBookedEventData(){}
12 | public CargoBookedEventData(String bookingId){ this.bookingId = bookingId; }
13 | public String getBookingId(){return this.bookingId;}
14 |
15 | }
16 |
--------------------------------------------------------------------------------
/Chapter5/bookingms/src/main/java/com/practicalddd/cargotracker/shareddomain/events/CargoHandledEvent.java:
--------------------------------------------------------------------------------
1 | package com.practicalddd.cargotracker.shareddomain.events;
2 |
3 | public class CargoHandledEvent {
4 | private CargoHandledEventData cargoHandledEventData;
5 | public CargoHandledEvent(){}
6 | public CargoHandledEvent(CargoHandledEventData cargoHandledEventData){
7 | this.cargoHandledEventData = cargoHandledEventData;
8 | }
9 | public CargoHandledEventData getCargoHandledEventData() {
10 | return cargoHandledEventData;
11 | }
12 | }
13 |
--------------------------------------------------------------------------------
/Chapter5/bookingms/src/main/java/com/practicalddd/cargotracker/shareddomain/events/CargoRoutedEvent.java:
--------------------------------------------------------------------------------
1 | package com.practicalddd.cargotracker.shareddomain.events;
2 |
3 |
4 | /**
5 | * Event Class for the Cargo Routed Event. Wraps up the Cargo
6 | */
7 |
8 | public class CargoRoutedEvent {
9 | private CargoRoutedEventData cargoRoutedEventData;
10 | public CargoRoutedEvent(){}
11 | public CargoRoutedEvent(CargoRoutedEventData cargoRoutedEventData){
12 | this.cargoRoutedEventData = cargoRoutedEventData;
13 | }
14 | public CargoRoutedEventData getCargoRoutedEventData() {
15 | return this.cargoRoutedEventData;
16 | }
17 | }
--------------------------------------------------------------------------------
/Chapter5/bookingms/src/main/java/com/practicalddd/cargotracker/shareddomain/events/CargoRoutedEventData.java:
--------------------------------------------------------------------------------
1 | package com.practicalddd.cargotracker.shareddomain.events;
2 |
3 |
4 | /**
5 | * Event Data for the Cargo Routed Event
6 | */
7 | public class CargoRoutedEventData {
8 |
9 | private String bookingId;
10 | public CargoRoutedEventData(){}
11 | public CargoRoutedEventData(String bookingId){ this.bookingId = bookingId; }
12 | public void setBookingId(String bookingId){this.bookingId = bookingId;}
13 | public String getBookingId(){return this.bookingId;}
14 |
15 | }
16 |
--------------------------------------------------------------------------------
/Chapter5/bookingms/src/main/resources/application.properties:
--------------------------------------------------------------------------------
1 | spring.datasource.url=jdbc:mysql://localhost:3306/bookingmsdb?zeroDateTimeBehavior=CONVERT_TO_NULL&serverTimezone=EST
2 | spring.datasource.username=bookingmsdb
3 | spring.datasource.password=bookingmsdb
4 |
5 | spring.rabbitmq.host=localhost
6 | spring.rabbitmq.port=5672
7 | spring.rabbitmq.username=guest
8 | spring.rabbitmq.password=guest
9 | spring.cloud.stream.bindings.cargoBookingChannel.destination=cargotracker.cargobookings
10 | spring.cloud.stream.bindings.cargoRoutingChannel.destination=cargotracker.cargoroutings
--------------------------------------------------------------------------------
/Chapter5/bookingms/src/test/java/com/practicalddd/cargotracker/bookingms/BookingmsApplicationTests.java:
--------------------------------------------------------------------------------
1 | package com.practicalddd.cargotracker.bookingms;
2 |
3 | import org.junit.Test;
4 | import org.junit.runner.RunWith;
5 | import org.springframework.boot.test.context.SpringBootTest;
6 | import org.springframework.test.context.junit4.SpringRunner;
7 |
8 | @RunWith(SpringRunner.class)
9 | @SpringBootTest
10 | public class BookingmsApplicationTests {
11 |
12 | @Test
13 | public void contextLoads() {
14 | }
15 |
16 | }
17 |
--------------------------------------------------------------------------------
/Chapter5/handlingms/.gitignore:
--------------------------------------------------------------------------------
1 | HELP.md
2 | target/
3 | !.mvn/wrapper/maven-wrapper.jar
4 | !**/src/main/**
5 | !**/src/test/**
6 |
7 | ### STS ###
8 | .apt_generated
9 | .classpath
10 | .factorypath
11 | .project
12 | .settings
13 | .springBeans
14 | .sts4-cache
15 |
16 | ### IntelliJ IDEA ###
17 | .idea
18 | *.iws
19 | *.iml
20 | *.ipr
21 |
22 | ### NetBeans ###
23 | /nbproject/private/
24 | /nbbuild/
25 | /dist/
26 | /nbdist/
27 | /.nb-gradle/
28 | build/
29 |
30 | ### VS Code ###
31 | .vscode/
32 |
--------------------------------------------------------------------------------
/Chapter5/handlingms/.mvn/wrapper/maven-wrapper.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/practicalddd/practicaldddbook/8ecfe7ac6bdbc527ada0603ea472d425a7ee1e4b/Chapter5/handlingms/.mvn/wrapper/maven-wrapper.jar
--------------------------------------------------------------------------------
/Chapter5/handlingms/.mvn/wrapper/maven-wrapper.properties:
--------------------------------------------------------------------------------
1 | distributionUrl=https://repo.maven.apache.org/maven2/org/apache/maven/apache-maven/3.6.0/apache-maven-3.6.0-bin.zip
2 |
--------------------------------------------------------------------------------
/Chapter5/handlingms/src/main/.DS_Store:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/practicalddd/practicaldddbook/8ecfe7ac6bdbc527ada0603ea472d425a7ee1e4b/Chapter5/handlingms/src/main/.DS_Store
--------------------------------------------------------------------------------
/Chapter5/handlingms/src/main/java/.DS_Store:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/practicalddd/practicaldddbook/8ecfe7ac6bdbc527ada0603ea472d425a7ee1e4b/Chapter5/handlingms/src/main/java/.DS_Store
--------------------------------------------------------------------------------
/Chapter5/handlingms/src/main/java/com/.DS_Store:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/practicalddd/practicaldddbook/8ecfe7ac6bdbc527ada0603ea472d425a7ee1e4b/Chapter5/handlingms/src/main/java/com/.DS_Store
--------------------------------------------------------------------------------
/Chapter5/handlingms/src/main/java/com/practicalddd/.DS_Store:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/practicalddd/practicaldddbook/8ecfe7ac6bdbc527ada0603ea472d425a7ee1e4b/Chapter5/handlingms/src/main/java/com/practicalddd/.DS_Store
--------------------------------------------------------------------------------
/Chapter5/handlingms/src/main/java/com/practicalddd/cargotracker/.DS_Store:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/practicalddd/practicaldddbook/8ecfe7ac6bdbc527ada0603ea472d425a7ee1e4b/Chapter5/handlingms/src/main/java/com/practicalddd/cargotracker/.DS_Store
--------------------------------------------------------------------------------
/Chapter5/handlingms/src/main/java/com/practicalddd/cargotracker/handlingms/.DS_Store:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/practicalddd/practicaldddbook/8ecfe7ac6bdbc527ada0603ea472d425a7ee1e4b/Chapter5/handlingms/src/main/java/com/practicalddd/cargotracker/handlingms/.DS_Store
--------------------------------------------------------------------------------
/Chapter5/handlingms/src/main/java/com/practicalddd/cargotracker/handlingms/HandlingmsApplication.java:
--------------------------------------------------------------------------------
1 | package com.practicalddd.cargotracker.handlingms;
2 |
3 | import org.springframework.boot.SpringApplication;
4 | import org.springframework.boot.autoconfigure.SpringBootApplication;
5 |
6 | @SpringBootApplication
7 | public class HandlingmsApplication {
8 |
9 | public static void main(String[] args) {
10 | SpringApplication.run(HandlingmsApplication.class, args);
11 | }
12 |
13 | }
14 |
--------------------------------------------------------------------------------
/Chapter5/handlingms/src/main/java/com/practicalddd/cargotracker/handlingms/application/.DS_Store:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/practicalddd/practicaldddbook/8ecfe7ac6bdbc527ada0603ea472d425a7ee1e4b/Chapter5/handlingms/src/main/java/com/practicalddd/cargotracker/handlingms/application/.DS_Store
--------------------------------------------------------------------------------
/Chapter5/handlingms/src/main/java/com/practicalddd/cargotracker/handlingms/application/internal/.DS_Store:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/practicalddd/practicaldddbook/8ecfe7ac6bdbc527ada0603ea472d425a7ee1e4b/Chapter5/handlingms/src/main/java/com/practicalddd/cargotracker/handlingms/application/internal/.DS_Store
--------------------------------------------------------------------------------
/Chapter5/handlingms/src/main/java/com/practicalddd/cargotracker/handlingms/domain/.DS_Store:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/practicalddd/practicaldddbook/8ecfe7ac6bdbc527ada0603ea472d425a7ee1e4b/Chapter5/handlingms/src/main/java/com/practicalddd/cargotracker/handlingms/domain/.DS_Store
--------------------------------------------------------------------------------
/Chapter5/handlingms/src/main/java/com/practicalddd/cargotracker/handlingms/domain/model/.DS_Store:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/practicalddd/practicaldddbook/8ecfe7ac6bdbc527ada0603ea472d425a7ee1e4b/Chapter5/handlingms/src/main/java/com/practicalddd/cargotracker/handlingms/domain/model/.DS_Store
--------------------------------------------------------------------------------
/Chapter5/handlingms/src/main/java/com/practicalddd/cargotracker/handlingms/domain/model/valueobjects/CargoBookingId.java:
--------------------------------------------------------------------------------
1 | package com.practicalddd.cargotracker.handlingms.domain.model.valueobjects;
2 |
3 | import javax.persistence.Column;
4 | import javax.persistence.Embeddable;
5 |
6 | @Embeddable
7 | public class CargoBookingId {
8 | @Column(name = "booking_id")
9 | private String bookingId;
10 | public CargoBookingId(){}
11 | public CargoBookingId(String bookingId){this.bookingId = bookingId;}
12 | public void setBookingId(String bookingId){this.bookingId = bookingId;}
13 | public String getBookingId(){return this.bookingId;}
14 | }
15 |
--------------------------------------------------------------------------------
/Chapter5/handlingms/src/main/java/com/practicalddd/cargotracker/handlingms/domain/model/valueobjects/Location.java:
--------------------------------------------------------------------------------
1 | package com.practicalddd.cargotracker.handlingms.domain.model.valueobjects;
2 |
3 | import javax.persistence.Column;
4 | import javax.persistence.Embeddable;
5 |
6 | /**
7 | * Location class represented by a unique 5-diigit UN Location code.
8 | */
9 | @Embeddable
10 | public class Location {
11 |
12 | @Column(name = "location")
13 | private String unLocCode;
14 | public Location(){}
15 | public Location(String unLocCode){this.unLocCode = unLocCode;}
16 | public void setUnLocCode(String unLocCode){this.unLocCode = unLocCode;}
17 | public String getUnLocCode(){return this.unLocCode;}
18 | }
19 |
--------------------------------------------------------------------------------
/Chapter5/handlingms/src/main/java/com/practicalddd/cargotracker/handlingms/domain/model/valueobjects/VoyageNumber.java:
--------------------------------------------------------------------------------
1 | package com.practicalddd.cargotracker.handlingms.domain.model.valueobjects;
2 |
3 | import javax.persistence.Column;
4 | import javax.persistence.Embeddable;
5 |
6 | @Embeddable
7 | public class VoyageNumber {
8 | @Column(name="voyage_number")
9 | private String voyageNumber;
10 | public VoyageNumber(){}
11 | public VoyageNumber(String voyageNumber){this.voyageNumber = voyageNumber;}
12 | public String getVoyageNumber(){return this.voyageNumber;}
13 | public void setVoyageNumber(String voyageNumber){this.voyageNumber = voyageNumber;}
14 | }
15 |
--------------------------------------------------------------------------------
/Chapter5/handlingms/src/main/java/com/practicalddd/cargotracker/handlingms/infrastructure/.DS_Store:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/practicalddd/practicaldddbook/8ecfe7ac6bdbc527ada0603ea472d425a7ee1e4b/Chapter5/handlingms/src/main/java/com/practicalddd/cargotracker/handlingms/infrastructure/.DS_Store
--------------------------------------------------------------------------------
/Chapter5/handlingms/src/main/java/com/practicalddd/cargotracker/handlingms/infrastructure/brokers/rabbitmq/CargoEventSource.java:
--------------------------------------------------------------------------------
1 | package com.practicalddd.cargotracker.handlingms.infrastructure.brokers.rabbitmq;
2 |
3 | import org.springframework.cloud.stream.annotation.Output;
4 | import org.springframework.messaging.MessageChannel;
5 |
6 | /**
7 | * Interface depicting all output channels
8 | */
9 | public interface CargoEventSource {
10 |
11 | @Output("cargoHandlingChannel")
12 | MessageChannel cargoHandling();
13 |
14 | }
15 |
--------------------------------------------------------------------------------
/Chapter5/handlingms/src/main/java/com/practicalddd/cargotracker/handlingms/infrastructure/repositories/.DS_Store:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/practicalddd/practicaldddbook/8ecfe7ac6bdbc527ada0603ea472d425a7ee1e4b/Chapter5/handlingms/src/main/java/com/practicalddd/cargotracker/handlingms/infrastructure/repositories/.DS_Store
--------------------------------------------------------------------------------
/Chapter5/handlingms/src/main/java/com/practicalddd/cargotracker/handlingms/infrastructure/repositories/jpa/HandlingActivityRepository.java:
--------------------------------------------------------------------------------
1 | package com.practicalddd.cargotracker.handlingms.infrastructure.repositories.jpa;
2 |
3 | import com.practicalddd.cargotracker.handlingms.domain.model.aggregates.HandlingActivity;
4 | import com.practicalddd.cargotracker.handlingms.domain.model.valueobjects.CargoBookingId;
5 | import org.springframework.data.jpa.repository.JpaRepository;
6 |
7 | public interface HandlingActivityRepository extends JpaRepository {
8 | HandlingActivity findByBookingId(CargoBookingId cargoBookingId);
9 | }
10 |
--------------------------------------------------------------------------------
/Chapter5/handlingms/src/main/java/com/practicalddd/cargotracker/handlingms/interfaces/.DS_Store:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/practicalddd/practicaldddbook/8ecfe7ac6bdbc527ada0603ea472d425a7ee1e4b/Chapter5/handlingms/src/main/java/com/practicalddd/cargotracker/handlingms/interfaces/.DS_Store
--------------------------------------------------------------------------------
/Chapter5/handlingms/src/main/java/com/practicalddd/cargotracker/handlingms/interfaces/events/.DS_Store:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/practicalddd/practicaldddbook/8ecfe7ac6bdbc527ada0603ea472d425a7ee1e4b/Chapter5/handlingms/src/main/java/com/practicalddd/cargotracker/handlingms/interfaces/events/.DS_Store
--------------------------------------------------------------------------------
/Chapter5/handlingms/src/main/java/com/practicalddd/cargotracker/handlingms/interfaces/rest/.DS_Store:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/practicalddd/practicaldddbook/8ecfe7ac6bdbc527ada0603ea472d425a7ee1e4b/Chapter5/handlingms/src/main/java/com/practicalddd/cargotracker/handlingms/interfaces/rest/.DS_Store
--------------------------------------------------------------------------------
/Chapter5/handlingms/src/main/java/com/practicalddd/cargotracker/shareddomain/.DS_Store:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/practicalddd/practicaldddbook/8ecfe7ac6bdbc527ada0603ea472d425a7ee1e4b/Chapter5/handlingms/src/main/java/com/practicalddd/cargotracker/shareddomain/.DS_Store
--------------------------------------------------------------------------------
/Chapter5/handlingms/src/main/java/com/practicalddd/cargotracker/shareddomain/events/CargoBookedEvent.java:
--------------------------------------------------------------------------------
1 | package com.practicalddd.cargotracker.shareddomain.events;
2 |
3 |
4 | /**
5 | * Event Class for the Cargo Booked Event. Wraps up the Cargo Booking identifier
6 | * for the event
7 | */
8 |
9 | public class CargoBookedEvent {
10 | private CargoBookedEventData cargoBookedEventData;
11 | private CargoBookedEvent(){}
12 | public CargoBookedEvent(CargoBookedEventData cargoBookedEventData){
13 | this.cargoBookedEventData = cargoBookedEventData;
14 | }
15 | }
16 |
--------------------------------------------------------------------------------
/Chapter5/handlingms/src/main/java/com/practicalddd/cargotracker/shareddomain/events/CargoBookedEventData.java:
--------------------------------------------------------------------------------
1 | package com.practicalddd.cargotracker.shareddomain.events;
2 |
3 |
4 | /**
5 | * Event Data for the Cargo Booked Event
6 | */
7 | public class CargoBookedEventData {
8 |
9 | private String bookingId;
10 |
11 | public CargoBookedEventData(){}
12 | public CargoBookedEventData(String bookingId){ this.bookingId = bookingId; }
13 | public String getBookingId(){return this.bookingId;}
14 |
15 | }
16 |
--------------------------------------------------------------------------------
/Chapter5/handlingms/src/main/java/com/practicalddd/cargotracker/shareddomain/events/CargoHandledEvent.java:
--------------------------------------------------------------------------------
1 | package com.practicalddd.cargotracker.shareddomain.events;
2 |
3 | public class CargoHandledEvent {
4 | private CargoHandledEventData cargoHandledEventData;
5 | public CargoHandledEvent(){}
6 | public CargoHandledEvent(CargoHandledEventData cargoHandledEventData){
7 | this.cargoHandledEventData = cargoHandledEventData;
8 | }
9 | public CargoHandledEventData getCargoHandledEventData() {
10 | return this.cargoHandledEventData;
11 | }
12 | }
13 |
--------------------------------------------------------------------------------
/Chapter5/handlingms/src/main/java/com/practicalddd/cargotracker/shareddomain/events/CargoRoutedEvent.java:
--------------------------------------------------------------------------------
1 | package com.practicalddd.cargotracker.shareddomain.events;
2 |
3 |
4 | /**
5 | * Event Class for the Cargo Routed Event. Wraps up the Cargo
6 | */
7 |
8 | public class CargoRoutedEvent {
9 | private CargoRoutedEventData cargoRoutedEventData;
10 | public CargoRoutedEvent(CargoRoutedEventData cargoRoutedEventData){
11 | this.cargoRoutedEventData = cargoRoutedEventData;
12 | }
13 | public CargoRoutedEventData getContent() {
14 | return cargoRoutedEventData;
15 | }
16 | }
--------------------------------------------------------------------------------
/Chapter5/handlingms/src/main/java/com/practicalddd/cargotracker/shareddomain/events/CargoRoutedEventData.java:
--------------------------------------------------------------------------------
1 | package com.practicalddd.cargotracker.shareddomain.events;
2 |
3 |
4 | /**
5 | * Event Data for the Cargo Routed Event
6 | */
7 | public class CargoRoutedEventData {
8 |
9 | private String bookingId;
10 |
11 | public CargoRoutedEventData(String bookingId){ this.bookingId = bookingId; }
12 |
13 | public String getBookingId(){return this.bookingId;}
14 |
15 | }
16 |
--------------------------------------------------------------------------------
/Chapter5/handlingms/src/main/resources/application.properties:
--------------------------------------------------------------------------------
1 | spring.datasource.url=jdbc:mysql://localhost:3306/handlingmsdb?zeroDateTimeBehavior=CONVERT_TO_NULL&serverTimezone=EST
2 | spring.datasource.username=handlingmsdb
3 | spring.datasource.password=handlingmsdb
4 |
5 | spring.rabbitmq.host=localhost
6 | spring.rabbitmq.port=5672
7 | spring.rabbitmq.username=guest
8 | spring.rabbitmq.password=guest
9 |
10 | spring.cloud.stream.bindings.cargoHandlingChannel.destination=cargotracker.cargohandlings
11 |
12 | server.port=8084
--------------------------------------------------------------------------------
/Chapter5/handlingms/src/test/java/com/practicalddd/cargotracker/handlingms/HandlingmsApplicationTests.java:
--------------------------------------------------------------------------------
1 | package com.practicalddd.cargotracker.handlingms;
2 |
3 | import org.junit.Test;
4 | import org.junit.runner.RunWith;
5 | import org.springframework.boot.test.context.SpringBootTest;
6 | import org.springframework.test.context.junit4.SpringRunner;
7 |
8 | @RunWith(SpringRunner.class)
9 | @SpringBootTest
10 | public class HandlingmsApplicationTests {
11 |
12 | @Test
13 | public void contextLoads() {
14 | }
15 |
16 | }
17 |
--------------------------------------------------------------------------------
/Chapter5/routingms/.gitignore:
--------------------------------------------------------------------------------
1 | HELP.md
2 | target/
3 | !.mvn/wrapper/maven-wrapper.jar
4 | !**/src/main/**
5 | !**/src/test/**
6 |
7 | ### STS ###
8 | .apt_generated
9 | .classpath
10 | .factorypath
11 | .project
12 | .settings
13 | .springBeans
14 | .sts4-cache
15 |
16 | ### IntelliJ IDEA ###
17 | .idea
18 | *.iws
19 | *.iml
20 | *.ipr
21 |
22 | ### NetBeans ###
23 | /nbproject/private/
24 | /nbbuild/
25 | /dist/
26 | /nbdist/
27 | /.nb-gradle/
28 | build/
29 |
30 | ### VS Code ###
31 | .vscode/
32 |
--------------------------------------------------------------------------------
/Chapter5/routingms/.mvn/wrapper/maven-wrapper.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/practicalddd/practicaldddbook/8ecfe7ac6bdbc527ada0603ea472d425a7ee1e4b/Chapter5/routingms/.mvn/wrapper/maven-wrapper.jar
--------------------------------------------------------------------------------
/Chapter5/routingms/.mvn/wrapper/maven-wrapper.properties:
--------------------------------------------------------------------------------
1 | distributionUrl=https://repo.maven.apache.org/maven2/org/apache/maven/apache-maven/3.6.0/apache-maven-3.6.0-bin.zip
2 |
--------------------------------------------------------------------------------
/Chapter5/routingms/src/main/.DS_Store:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/practicalddd/practicaldddbook/8ecfe7ac6bdbc527ada0603ea472d425a7ee1e4b/Chapter5/routingms/src/main/.DS_Store
--------------------------------------------------------------------------------
/Chapter5/routingms/src/main/java/.DS_Store:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/practicalddd/practicaldddbook/8ecfe7ac6bdbc527ada0603ea472d425a7ee1e4b/Chapter5/routingms/src/main/java/.DS_Store
--------------------------------------------------------------------------------
/Chapter5/routingms/src/main/java/com/.DS_Store:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/practicalddd/practicaldddbook/8ecfe7ac6bdbc527ada0603ea472d425a7ee1e4b/Chapter5/routingms/src/main/java/com/.DS_Store
--------------------------------------------------------------------------------
/Chapter5/routingms/src/main/java/com/practicalddd/.DS_Store:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/practicalddd/practicaldddbook/8ecfe7ac6bdbc527ada0603ea472d425a7ee1e4b/Chapter5/routingms/src/main/java/com/practicalddd/.DS_Store
--------------------------------------------------------------------------------
/Chapter5/routingms/src/main/java/com/practicalddd/cargotracker/.DS_Store:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/practicalddd/practicaldddbook/8ecfe7ac6bdbc527ada0603ea472d425a7ee1e4b/Chapter5/routingms/src/main/java/com/practicalddd/cargotracker/.DS_Store
--------------------------------------------------------------------------------
/Chapter5/routingms/src/main/java/com/practicalddd/cargotracker/routingms/.DS_Store:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/practicalddd/practicaldddbook/8ecfe7ac6bdbc527ada0603ea472d425a7ee1e4b/Chapter5/routingms/src/main/java/com/practicalddd/cargotracker/routingms/.DS_Store
--------------------------------------------------------------------------------
/Chapter5/routingms/src/main/java/com/practicalddd/cargotracker/routingms/RoutingmsApplication.java:
--------------------------------------------------------------------------------
1 | package com.practicalddd.cargotracker.routingms;
2 |
3 | import org.springframework.boot.SpringApplication;
4 | import org.springframework.boot.autoconfigure.SpringBootApplication;
5 |
6 | @SpringBootApplication
7 | public class RoutingmsApplication {
8 |
9 | public static void main(String[] args) {
10 | SpringApplication.run(RoutingmsApplication.class, args);
11 | }
12 |
13 | }
14 |
--------------------------------------------------------------------------------
/Chapter5/routingms/src/main/java/com/practicalddd/cargotracker/routingms/application/.DS_Store:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/practicalddd/practicaldddbook/8ecfe7ac6bdbc527ada0603ea472d425a7ee1e4b/Chapter5/routingms/src/main/java/com/practicalddd/cargotracker/routingms/application/.DS_Store
--------------------------------------------------------------------------------
/Chapter5/routingms/src/main/java/com/practicalddd/cargotracker/routingms/application/internal/.DS_Store:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/practicalddd/practicaldddbook/8ecfe7ac6bdbc527ada0603ea472d425a7ee1e4b/Chapter5/routingms/src/main/java/com/practicalddd/cargotracker/routingms/application/internal/.DS_Store
--------------------------------------------------------------------------------
/Chapter5/routingms/src/main/java/com/practicalddd/cargotracker/routingms/domain/.DS_Store:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/practicalddd/practicaldddbook/8ecfe7ac6bdbc527ada0603ea472d425a7ee1e4b/Chapter5/routingms/src/main/java/com/practicalddd/cargotracker/routingms/domain/.DS_Store
--------------------------------------------------------------------------------
/Chapter5/routingms/src/main/java/com/practicalddd/cargotracker/routingms/domain/model/.DS_Store:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/practicalddd/practicaldddbook/8ecfe7ac6bdbc527ada0603ea472d425a7ee1e4b/Chapter5/routingms/src/main/java/com/practicalddd/cargotracker/routingms/domain/model/.DS_Store
--------------------------------------------------------------------------------
/Chapter5/routingms/src/main/java/com/practicalddd/cargotracker/routingms/domain/model/valueobjects/VoyageNumber.java:
--------------------------------------------------------------------------------
1 | package com.practicalddd.cargotracker.routingms.domain.model.valueobjects;
2 |
3 | import javax.persistence.Column;
4 | import javax.persistence.Embeddable;
5 |
6 | @Embeddable
7 | public class VoyageNumber {
8 | @Column(name="voyage_number")
9 | private String voyageNumber;
10 | public VoyageNumber(){}
11 | public VoyageNumber(String voyageNumber){this.voyageNumber = voyageNumber;}
12 | public String getVoyageNumber(){return this.voyageNumber;}
13 | public void setVoyageNumber(String voyageNumber){this.voyageNumber = voyageNumber;}
14 | }
15 |
--------------------------------------------------------------------------------
/Chapter5/routingms/src/main/java/com/practicalddd/cargotracker/routingms/infrastructure/.DS_Store:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/practicalddd/practicaldddbook/8ecfe7ac6bdbc527ada0603ea472d425a7ee1e4b/Chapter5/routingms/src/main/java/com/practicalddd/cargotracker/routingms/infrastructure/.DS_Store
--------------------------------------------------------------------------------
/Chapter5/routingms/src/main/java/com/practicalddd/cargotracker/routingms/infrastructure/brokers/.DS_Store:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/practicalddd/practicaldddbook/8ecfe7ac6bdbc527ada0603ea472d425a7ee1e4b/Chapter5/routingms/src/main/java/com/practicalddd/cargotracker/routingms/infrastructure/brokers/.DS_Store
--------------------------------------------------------------------------------
/Chapter5/routingms/src/main/java/com/practicalddd/cargotracker/routingms/infrastructure/repositories/.DS_Store:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/practicalddd/practicaldddbook/8ecfe7ac6bdbc527ada0603ea472d425a7ee1e4b/Chapter5/routingms/src/main/java/com/practicalddd/cargotracker/routingms/infrastructure/repositories/.DS_Store
--------------------------------------------------------------------------------
/Chapter5/routingms/src/main/java/com/practicalddd/cargotracker/routingms/infrastructure/repositories/jpa/VoyageRepository.java:
--------------------------------------------------------------------------------
1 | package com.practicalddd.cargotracker.routingms.infrastructure.repositories.jpa;
2 |
3 |
4 | import com.practicalddd.cargotracker.routingms.domain.model.aggregates.Voyage;
5 | import org.springframework.data.jpa.repository.JpaRepository;
6 | import java.util.List;
7 |
8 | /**
9 | * Repository class for the Voyage Aggregate.
10 | */
11 | public interface VoyageRepository extends JpaRepository {
12 | /**
13 | * Find all Voyage Aggregates
14 | * @return
15 | */
16 | List findAll() ;
17 |
18 |
19 | }
20 |
--------------------------------------------------------------------------------
/Chapter5/routingms/src/main/java/com/practicalddd/cargotracker/routingms/interfaces/.DS_Store:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/practicalddd/practicaldddbook/8ecfe7ac6bdbc527ada0603ea472d425a7ee1e4b/Chapter5/routingms/src/main/java/com/practicalddd/cargotracker/routingms/interfaces/.DS_Store
--------------------------------------------------------------------------------
/Chapter5/routingms/src/main/java/com/practicalddd/cargotracker/routingms/interfaces/rest/.DS_Store:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/practicalddd/practicaldddbook/8ecfe7ac6bdbc527ada0603ea472d425a7ee1e4b/Chapter5/routingms/src/main/java/com/practicalddd/cargotracker/routingms/interfaces/rest/.DS_Store
--------------------------------------------------------------------------------
/Chapter5/routingms/src/main/java/com/practicalddd/cargotracker/shareddomain/.DS_Store:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/practicalddd/practicaldddbook/8ecfe7ac6bdbc527ada0603ea472d425a7ee1e4b/Chapter5/routingms/src/main/java/com/practicalddd/cargotracker/shareddomain/.DS_Store
--------------------------------------------------------------------------------
/Chapter5/routingms/src/main/java/com/practicalddd/cargotracker/shareddomain/events/CargoBookedEvent.java:
--------------------------------------------------------------------------------
1 | package com.practicalddd.cargotracker.shareddomain.events;
2 |
3 |
4 | /**
5 | * Event Class for the Cargo Booked Event. Wraps up the Cargo Booking identifier
6 | * for the event
7 | */
8 |
9 | public class CargoBookedEvent {
10 | private CargoBookedEventData cargoBookedEventData;
11 | private CargoBookedEvent(){}
12 | public CargoBookedEvent(CargoBookedEventData cargoBookedEventData){
13 | this.cargoBookedEventData = cargoBookedEventData;
14 | }
15 | }
16 |
--------------------------------------------------------------------------------
/Chapter5/routingms/src/main/java/com/practicalddd/cargotracker/shareddomain/events/CargoBookedEventData.java:
--------------------------------------------------------------------------------
1 | package com.practicalddd.cargotracker.shareddomain.events;
2 |
3 |
4 |
5 | /**
6 | * Event Data for the Cargo Booked Event
7 | */
8 | public class CargoBookedEventData {
9 |
10 | private String bookingId;
11 |
12 | public CargoBookedEventData(){}
13 | public CargoBookedEventData(String bookingId){ this.bookingId = bookingId; }
14 | public void setBookingId(String bookingId){this.bookingId = bookingId;}
15 | public String getBookingId(){return this.bookingId;}
16 |
17 | }
18 |
--------------------------------------------------------------------------------
/Chapter5/routingms/src/main/java/com/practicalddd/cargotracker/shareddomain/events/CargoHandledEvent.java:
--------------------------------------------------------------------------------
1 | package com.practicalddd.cargotracker.shareddomain.events;
2 |
3 |
4 | public class CargoHandledEvent {
5 |
6 | private CargoHandledEventData cargoHandledEventData;
7 | public void setContent(CargoHandledEventData cargoHandledEventData) { this.cargoHandledEventData = cargoHandledEventData; }
8 | public CargoHandledEventData getContent() {
9 | return cargoHandledEventData;
10 | }
11 | }
12 |
--------------------------------------------------------------------------------
/Chapter5/routingms/src/main/java/com/practicalddd/cargotracker/shareddomain/events/CargoRoutedEvent.java:
--------------------------------------------------------------------------------
1 | package com.practicalddd.cargotracker.shareddomain.events;
2 |
3 |
4 | /**
5 | * Event Class for the Cargo Routed Event. Wraps up the Cargo
6 | */
7 |
8 | public class CargoRoutedEvent {
9 | private CargoRoutedEventData cargoRoutedEventData;
10 | public void setContent(CargoRoutedEventData cargoRoutedEventData) { this.cargoRoutedEventData = cargoRoutedEventData; }
11 | public CargoRoutedEventData getContent() {
12 | return cargoRoutedEventData;
13 | }
14 | }
--------------------------------------------------------------------------------
/Chapter5/routingms/src/main/java/com/practicalddd/cargotracker/shareddomain/events/CargoRoutedEventData.java:
--------------------------------------------------------------------------------
1 | package com.practicalddd.cargotracker.shareddomain.events;
2 |
3 | /**
4 | * Event Data for the Cargo Routed Event
5 | */
6 | public class CargoRoutedEventData {
7 |
8 | private String bookingId;
9 |
10 | public CargoRoutedEventData(String bookingId){
11 | this.bookingId = bookingId;
12 | }
13 |
14 | public String getBookingId(){return this.bookingId;}
15 |
16 | }
17 |
--------------------------------------------------------------------------------
/Chapter5/routingms/src/main/resources/application.properties:
--------------------------------------------------------------------------------
1 | spring.datasource.url=jdbc:mysql://localhost:3306/routingmsdb?zeroDateTimeBehavior=CONVERT_TO_NULL&serverTimezone=EST
2 | spring.datasource.username=routingmsdb
3 | spring.datasource.password=routingmsdb
4 |
5 | spring.rabbitmq.host=localhost
6 | spring.rabbitmq.port=5672
7 | spring.rabbitmq.username=guest
8 | spring.rabbitmq.password=guest
9 |
10 | server.port=8081
--------------------------------------------------------------------------------
/Chapter5/routingms/src/test/java/com/practicalddd/cargotracker/routingms/RoutingmsApplicationTests.java:
--------------------------------------------------------------------------------
1 | package com.practicalddd.cargotracker.routingms;
2 |
3 | import org.junit.Test;
4 | import org.junit.runner.RunWith;
5 | import org.springframework.boot.test.context.SpringBootTest;
6 | import org.springframework.test.context.junit4.SpringRunner;
7 |
8 | @RunWith(SpringRunner.class)
9 | @SpringBootTest
10 | public class RoutingmsApplicationTests {
11 |
12 | @Test
13 | public void contextLoads() {
14 | }
15 |
16 | }
17 |
--------------------------------------------------------------------------------
/Chapter5/trackingms/.gitignore:
--------------------------------------------------------------------------------
1 | HELP.md
2 | target/
3 | !.mvn/wrapper/maven-wrapper.jar
4 | !**/src/main/**
5 | !**/src/test/**
6 |
7 | ### STS ###
8 | .apt_generated
9 | .classpath
10 | .factorypath
11 | .project
12 | .settings
13 | .springBeans
14 | .sts4-cache
15 |
16 | ### IntelliJ IDEA ###
17 | .idea
18 | *.iws
19 | *.iml
20 | *.ipr
21 |
22 | ### NetBeans ###
23 | /nbproject/private/
24 | /nbbuild/
25 | /dist/
26 | /nbdist/
27 | /.nb-gradle/
28 | build/
29 |
30 | ### VS Code ###
31 | .vscode/
32 |
--------------------------------------------------------------------------------
/Chapter5/trackingms/.mvn/wrapper/maven-wrapper.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/practicalddd/practicaldddbook/8ecfe7ac6bdbc527ada0603ea472d425a7ee1e4b/Chapter5/trackingms/.mvn/wrapper/maven-wrapper.jar
--------------------------------------------------------------------------------
/Chapter5/trackingms/.mvn/wrapper/maven-wrapper.properties:
--------------------------------------------------------------------------------
1 | distributionUrl=https://repo.maven.apache.org/maven2/org/apache/maven/apache-maven/3.6.0/apache-maven-3.6.0-bin.zip
2 |
--------------------------------------------------------------------------------
/Chapter5/trackingms/src/main/.DS_Store:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/practicalddd/practicaldddbook/8ecfe7ac6bdbc527ada0603ea472d425a7ee1e4b/Chapter5/trackingms/src/main/.DS_Store
--------------------------------------------------------------------------------
/Chapter5/trackingms/src/main/java/.DS_Store:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/practicalddd/practicaldddbook/8ecfe7ac6bdbc527ada0603ea472d425a7ee1e4b/Chapter5/trackingms/src/main/java/.DS_Store
--------------------------------------------------------------------------------
/Chapter5/trackingms/src/main/java/com/.DS_Store:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/practicalddd/practicaldddbook/8ecfe7ac6bdbc527ada0603ea472d425a7ee1e4b/Chapter5/trackingms/src/main/java/com/.DS_Store
--------------------------------------------------------------------------------
/Chapter5/trackingms/src/main/java/com/practicalddd/.DS_Store:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/practicalddd/practicaldddbook/8ecfe7ac6bdbc527ada0603ea472d425a7ee1e4b/Chapter5/trackingms/src/main/java/com/practicalddd/.DS_Store
--------------------------------------------------------------------------------
/Chapter5/trackingms/src/main/java/com/practicalddd/cargotracker/.DS_Store:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/practicalddd/practicaldddbook/8ecfe7ac6bdbc527ada0603ea472d425a7ee1e4b/Chapter5/trackingms/src/main/java/com/practicalddd/cargotracker/.DS_Store
--------------------------------------------------------------------------------
/Chapter5/trackingms/src/main/java/com/practicalddd/cargotracker/shareddomain/.DS_Store:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/practicalddd/practicaldddbook/8ecfe7ac6bdbc527ada0603ea472d425a7ee1e4b/Chapter5/trackingms/src/main/java/com/practicalddd/cargotracker/shareddomain/.DS_Store
--------------------------------------------------------------------------------
/Chapter5/trackingms/src/main/java/com/practicalddd/cargotracker/shareddomain/events/.DS_Store:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/practicalddd/practicaldddbook/8ecfe7ac6bdbc527ada0603ea472d425a7ee1e4b/Chapter5/trackingms/src/main/java/com/practicalddd/cargotracker/shareddomain/events/.DS_Store
--------------------------------------------------------------------------------
/Chapter5/trackingms/src/main/java/com/practicalddd/cargotracker/shareddomain/events/CargoBookedEvent.java:
--------------------------------------------------------------------------------
1 | package com.practicalddd.cargotracker.shareddomain.events;
2 |
3 |
4 | /**
5 | * Event Class for the Cargo Booked Event. Wraps up the Cargo Booking identifier
6 | * for the event
7 | */
8 |
9 | public class CargoBookedEvent {
10 | private CargoBookedEventData cargoBookedEventData;
11 | private CargoBookedEvent(){}
12 | public CargoBookedEvent(CargoBookedEventData cargoBookedEventData){
13 | this.cargoBookedEventData = cargoBookedEventData;
14 | }
15 | }
16 |
--------------------------------------------------------------------------------
/Chapter5/trackingms/src/main/java/com/practicalddd/cargotracker/shareddomain/events/CargoBookedEventData.java:
--------------------------------------------------------------------------------
1 | package com.practicalddd.cargotracker.shareddomain.events;
2 |
3 |
4 | /**
5 | * Event Data for the Cargo Booked Event
6 | */
7 | public class CargoBookedEventData {
8 |
9 | private String bookingId;
10 |
11 | public CargoBookedEventData(){}
12 | public CargoBookedEventData(String bookingId){ this.bookingId = bookingId; }
13 | public String getBookingId(){return this.bookingId;}
14 |
15 | }
16 |
--------------------------------------------------------------------------------
/Chapter5/trackingms/src/main/java/com/practicalddd/cargotracker/shareddomain/events/CargoHandledEvent.java:
--------------------------------------------------------------------------------
1 | package com.practicalddd.cargotracker.shareddomain.events;
2 |
3 | public class CargoHandledEvent {
4 | private CargoHandledEventData cargoHandledEventData;
5 | public CargoHandledEvent(){}
6 | public CargoHandledEvent(CargoHandledEventData cargoHandledEventData){
7 | this.cargoHandledEventData = cargoHandledEventData;
8 | }
9 | public CargoHandledEventData getCargoHandledEventData() {
10 | return this.cargoHandledEventData;
11 | }
12 | }
13 |
--------------------------------------------------------------------------------
/Chapter5/trackingms/src/main/java/com/practicalddd/cargotracker/shareddomain/events/CargoRoutedEvent.java:
--------------------------------------------------------------------------------
1 | package com.practicalddd.cargotracker.shareddomain.events;
2 |
3 |
4 | /**
5 | * Event Class for the Cargo Routed Event. Wraps up the Cargo
6 | */
7 |
8 | public class CargoRoutedEvent {
9 | private CargoRoutedEventData cargoRoutedEventData;
10 | public CargoRoutedEvent(){}
11 | public CargoRoutedEvent(CargoRoutedEventData cargoRoutedEventData){
12 | this.cargoRoutedEventData = cargoRoutedEventData;
13 | }
14 | public CargoRoutedEventData getCargoRoutedEventData() {
15 | return cargoRoutedEventData;
16 | }
17 | }
--------------------------------------------------------------------------------
/Chapter5/trackingms/src/main/java/com/practicalddd/cargotracker/shareddomain/events/CargoRoutedEventData.java:
--------------------------------------------------------------------------------
1 | package com.practicalddd.cargotracker.shareddomain.events;
2 |
3 |
4 | /**
5 | * Event Data for the Cargo Routed Event
6 | */
7 | public class CargoRoutedEventData {
8 |
9 | private String bookingId;
10 | public CargoRoutedEventData(){}
11 | public CargoRoutedEventData(String bookingId){ this.bookingId = bookingId; }
12 | public void setBookingId(String bookingId){this.bookingId = bookingId;}
13 | public String getBookingId(){return this.bookingId;}
14 |
15 | }
16 |
--------------------------------------------------------------------------------
/Chapter5/trackingms/src/main/java/com/practicalddd/cargotracker/trackingms/.DS_Store:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/practicalddd/practicaldddbook/8ecfe7ac6bdbc527ada0603ea472d425a7ee1e4b/Chapter5/trackingms/src/main/java/com/practicalddd/cargotracker/trackingms/.DS_Store
--------------------------------------------------------------------------------
/Chapter5/trackingms/src/main/java/com/practicalddd/cargotracker/trackingms/TrackingmsApplication.java:
--------------------------------------------------------------------------------
1 | package com.practicalddd.cargotracker.trackingms;
2 |
3 | import org.springframework.boot.SpringApplication;
4 | import org.springframework.boot.autoconfigure.SpringBootApplication;
5 |
6 | @SpringBootApplication
7 | public class TrackingmsApplication {
8 |
9 | public static void main(String[] args) {
10 | SpringApplication.run(TrackingmsApplication.class, args);
11 | }
12 |
13 | }
14 |
--------------------------------------------------------------------------------
/Chapter5/trackingms/src/main/java/com/practicalddd/cargotracker/trackingms/application/.DS_Store:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/practicalddd/practicaldddbook/8ecfe7ac6bdbc527ada0603ea472d425a7ee1e4b/Chapter5/trackingms/src/main/java/com/practicalddd/cargotracker/trackingms/application/.DS_Store
--------------------------------------------------------------------------------
/Chapter5/trackingms/src/main/java/com/practicalddd/cargotracker/trackingms/application/internal/.DS_Store:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/practicalddd/practicaldddbook/8ecfe7ac6bdbc527ada0603ea472d425a7ee1e4b/Chapter5/trackingms/src/main/java/com/practicalddd/cargotracker/trackingms/application/internal/.DS_Store
--------------------------------------------------------------------------------
/Chapter5/trackingms/src/main/java/com/practicalddd/cargotracker/trackingms/domain/.DS_Store:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/practicalddd/practicaldddbook/8ecfe7ac6bdbc527ada0603ea472d425a7ee1e4b/Chapter5/trackingms/src/main/java/com/practicalddd/cargotracker/trackingms/domain/.DS_Store
--------------------------------------------------------------------------------
/Chapter5/trackingms/src/main/java/com/practicalddd/cargotracker/trackingms/domain/model/.DS_Store:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/practicalddd/practicaldddbook/8ecfe7ac6bdbc527ada0603ea472d425a7ee1e4b/Chapter5/trackingms/src/main/java/com/practicalddd/cargotracker/trackingms/domain/model/.DS_Store
--------------------------------------------------------------------------------
/Chapter5/trackingms/src/main/java/com/practicalddd/cargotracker/trackingms/domain/model/aggregates/TrackingNumber.java:
--------------------------------------------------------------------------------
1 | package com.practicalddd.cargotracker.trackingms.domain.model.aggregates;
2 |
3 |
4 | import javax.persistence.Column;
5 | import javax.persistence.Embeddable;
6 |
7 | @Embeddable
8 | public class TrackingNumber {
9 |
10 | @Column(name="tracking_number")
11 | private String trackingNumber;
12 |
13 | public TrackingNumber(){}
14 |
15 | public TrackingNumber(String trackingNumber){this.trackingNumber = trackingNumber;}
16 |
17 | public String getTrackingNumber(){return this.trackingNumber;}
18 | }
19 |
--------------------------------------------------------------------------------
/Chapter5/trackingms/src/main/java/com/practicalddd/cargotracker/trackingms/domain/model/entities/BookingId.java:
--------------------------------------------------------------------------------
1 | package com.practicalddd.cargotracker.trackingms.domain.model.entities;
2 |
3 |
4 | import javax.persistence.Column;
5 | import javax.persistence.Embeddable;
6 | import java.io.Serializable;
7 |
8 | /**
9 | * Aggregate Identifier for the Cargo Aggregate
10 | */
11 | @Embeddable
12 | public class BookingId implements Serializable {
13 |
14 | @Column(name="booking_id")
15 | private String bookingId;
16 |
17 | public BookingId(){}
18 |
19 | public BookingId(String bookingId){this.bookingId = bookingId;}
20 |
21 | public String getBookingId(){return this.bookingId;}
22 | }
23 |
--------------------------------------------------------------------------------
/Chapter5/trackingms/src/main/java/com/practicalddd/cargotracker/trackingms/domain/model/valueobjects/TrackingVoyageNumber.java:
--------------------------------------------------------------------------------
1 | package com.practicalddd.cargotracker.trackingms.domain.model.valueobjects;
2 |
3 | import javax.persistence.Column;
4 | import javax.persistence.Embeddable;
5 |
6 | @Embeddable
7 | public class TrackingVoyageNumber {
8 | @Column(name="voyage_number")
9 | private String voyageNumber;
10 | public TrackingVoyageNumber(){}
11 | public TrackingVoyageNumber(String voyageNumber){this.voyageNumber = voyageNumber;}
12 | public String getVoyageNumber(){return this.voyageNumber;}
13 | public void setVoyageNumber(String voyageNumber){this.voyageNumber = voyageNumber;}
14 | }
15 |
--------------------------------------------------------------------------------
/Chapter5/trackingms/src/main/java/com/practicalddd/cargotracker/trackingms/infrastructure/.DS_Store:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/practicalddd/practicaldddbook/8ecfe7ac6bdbc527ada0603ea472d425a7ee1e4b/Chapter5/trackingms/src/main/java/com/practicalddd/cargotracker/trackingms/infrastructure/.DS_Store
--------------------------------------------------------------------------------
/Chapter5/trackingms/src/main/java/com/practicalddd/cargotracker/trackingms/infrastructure/brokers/.DS_Store:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/practicalddd/practicaldddbook/8ecfe7ac6bdbc527ada0603ea472d425a7ee1e4b/Chapter5/trackingms/src/main/java/com/practicalddd/cargotracker/trackingms/infrastructure/brokers/.DS_Store
--------------------------------------------------------------------------------
/Chapter5/trackingms/src/main/java/com/practicalddd/cargotracker/trackingms/infrastructure/brokers/rabbitmq/.DS_Store:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/practicalddd/practicaldddbook/8ecfe7ac6bdbc527ada0603ea472d425a7ee1e4b/Chapter5/trackingms/src/main/java/com/practicalddd/cargotracker/trackingms/infrastructure/brokers/rabbitmq/.DS_Store
--------------------------------------------------------------------------------
/Chapter5/trackingms/src/main/java/com/practicalddd/cargotracker/trackingms/infrastructure/brokers/rabbitmq/HandlingBinding.java:
--------------------------------------------------------------------------------
1 | package com.practicalddd.cargotracker.trackingms.infrastructure.brokers.rabbitmq;
2 |
3 | import org.springframework.cloud.stream.annotation.Input;
4 | import org.springframework.messaging.SubscribableChannel;
5 |
6 | public interface HandlingBinding {
7 |
8 | String HANDLING = "cargoHandlingChannel";
9 |
10 | @Input(HANDLING)
11 | SubscribableChannel cargoHandling();
12 | }
13 |
--------------------------------------------------------------------------------
/Chapter5/trackingms/src/main/java/com/practicalddd/cargotracker/trackingms/infrastructure/brokers/rabbitmq/RoutingBinding.java:
--------------------------------------------------------------------------------
1 | package com.practicalddd.cargotracker.trackingms.infrastructure.brokers.rabbitmq;
2 |
3 | import org.springframework.cloud.stream.annotation.Input;
4 | import org.springframework.messaging.SubscribableChannel;
5 |
6 | public interface RoutingBinding {
7 |
8 | String ROUTING = "cargoRoutingChannel";
9 |
10 | @Input(ROUTING)
11 | SubscribableChannel cargoRouting();
12 | }
13 |
--------------------------------------------------------------------------------
/Chapter5/trackingms/src/main/java/com/practicalddd/cargotracker/trackingms/infrastructure/repositories/.DS_Store:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/practicalddd/practicaldddbook/8ecfe7ac6bdbc527ada0603ea472d425a7ee1e4b/Chapter5/trackingms/src/main/java/com/practicalddd/cargotracker/trackingms/infrastructure/repositories/.DS_Store
--------------------------------------------------------------------------------
/Chapter5/trackingms/src/main/java/com/practicalddd/cargotracker/trackingms/interfaces/.DS_Store:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/practicalddd/practicaldddbook/8ecfe7ac6bdbc527ada0603ea472d425a7ee1e4b/Chapter5/trackingms/src/main/java/com/practicalddd/cargotracker/trackingms/interfaces/.DS_Store
--------------------------------------------------------------------------------
/Chapter5/trackingms/src/test/java/com/practicalddd/cargotracker/trackingms/TrackingmsApplicationTests.java:
--------------------------------------------------------------------------------
1 | package com.practicalddd.cargotracker.trackingms;
2 |
3 | import org.junit.Test;
4 | import org.junit.runner.RunWith;
5 | import org.springframework.boot.test.context.SpringBootTest;
6 | import org.springframework.test.context.junit4.SpringRunner;
7 |
8 | @RunWith(SpringRunner.class)
9 | @SpringBootTest
10 | public class TrackingmsApplicationTests {
11 |
12 | @Test
13 | public void contextLoads() {
14 | }
15 |
16 | }
17 |
--------------------------------------------------------------------------------
/Chapter6/bookingms/.gitignore:
--------------------------------------------------------------------------------
1 | HELP.md
2 | /target/
3 | !.mvn/wrapper/maven-wrapper.jar
4 |
5 | ### STS ###
6 | .apt_generated
7 | .classpath
8 | .factorypath
9 | .project
10 | .settings
11 | .springBeans
12 | .sts4-cache
13 |
14 | ### IntelliJ IDEA ###
15 | .idea
16 | *.iws
17 | *.iml
18 | *.ipr
19 |
20 | ### NetBeans ###
21 | /nbproject/private/
22 | /nbbuild/
23 | /dist/
24 | /nbdist/
25 | /.nb-gradle/
26 | /build/
27 |
28 | ### VS Code ###
29 | .vscode/
30 |
--------------------------------------------------------------------------------
/Chapter6/bookingms/.mvn/wrapper/maven-wrapper.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/practicalddd/practicaldddbook/8ecfe7ac6bdbc527ada0603ea472d425a7ee1e4b/Chapter6/bookingms/.mvn/wrapper/maven-wrapper.jar
--------------------------------------------------------------------------------
/Chapter6/bookingms/.mvn/wrapper/maven-wrapper.properties:
--------------------------------------------------------------------------------
1 | distributionUrl=https://repo.maven.apache.org/maven2/org/apache/maven/apache-maven/3.6.0/apache-maven-3.6.0-bin.zip
2 |
--------------------------------------------------------------------------------
/Chapter6/bookingms/src/main/java/com/practicalddd/cargotracker/bookingms/BookingMSApplication.java:
--------------------------------------------------------------------------------
1 | package com.practicalddd.cargotracker.bookingms;
2 |
3 | import org.springframework.boot.SpringApplication;
4 | import org.springframework.boot.autoconfigure.SpringBootApplication;
5 |
6 | @SpringBootApplication
7 | public class BookingMSApplication {
8 |
9 | public static void main(String[] args) {
10 | SpringApplication.run(BookingMSApplication.class, args);
11 | }
12 |
13 | }
14 |
--------------------------------------------------------------------------------
/Chapter6/bookingms/src/main/java/com/practicalddd/cargotracker/bookingms/domain/model/BookingAmount.java:
--------------------------------------------------------------------------------
1 | package com.practicalddd.cargotracker.bookingms.domain.model;
2 |
3 | /**
4 | * Booking Amount of the Cargo
5 | */
6 |
7 | public class BookingAmount {
8 | private int bookingAmount;
9 |
10 | public BookingAmount() {}
11 |
12 | public BookingAmount(int bookingAmount) {
13 | this.bookingAmount = bookingAmount;
14 | }
15 |
16 | }
17 |
--------------------------------------------------------------------------------
/Chapter6/bookingms/src/main/java/com/practicalddd/cargotracker/bookingms/domain/model/CargoItinerary.java:
--------------------------------------------------------------------------------
1 | package com.practicalddd.cargotracker.bookingms.domain.model;
2 |
3 |
4 |
5 | import java.util.Collections;
6 | import java.util.List;
7 |
8 | public class CargoItinerary {
9 |
10 | public static final CargoItinerary EMPTY_ITINERARY = new CargoItinerary();
11 |
12 | private List legs = Collections.emptyList();
13 |
14 | public CargoItinerary() {
15 | // Nothing to initialize.
16 | }
17 |
18 | public CargoItinerary(List legs) {
19 | this.legs = legs;
20 | }
21 |
22 | public List getLegs() {
23 | return Collections.unmodifiableList(legs);
24 | }
25 | }
26 |
--------------------------------------------------------------------------------
/Chapter6/bookingms/src/main/java/com/practicalddd/cargotracker/bookingms/domain/model/Location.java:
--------------------------------------------------------------------------------
1 | package com.practicalddd.cargotracker.bookingms.domain.model;
2 |
3 | /**
4 | * Location class represented by a unique 5-diigit UN Location code.
5 | */
6 | public class Location {
7 |
8 | private String unLocCode;
9 | public Location(String unLocCode){this.unLocCode = unLocCode;}
10 | public void setUnLocCode(String unLocCode){this.unLocCode = unLocCode;}
11 | public String getUnLocCode(){return this.unLocCode;}
12 | }
13 |
--------------------------------------------------------------------------------
/Chapter6/bookingms/src/main/java/com/practicalddd/cargotracker/bookingms/domain/model/RoutingStatus.java:
--------------------------------------------------------------------------------
1 | package com.practicalddd.cargotracker.bookingms.domain.model;
2 |
3 | /**
4 | * Enum class for the Routing Status of the Cargo
5 | */
6 | public enum RoutingStatus {
7 |
8 | NOT_ROUTED, ROUTED, MISROUTED;
9 |
10 | public boolean sameValueAs(RoutingStatus other) {
11 | return this.equals(other);
12 | }
13 | }
--------------------------------------------------------------------------------
/Chapter6/bookingms/src/main/java/com/practicalddd/cargotracker/bookingms/domain/model/TransportStatus.java:
--------------------------------------------------------------------------------
1 | package com.practicalddd.cargotracker.bookingms.domain.model;
2 |
3 | /**
4 | * Enum class for the Transport Status of the Cargo
5 | */
6 | public enum TransportStatus {
7 |
8 | NOT_RECEIVED, IN_PORT, ONBOARD_CARRIER, CLAIMED, UNKNOWN;
9 |
10 | public boolean sameValueAs(TransportStatus other) {
11 | return this.equals(other);
12 | }
13 | }
14 |
--------------------------------------------------------------------------------
/Chapter6/bookingms/src/main/java/com/practicalddd/cargotracker/bookingms/domain/queries/CargoSummaryQuery.java:
--------------------------------------------------------------------------------
1 | package com.practicalddd.cargotracker.bookingms.domain.queries;
2 |
3 | /**
4 | * Implementation of Cargo Summary Query class. It takes in a Booking Id which is the criteria for the query
5 | */
6 | public class CargoSummaryQuery {
7 |
8 | private String bookingId; //Criteria of the Query
9 | public CargoSummaryQuery(String bookingId){
10 | this.bookingId = bookingId;
11 | }
12 |
13 | public String getBookingId(){return this.bookingId;}
14 | @Override
15 | public String toString() { return "Cargo Summary for Booking Id" + bookingId; }
16 | }
17 |
--------------------------------------------------------------------------------
/Chapter6/bookingms/src/main/resources/application.properties:
--------------------------------------------------------------------------------
1 | server.port=8081
2 | spring.datasource.driverClassName=com.mysql.cj.jdbc.Driver
3 | spring.datasource.url=jdbc:mysql://localhost:3306/bookingquerymsdb?zeroDateTimeBehavior=convertToNull&serverTimezone=EST
4 | spring.datasource.username=bookingquerymsdb
5 | spring.datasource.password=bookingquerymsdb
6 | spring.jpa.database-platform=org.hibernate.dialect.MySQL57Dialect
7 | spring.jpa.generate-ddl=true
--------------------------------------------------------------------------------
/Chapter6/cargobookingsaga/src/main/java/com/practicalddd/cargotracker/cargobookingsaga/model/model/BookingAmount.java:
--------------------------------------------------------------------------------
1 | package com.practicalddd.cargotracker.booking.domain.model;
2 |
3 | /**
4 | * Booking Amount of the Cargo
5 | */
6 |
7 | public class BookingAmount {
8 | private int bookingAmount;
9 |
10 | public BookingAmount() {}
11 |
12 | public BookingAmount(int bookingAmount) {
13 | this.bookingAmount = bookingAmount;
14 | }
15 |
16 | }
17 |
--------------------------------------------------------------------------------
/Chapter6/cargobookingsaga/src/main/java/com/practicalddd/cargotracker/cargobookingsaga/model/model/Itinerary.java:
--------------------------------------------------------------------------------
1 | package com.practicalddd.cargotracker.booking.domain.model;
2 |
3 | import java.util.Collections;
4 | import java.util.List;
5 |
6 | public class Itinerary {
7 |
8 | private List legs = Collections.emptyList();
9 |
10 | public Itinerary() {
11 | // Nothing to initialize.
12 | }
13 |
14 | public Itinerary(List legs) {
15 | this.legs = legs;
16 | }
17 |
18 | public List getLegs() {
19 | return Collections.unmodifiableList(legs);
20 | }
21 | }
22 |
--------------------------------------------------------------------------------
/Chapter6/cargobookingsaga/src/main/java/com/practicalddd/cargotracker/cargobookingsaga/model/model/Location.java:
--------------------------------------------------------------------------------
1 | package com.practicalddd.cargotracker.booking.domain.model;
2 |
3 | /**
4 | * Location class represented by a unique 5-diigit UN Location code.
5 | */
6 | public class Location {
7 |
8 | private String unLocCode;
9 | public Location(String unLocCode){this.unLocCode = unLocCode;}
10 | public void setUnLocCode(String unLocCode){this.unLocCode = unLocCode;}
11 | public String getUnLocCode(){return this.unLocCode;}
12 | }
13 |
--------------------------------------------------------------------------------
/Chapter6/cargobookingsaga/src/main/java/com/practicalddd/cargotracker/cargobookingsaga/model/model/RoutingStatus.java:
--------------------------------------------------------------------------------
1 | package com.practicalddd.cargotracker.booking.domain.model;
2 |
3 | public enum RoutingStatus {
4 |
5 | NOT_ROUTED, ROUTED, MISROUTED;
6 |
7 | public boolean sameValueAs(RoutingStatus other) {
8 | return this.equals(other);
9 | }
10 | }
--------------------------------------------------------------------------------
/Chapter6/cargobookingsaga/src/main/java/com/practicalddd/cargotracker/cargobookingsaga/model/model/TransportStatus.java:
--------------------------------------------------------------------------------
1 | package com.practicalddd.cargotracker.booking.domain.model;
2 |
3 | public enum TransportStatus {
4 |
5 | NOT_RECEIVED, IN_PORT, ONBOARD_CARRIER, CLAIMED, UNKNOWN;
6 |
7 | public boolean sameValueAs(TransportStatus other) {
8 | return this.equals(other);
9 | }
10 | }
11 |
--------------------------------------------------------------------------------
/Chapter6/handlingms/.gitignore:
--------------------------------------------------------------------------------
1 | HELP.md
2 | target/
3 | !.mvn/wrapper/maven-wrapper.jar
4 | !**/src/main/**
5 | !**/src/test/**
6 |
7 | ### STS ###
8 | .apt_generated
9 | .classpath
10 | .factorypath
11 | .project
12 | .settings
13 | .springBeans
14 | .sts4-cache
15 |
16 | ### IntelliJ IDEA ###
17 | .idea
18 | *.iws
19 | *.iml
20 | *.ipr
21 |
22 | ### NetBeans ###
23 | /nbproject/private/
24 | /nbbuild/
25 | /dist/
26 | /nbdist/
27 | /.nb-gradle/
28 | build/
29 |
30 | ### VS Code ###
31 | .vscode/
32 |
--------------------------------------------------------------------------------
/Chapter6/handlingms/.mvn/wrapper/maven-wrapper.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/practicalddd/practicaldddbook/8ecfe7ac6bdbc527ada0603ea472d425a7ee1e4b/Chapter6/handlingms/.mvn/wrapper/maven-wrapper.jar
--------------------------------------------------------------------------------
/Chapter6/handlingms/.mvn/wrapper/maven-wrapper.properties:
--------------------------------------------------------------------------------
1 | distributionUrl=https://repo.maven.apache.org/maven2/org/apache/maven/apache-maven/3.6.0/apache-maven-3.6.0-bin.zip
2 |
--------------------------------------------------------------------------------
/Chapter6/handlingms/src/main/.DS_Store:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/practicalddd/practicaldddbook/8ecfe7ac6bdbc527ada0603ea472d425a7ee1e4b/Chapter6/handlingms/src/main/.DS_Store
--------------------------------------------------------------------------------
/Chapter6/handlingms/src/main/java/.DS_Store:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/practicalddd/practicaldddbook/8ecfe7ac6bdbc527ada0603ea472d425a7ee1e4b/Chapter6/handlingms/src/main/java/.DS_Store
--------------------------------------------------------------------------------
/Chapter6/handlingms/src/main/java/com/.DS_Store:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/practicalddd/practicaldddbook/8ecfe7ac6bdbc527ada0603ea472d425a7ee1e4b/Chapter6/handlingms/src/main/java/com/.DS_Store
--------------------------------------------------------------------------------
/Chapter6/handlingms/src/main/java/com/practicalddd/.DS_Store:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/practicalddd/practicaldddbook/8ecfe7ac6bdbc527ada0603ea472d425a7ee1e4b/Chapter6/handlingms/src/main/java/com/practicalddd/.DS_Store
--------------------------------------------------------------------------------
/Chapter6/handlingms/src/main/java/com/practicalddd/cargotracker/.DS_Store:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/practicalddd/practicaldddbook/8ecfe7ac6bdbc527ada0603ea472d425a7ee1e4b/Chapter6/handlingms/src/main/java/com/practicalddd/cargotracker/.DS_Store
--------------------------------------------------------------------------------
/Chapter6/handlingms/src/main/java/com/practicalddd/cargotracker/handlingms/.DS_Store:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/practicalddd/practicaldddbook/8ecfe7ac6bdbc527ada0603ea472d425a7ee1e4b/Chapter6/handlingms/src/main/java/com/practicalddd/cargotracker/handlingms/.DS_Store
--------------------------------------------------------------------------------
/Chapter6/handlingms/src/main/java/com/practicalddd/cargotracker/handlingms/HandlingmsApplication.java:
--------------------------------------------------------------------------------
1 | package com.practicalddd.cargotracker.handlingms;
2 |
3 | import org.springframework.boot.SpringApplication;
4 | import org.springframework.boot.autoconfigure.SpringBootApplication;
5 |
6 | @SpringBootApplication
7 | public class HandlingmsApplication {
8 |
9 | public static void main(String[] args) {
10 | SpringApplication.run(HandlingmsApplication.class, args);
11 | }
12 |
13 | }
14 |
--------------------------------------------------------------------------------
/Chapter6/handlingms/src/main/java/com/practicalddd/cargotracker/handlingms/application/.DS_Store:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/practicalddd/practicaldddbook/8ecfe7ac6bdbc527ada0603ea472d425a7ee1e4b/Chapter6/handlingms/src/main/java/com/practicalddd/cargotracker/handlingms/application/.DS_Store
--------------------------------------------------------------------------------
/Chapter6/handlingms/src/main/java/com/practicalddd/cargotracker/handlingms/application/internal/.DS_Store:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/practicalddd/practicaldddbook/8ecfe7ac6bdbc527ada0603ea472d425a7ee1e4b/Chapter6/handlingms/src/main/java/com/practicalddd/cargotracker/handlingms/application/internal/.DS_Store
--------------------------------------------------------------------------------
/Chapter6/handlingms/src/main/java/com/practicalddd/cargotracker/handlingms/domain/.DS_Store:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/practicalddd/practicaldddbook/8ecfe7ac6bdbc527ada0603ea472d425a7ee1e4b/Chapter6/handlingms/src/main/java/com/practicalddd/cargotracker/handlingms/domain/.DS_Store
--------------------------------------------------------------------------------
/Chapter6/handlingms/src/main/java/com/practicalddd/cargotracker/handlingms/domain/model/.DS_Store:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/practicalddd/practicaldddbook/8ecfe7ac6bdbc527ada0603ea472d425a7ee1e4b/Chapter6/handlingms/src/main/java/com/practicalddd/cargotracker/handlingms/domain/model/.DS_Store
--------------------------------------------------------------------------------
/Chapter6/handlingms/src/main/java/com/practicalddd/cargotracker/handlingms/domain/model/valueobjects/CargoBookingId.java:
--------------------------------------------------------------------------------
1 | package com.practicalddd.cargotracker.handlingms.domain.model.valueobjects;
2 |
3 | import javax.persistence.Column;
4 | import javax.persistence.Embeddable;
5 |
6 | @Embeddable
7 | public class CargoBookingId {
8 | @Column(name = "booking_id")
9 | private String bookingId;
10 | public CargoBookingId(){}
11 | public CargoBookingId(String bookingId){this.bookingId = bookingId;}
12 | public void setBookingId(String bookingId){this.bookingId = bookingId;}
13 | public String getBookingId(){return this.bookingId;}
14 | }
15 |
--------------------------------------------------------------------------------
/Chapter6/handlingms/src/main/java/com/practicalddd/cargotracker/handlingms/domain/model/valueobjects/VoyageNumber.java:
--------------------------------------------------------------------------------
1 | package com.practicalddd.cargotracker.handlingms.domain.model.valueobjects;
2 |
3 | import javax.persistence.Column;
4 | import javax.persistence.Embeddable;
5 |
6 | @Embeddable
7 | public class VoyageNumber {
8 | @Column(name="voyage_number")
9 | private String voyageNumber;
10 | public VoyageNumber(){}
11 | public VoyageNumber(String voyageNumber){this.voyageNumber = voyageNumber;}
12 | public String getVoyageNumber(){return this.voyageNumber;}
13 | public void setVoyageNumber(String voyageNumber){this.voyageNumber = voyageNumber;}
14 | }
15 |
--------------------------------------------------------------------------------
/Chapter6/handlingms/src/main/java/com/practicalddd/cargotracker/handlingms/infrastructure/.DS_Store:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/practicalddd/practicaldddbook/8ecfe7ac6bdbc527ada0603ea472d425a7ee1e4b/Chapter6/handlingms/src/main/java/com/practicalddd/cargotracker/handlingms/infrastructure/.DS_Store
--------------------------------------------------------------------------------
/Chapter6/handlingms/src/main/java/com/practicalddd/cargotracker/handlingms/infrastructure/brokers/rabbitmq/CargoEventSource.java:
--------------------------------------------------------------------------------
1 | package com.practicalddd.cargotracker.handlingms.infrastructure.brokers.rabbitmq;
2 |
3 | import org.springframework.cloud.stream.annotation.Output;
4 | import org.springframework.messaging.MessageChannel;
5 |
6 | /**
7 | * Interface depicting all output channels
8 | */
9 | public interface CargoEventSource {
10 |
11 | @Output("cargoHandlingChannel")
12 | MessageChannel cargoHandling();
13 |
14 | }
15 |
--------------------------------------------------------------------------------
/Chapter6/handlingms/src/main/java/com/practicalddd/cargotracker/handlingms/infrastructure/repositories/.DS_Store:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/practicalddd/practicaldddbook/8ecfe7ac6bdbc527ada0603ea472d425a7ee1e4b/Chapter6/handlingms/src/main/java/com/practicalddd/cargotracker/handlingms/infrastructure/repositories/.DS_Store
--------------------------------------------------------------------------------
/Chapter6/handlingms/src/main/java/com/practicalddd/cargotracker/handlingms/infrastructure/repositories/jpa/HandlingActivityRepository.java:
--------------------------------------------------------------------------------
1 | package com.practicalddd.cargotracker.handlingms.infrastructure.repositories.jpa;
2 |
3 | import com.practicalddd.cargotracker.handlingms.domain.model.aggregates.HandlingActivity;
4 | import com.practicalddd.cargotracker.handlingms.domain.model.valueobjects.CargoBookingId;
5 | import org.springframework.data.jpa.repository.JpaRepository;
6 |
7 | public interface HandlingActivityRepository extends JpaRepository {
8 | HandlingActivity findByBookingId(CargoBookingId cargoBookingId);
9 | }
10 |
--------------------------------------------------------------------------------
/Chapter6/handlingms/src/main/java/com/practicalddd/cargotracker/handlingms/interfaces/.DS_Store:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/practicalddd/practicaldddbook/8ecfe7ac6bdbc527ada0603ea472d425a7ee1e4b/Chapter6/handlingms/src/main/java/com/practicalddd/cargotracker/handlingms/interfaces/.DS_Store
--------------------------------------------------------------------------------
/Chapter6/handlingms/src/main/java/com/practicalddd/cargotracker/handlingms/interfaces/events/.DS_Store:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/practicalddd/practicaldddbook/8ecfe7ac6bdbc527ada0603ea472d425a7ee1e4b/Chapter6/handlingms/src/main/java/com/practicalddd/cargotracker/handlingms/interfaces/events/.DS_Store
--------------------------------------------------------------------------------
/Chapter6/handlingms/src/main/java/com/practicalddd/cargotracker/handlingms/interfaces/rest/.DS_Store:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/practicalddd/practicaldddbook/8ecfe7ac6bdbc527ada0603ea472d425a7ee1e4b/Chapter6/handlingms/src/main/java/com/practicalddd/cargotracker/handlingms/interfaces/rest/.DS_Store
--------------------------------------------------------------------------------
/Chapter6/handlingms/src/main/java/com/practicalddd/cargotracker/shareddomain/.DS_Store:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/practicalddd/practicaldddbook/8ecfe7ac6bdbc527ada0603ea472d425a7ee1e4b/Chapter6/handlingms/src/main/java/com/practicalddd/cargotracker/shareddomain/.DS_Store
--------------------------------------------------------------------------------
/Chapter6/handlingms/src/main/java/com/practicalddd/cargotracker/shareddomain/events/CargoBookedEvent.java:
--------------------------------------------------------------------------------
1 | package com.practicalddd.cargotracker.shareddomain.events;
2 |
3 |
4 | /**
5 | * Event Class for the Cargo Booked Event. Wraps up the Cargo Booking identifier
6 | * for the event
7 | */
8 |
9 | public class CargoBookedEvent {
10 | private CargoBookedEventData cargoBookedEventData;
11 | private CargoBookedEvent(){}
12 | public CargoBookedEvent(CargoBookedEventData cargoBookedEventData){
13 | this.cargoBookedEventData = cargoBookedEventData;
14 | }
15 | }
16 |
--------------------------------------------------------------------------------
/Chapter6/handlingms/src/main/java/com/practicalddd/cargotracker/shareddomain/events/CargoBookedEventData.java:
--------------------------------------------------------------------------------
1 | package com.practicalddd.cargotracker.shareddomain.events;
2 |
3 |
4 | /**
5 | * Event Data for the Cargo Booked Event
6 | */
7 | public class CargoBookedEventData {
8 |
9 | private String bookingId;
10 |
11 | public CargoBookedEventData(){}
12 | public CargoBookedEventData(String bookingId){ this.bookingId = bookingId; }
13 | public String getBookingId(){return this.bookingId;}
14 |
15 | }
16 |
--------------------------------------------------------------------------------
/Chapter6/handlingms/src/main/java/com/practicalddd/cargotracker/shareddomain/events/CargoHandledEvent.java:
--------------------------------------------------------------------------------
1 | package com.practicalddd.cargotracker.shareddomain.events;
2 |
3 | public class CargoHandledEvent {
4 | private CargoHandledEventData cargoHandledEventData;
5 | public CargoHandledEvent(){}
6 | public CargoHandledEvent(CargoHandledEventData cargoHandledEventData){
7 | this.cargoHandledEventData = cargoHandledEventData;
8 | }
9 | public CargoHandledEventData getCargoHandledEventData() {
10 | return this.cargoHandledEventData;
11 | }
12 | }
13 |
--------------------------------------------------------------------------------
/Chapter6/handlingms/src/main/java/com/practicalddd/cargotracker/shareddomain/events/CargoRoutedEvent.java:
--------------------------------------------------------------------------------
1 | package com.practicalddd.cargotracker.shareddomain.events;
2 |
3 |
4 | /**
5 | * Event Class for the Cargo Routed Event. Wraps up the Cargo
6 | */
7 |
8 | public class CargoRoutedEvent {
9 | private CargoRoutedEventData cargoRoutedEventData;
10 | public CargoRoutedEvent(CargoRoutedEventData cargoRoutedEventData){
11 | this.cargoRoutedEventData = cargoRoutedEventData;
12 | }
13 | public CargoRoutedEventData getContent() {
14 | return cargoRoutedEventData;
15 | }
16 | }
--------------------------------------------------------------------------------
/Chapter6/handlingms/src/main/java/com/practicalddd/cargotracker/shareddomain/events/CargoRoutedEventData.java:
--------------------------------------------------------------------------------
1 | package com.practicalddd.cargotracker.shareddomain.events;
2 |
3 |
4 | /**
5 | * Event Data for the Cargo Routed Event
6 | */
7 | public class CargoRoutedEventData {
8 |
9 | private String bookingId;
10 |
11 | public CargoRoutedEventData(String bookingId){ this.bookingId = bookingId; }
12 |
13 | public String getBookingId(){return this.bookingId;}
14 |
15 | }
16 |
--------------------------------------------------------------------------------
/Chapter6/handlingms/src/main/resources/application.properties:
--------------------------------------------------------------------------------
1 | spring.datasource.url=jdbc:mysql://localhost:3306/handlingmsdb?zeroDateTimeBehavior=CONVERT_TO_NULL&serverTimezone=EST
2 | spring.datasource.username=handlingmsdb
3 | spring.datasource.password=handlingmsdb
4 |
5 | server.port=8082
--------------------------------------------------------------------------------
/Chapter6/handlingms/src/test/java/com/practicalddd/cargotracker/handlingms/HandlingmsApplicationTests.java:
--------------------------------------------------------------------------------
1 | package com.practicalddd.cargotracker.handlingms;
2 |
3 | import org.junit.Test;
4 | import org.junit.runner.RunWith;
5 | import org.springframework.boot.test.context.SpringBootTest;
6 | import org.springframework.test.context.junit4.SpringRunner;
7 |
8 | @RunWith(SpringRunner.class)
9 | @SpringBootTest
10 | public class HandlingmsApplicationTests {
11 |
12 | @Test
13 | public void contextLoads() {
14 | }
15 |
16 | }
17 |
--------------------------------------------------------------------------------
/Chapter6/routingms/.gitignore:
--------------------------------------------------------------------------------
1 | HELP.md
2 | target/
3 | !.mvn/wrapper/maven-wrapper.jar
4 | !**/src/main/**
5 | !**/src/test/**
6 |
7 | ### STS ###
8 | .apt_generated
9 | .classpath
10 | .factorypath
11 | .project
12 | .settings
13 | .springBeans
14 | .sts4-cache
15 |
16 | ### IntelliJ IDEA ###
17 | .idea
18 | *.iws
19 | *.iml
20 | *.ipr
21 |
22 | ### NetBeans ###
23 | /nbproject/private/
24 | /nbbuild/
25 | /dist/
26 | /nbdist/
27 | /.nb-gradle/
28 | build/
29 |
30 | ### VS Code ###
31 | .vscode/
32 |
--------------------------------------------------------------------------------
/Chapter6/routingms/.mvn/wrapper/maven-wrapper.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/practicalddd/practicaldddbook/8ecfe7ac6bdbc527ada0603ea472d425a7ee1e4b/Chapter6/routingms/.mvn/wrapper/maven-wrapper.jar
--------------------------------------------------------------------------------
/Chapter6/routingms/.mvn/wrapper/maven-wrapper.properties:
--------------------------------------------------------------------------------
1 | distributionUrl=https://repo.maven.apache.org/maven2/org/apache/maven/apache-maven/3.6.0/apache-maven-3.6.0-bin.zip
2 |
--------------------------------------------------------------------------------
/Chapter6/routingms/src/main/.DS_Store:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/practicalddd/practicaldddbook/8ecfe7ac6bdbc527ada0603ea472d425a7ee1e4b/Chapter6/routingms/src/main/.DS_Store
--------------------------------------------------------------------------------
/Chapter6/routingms/src/main/java/.DS_Store:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/practicalddd/practicaldddbook/8ecfe7ac6bdbc527ada0603ea472d425a7ee1e4b/Chapter6/routingms/src/main/java/.DS_Store
--------------------------------------------------------------------------------
/Chapter6/routingms/src/main/java/com/.DS_Store:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/practicalddd/practicaldddbook/8ecfe7ac6bdbc527ada0603ea472d425a7ee1e4b/Chapter6/routingms/src/main/java/com/.DS_Store
--------------------------------------------------------------------------------
/Chapter6/routingms/src/main/java/com/practicalddd/.DS_Store:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/practicalddd/practicaldddbook/8ecfe7ac6bdbc527ada0603ea472d425a7ee1e4b/Chapter6/routingms/src/main/java/com/practicalddd/.DS_Store
--------------------------------------------------------------------------------
/Chapter6/routingms/src/main/java/com/practicalddd/cargotracker/.DS_Store:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/practicalddd/practicaldddbook/8ecfe7ac6bdbc527ada0603ea472d425a7ee1e4b/Chapter6/routingms/src/main/java/com/practicalddd/cargotracker/.DS_Store
--------------------------------------------------------------------------------
/Chapter6/routingms/src/main/java/com/practicalddd/cargotracker/routingms/.DS_Store:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/practicalddd/practicaldddbook/8ecfe7ac6bdbc527ada0603ea472d425a7ee1e4b/Chapter6/routingms/src/main/java/com/practicalddd/cargotracker/routingms/.DS_Store
--------------------------------------------------------------------------------
/Chapter6/routingms/src/main/java/com/practicalddd/cargotracker/routingms/RoutingmsApplication.java:
--------------------------------------------------------------------------------
1 | package com.practicalddd.cargotracker.routingms;
2 |
3 | import org.springframework.boot.SpringApplication;
4 | import org.springframework.boot.autoconfigure.SpringBootApplication;
5 |
6 | @SpringBootApplication
7 | public class RoutingmsApplication {
8 |
9 | public static void main(String[] args) {
10 | SpringApplication.run(RoutingmsApplication.class, args);
11 | }
12 |
13 | }
14 |
--------------------------------------------------------------------------------
/Chapter6/routingms/src/main/java/com/practicalddd/cargotracker/routingms/application/.DS_Store:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/practicalddd/practicaldddbook/8ecfe7ac6bdbc527ada0603ea472d425a7ee1e4b/Chapter6/routingms/src/main/java/com/practicalddd/cargotracker/routingms/application/.DS_Store
--------------------------------------------------------------------------------
/Chapter6/routingms/src/main/java/com/practicalddd/cargotracker/routingms/application/internal/.DS_Store:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/practicalddd/practicaldddbook/8ecfe7ac6bdbc527ada0603ea472d425a7ee1e4b/Chapter6/routingms/src/main/java/com/practicalddd/cargotracker/routingms/application/internal/.DS_Store
--------------------------------------------------------------------------------
/Chapter6/routingms/src/main/java/com/practicalddd/cargotracker/routingms/domain/.DS_Store:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/practicalddd/practicaldddbook/8ecfe7ac6bdbc527ada0603ea472d425a7ee1e4b/Chapter6/routingms/src/main/java/com/practicalddd/cargotracker/routingms/domain/.DS_Store
--------------------------------------------------------------------------------
/Chapter6/routingms/src/main/java/com/practicalddd/cargotracker/routingms/domain/model/.DS_Store:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/practicalddd/practicaldddbook/8ecfe7ac6bdbc527ada0603ea472d425a7ee1e4b/Chapter6/routingms/src/main/java/com/practicalddd/cargotracker/routingms/domain/model/.DS_Store
--------------------------------------------------------------------------------
/Chapter6/routingms/src/main/java/com/practicalddd/cargotracker/routingms/domain/model/valueobjects/VoyageNumber.java:
--------------------------------------------------------------------------------
1 | package com.practicalddd.cargotracker.routingms.domain.model.valueobjects;
2 |
3 | import javax.persistence.Column;
4 | import javax.persistence.Embeddable;
5 |
6 | @Embeddable
7 | public class VoyageNumber {
8 | @Column(name="voyage_number")
9 | private String voyageNumber;
10 | public VoyageNumber(){}
11 | public VoyageNumber(String voyageNumber){this.voyageNumber = voyageNumber;}
12 | public String getVoyageNumber(){return this.voyageNumber;}
13 | public void setVoyageNumber(String voyageNumber){this.voyageNumber = voyageNumber;}
14 | }
15 |
--------------------------------------------------------------------------------
/Chapter6/routingms/src/main/java/com/practicalddd/cargotracker/routingms/infrastructure/.DS_Store:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/practicalddd/practicaldddbook/8ecfe7ac6bdbc527ada0603ea472d425a7ee1e4b/Chapter6/routingms/src/main/java/com/practicalddd/cargotracker/routingms/infrastructure/.DS_Store
--------------------------------------------------------------------------------
/Chapter6/routingms/src/main/java/com/practicalddd/cargotracker/routingms/infrastructure/brokers/.DS_Store:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/practicalddd/practicaldddbook/8ecfe7ac6bdbc527ada0603ea472d425a7ee1e4b/Chapter6/routingms/src/main/java/com/practicalddd/cargotracker/routingms/infrastructure/brokers/.DS_Store
--------------------------------------------------------------------------------
/Chapter6/routingms/src/main/java/com/practicalddd/cargotracker/routingms/infrastructure/repositories/.DS_Store:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/practicalddd/practicaldddbook/8ecfe7ac6bdbc527ada0603ea472d425a7ee1e4b/Chapter6/routingms/src/main/java/com/practicalddd/cargotracker/routingms/infrastructure/repositories/.DS_Store
--------------------------------------------------------------------------------
/Chapter6/routingms/src/main/java/com/practicalddd/cargotracker/routingms/infrastructure/repositories/jpa/VoyageRepository.java:
--------------------------------------------------------------------------------
1 | package com.practicalddd.cargotracker.routingms.infrastructure.repositories.jpa;
2 |
3 |
4 | import com.practicalddd.cargotracker.routingms.domain.model.aggregates.Voyage;
5 | import org.springframework.data.jpa.repository.JpaRepository;
6 | import java.util.List;
7 |
8 | /**
9 | * Repository class for the Voyage Aggregate.
10 | */
11 | public interface VoyageRepository extends JpaRepository {
12 | /**
13 | * Find all Voyage Aggregates
14 | * @return
15 | */
16 | List findAll() ;
17 |
18 |
19 | }
20 |
--------------------------------------------------------------------------------
/Chapter6/routingms/src/main/java/com/practicalddd/cargotracker/routingms/interfaces/.DS_Store:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/practicalddd/practicaldddbook/8ecfe7ac6bdbc527ada0603ea472d425a7ee1e4b/Chapter6/routingms/src/main/java/com/practicalddd/cargotracker/routingms/interfaces/.DS_Store
--------------------------------------------------------------------------------
/Chapter6/routingms/src/main/java/com/practicalddd/cargotracker/routingms/interfaces/rest/.DS_Store:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/practicalddd/practicaldddbook/8ecfe7ac6bdbc527ada0603ea472d425a7ee1e4b/Chapter6/routingms/src/main/java/com/practicalddd/cargotracker/routingms/interfaces/rest/.DS_Store
--------------------------------------------------------------------------------
/Chapter6/routingms/src/main/java/com/practicalddd/cargotracker/shareddomain/.DS_Store:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/practicalddd/practicaldddbook/8ecfe7ac6bdbc527ada0603ea472d425a7ee1e4b/Chapter6/routingms/src/main/java/com/practicalddd/cargotracker/shareddomain/.DS_Store
--------------------------------------------------------------------------------
/Chapter6/routingms/src/main/java/com/practicalddd/cargotracker/shareddomain/events/CargoBookedEvent.java:
--------------------------------------------------------------------------------
1 | package com.practicalddd.cargotracker.shareddomain.events;
2 |
3 |
4 | /**
5 | * Event Class for the Cargo Booked Event. Wraps up the Cargo Booking identifier
6 | * for the event
7 | */
8 |
9 | public class CargoBookedEvent {
10 | private CargoBookedEventData cargoBookedEventData;
11 | private CargoBookedEvent(){}
12 | public CargoBookedEvent(CargoBookedEventData cargoBookedEventData){
13 | this.cargoBookedEventData = cargoBookedEventData;
14 | }
15 | }
16 |
--------------------------------------------------------------------------------
/Chapter6/routingms/src/main/java/com/practicalddd/cargotracker/shareddomain/events/CargoBookedEventData.java:
--------------------------------------------------------------------------------
1 | package com.practicalddd.cargotracker.shareddomain.events;
2 |
3 |
4 |
5 | /**
6 | * Event Data for the Cargo Booked Event
7 | */
8 | public class CargoBookedEventData {
9 |
10 | private String bookingId;
11 |
12 | public CargoBookedEventData(){}
13 | public CargoBookedEventData(String bookingId){ this.bookingId = bookingId; }
14 | public void setBookingId(String bookingId){this.bookingId = bookingId;}
15 | public String getBookingId(){return this.bookingId;}
16 |
17 | }
18 |
--------------------------------------------------------------------------------
/Chapter6/routingms/src/main/java/com/practicalddd/cargotracker/shareddomain/events/CargoHandledEvent.java:
--------------------------------------------------------------------------------
1 | package com.practicalddd.cargotracker.shareddomain.events;
2 |
3 |
4 | public class CargoHandledEvent {
5 |
6 | private CargoHandledEventData cargoHandledEventData;
7 | public void setContent(CargoHandledEventData cargoHandledEventData) { this.cargoHandledEventData = cargoHandledEventData; }
8 | public CargoHandledEventData getContent() {
9 | return cargoHandledEventData;
10 | }
11 | }
12 |
--------------------------------------------------------------------------------
/Chapter6/routingms/src/main/java/com/practicalddd/cargotracker/shareddomain/events/CargoRoutedEvent.java:
--------------------------------------------------------------------------------
1 | package com.practicalddd.cargotracker.shareddomain.events;
2 |
3 |
4 | /**
5 | * Event Class for the Cargo Routed Event. Wraps up the Cargo
6 | */
7 |
8 | public class CargoRoutedEvent {
9 | private CargoRoutedEventData cargoRoutedEventData;
10 | public void setContent(CargoRoutedEventData cargoRoutedEventData) { this.cargoRoutedEventData = cargoRoutedEventData; }
11 | public CargoRoutedEventData getContent() {
12 | return cargoRoutedEventData;
13 | }
14 | }
--------------------------------------------------------------------------------
/Chapter6/routingms/src/main/java/com/practicalddd/cargotracker/shareddomain/events/CargoRoutedEventData.java:
--------------------------------------------------------------------------------
1 | package com.practicalddd.cargotracker.shareddomain.events;
2 |
3 | /**
4 | * Event Data for the Cargo Routed Event
5 | */
6 | public class CargoRoutedEventData {
7 |
8 | private String bookingId;
9 |
10 | public CargoRoutedEventData(String bookingId){
11 | this.bookingId = bookingId;
12 | }
13 |
14 | public String getBookingId(){return this.bookingId;}
15 |
16 | }
17 |
--------------------------------------------------------------------------------
/Chapter6/routingms/src/main/resources/application.properties:
--------------------------------------------------------------------------------
1 | spring.datasource.url=jdbc:mysql://localhost:3306/routingmsdb?zeroDateTimeBehavior=CONVERT_TO_NULL&serverTimezone=EST
2 | spring.datasource.username=routingmsdb
3 | spring.datasource.password=routingmsdb
4 |
5 | server.port=8083
--------------------------------------------------------------------------------
/Chapter6/routingms/src/test/java/com/practicalddd/cargotracker/routingms/RoutingmsApplicationTests.java:
--------------------------------------------------------------------------------
1 | package com.practicalddd.cargotracker.routingms;
2 |
3 | import org.junit.Test;
4 | import org.junit.runner.RunWith;
5 | import org.springframework.boot.test.context.SpringBootTest;
6 | import org.springframework.test.context.junit4.SpringRunner;
7 |
8 | @RunWith(SpringRunner.class)
9 | @SpringBootTest
10 | public class RoutingmsApplicationTests {
11 |
12 | @Test
13 | public void contextLoads() {
14 | }
15 |
16 | }
17 |
--------------------------------------------------------------------------------
/Chapter6/trackingms/.gitignore:
--------------------------------------------------------------------------------
1 | HELP.md
2 | target/
3 | !.mvn/wrapper/maven-wrapper.jar
4 | !**/src/main/**
5 | !**/src/test/**
6 |
7 | ### STS ###
8 | .apt_generated
9 | .classpath
10 | .factorypath
11 | .project
12 | .settings
13 | .springBeans
14 | .sts4-cache
15 |
16 | ### IntelliJ IDEA ###
17 | .idea
18 | *.iws
19 | *.iml
20 | *.ipr
21 |
22 | ### NetBeans ###
23 | /nbproject/private/
24 | /nbbuild/
25 | /dist/
26 | /nbdist/
27 | /.nb-gradle/
28 | build/
29 |
30 | ### VS Code ###
31 | .vscode/
32 |
--------------------------------------------------------------------------------
/Chapter6/trackingms/.mvn/wrapper/maven-wrapper.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/practicalddd/practicaldddbook/8ecfe7ac6bdbc527ada0603ea472d425a7ee1e4b/Chapter6/trackingms/.mvn/wrapper/maven-wrapper.jar
--------------------------------------------------------------------------------
/Chapter6/trackingms/.mvn/wrapper/maven-wrapper.properties:
--------------------------------------------------------------------------------
1 | distributionUrl=https://repo.maven.apache.org/maven2/org/apache/maven/apache-maven/3.6.0/apache-maven-3.6.0-bin.zip
2 |
--------------------------------------------------------------------------------
/Chapter6/trackingms/src/main/.DS_Store:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/practicalddd/practicaldddbook/8ecfe7ac6bdbc527ada0603ea472d425a7ee1e4b/Chapter6/trackingms/src/main/.DS_Store
--------------------------------------------------------------------------------
/Chapter6/trackingms/src/main/java/.DS_Store:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/practicalddd/practicaldddbook/8ecfe7ac6bdbc527ada0603ea472d425a7ee1e4b/Chapter6/trackingms/src/main/java/.DS_Store
--------------------------------------------------------------------------------
/Chapter6/trackingms/src/main/java/com/.DS_Store:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/practicalddd/practicaldddbook/8ecfe7ac6bdbc527ada0603ea472d425a7ee1e4b/Chapter6/trackingms/src/main/java/com/.DS_Store
--------------------------------------------------------------------------------
/Chapter6/trackingms/src/main/java/com/practicalddd/.DS_Store:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/practicalddd/practicaldddbook/8ecfe7ac6bdbc527ada0603ea472d425a7ee1e4b/Chapter6/trackingms/src/main/java/com/practicalddd/.DS_Store
--------------------------------------------------------------------------------
/Chapter6/trackingms/src/main/java/com/practicalddd/cargotracker/.DS_Store:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/practicalddd/practicaldddbook/8ecfe7ac6bdbc527ada0603ea472d425a7ee1e4b/Chapter6/trackingms/src/main/java/com/practicalddd/cargotracker/.DS_Store
--------------------------------------------------------------------------------
/Chapter6/trackingms/src/main/java/com/practicalddd/cargotracker/trackingms/.DS_Store:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/practicalddd/practicaldddbook/8ecfe7ac6bdbc527ada0603ea472d425a7ee1e4b/Chapter6/trackingms/src/main/java/com/practicalddd/cargotracker/trackingms/.DS_Store
--------------------------------------------------------------------------------
/Chapter6/trackingms/src/main/java/com/practicalddd/cargotracker/trackingms/TrackingmsApplication.java:
--------------------------------------------------------------------------------
1 | package com.practicalddd.cargotracker.trackingms;
2 |
3 | import org.springframework.boot.SpringApplication;
4 | import org.springframework.boot.autoconfigure.SpringBootApplication;
5 |
6 | @SpringBootApplication
7 | public class TrackingmsApplication {
8 |
9 | public static void main(String[] args) {
10 | SpringApplication.run(TrackingmsApplication.class, args);
11 | }
12 |
13 | }
14 |
--------------------------------------------------------------------------------
/Chapter6/trackingms/src/main/java/com/practicalddd/cargotracker/trackingms/application/.DS_Store:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/practicalddd/practicaldddbook/8ecfe7ac6bdbc527ada0603ea472d425a7ee1e4b/Chapter6/trackingms/src/main/java/com/practicalddd/cargotracker/trackingms/application/.DS_Store
--------------------------------------------------------------------------------
/Chapter6/trackingms/src/main/java/com/practicalddd/cargotracker/trackingms/application/internal/.DS_Store:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/practicalddd/practicaldddbook/8ecfe7ac6bdbc527ada0603ea472d425a7ee1e4b/Chapter6/trackingms/src/main/java/com/practicalddd/cargotracker/trackingms/application/internal/.DS_Store
--------------------------------------------------------------------------------
/Chapter6/trackingms/src/main/java/com/practicalddd/cargotracker/trackingms/domain/.DS_Store:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/practicalddd/practicaldddbook/8ecfe7ac6bdbc527ada0603ea472d425a7ee1e4b/Chapter6/trackingms/src/main/java/com/practicalddd/cargotracker/trackingms/domain/.DS_Store
--------------------------------------------------------------------------------
/Chapter6/trackingms/src/main/java/com/practicalddd/cargotracker/trackingms/domain/events/CargoTrackedEvent.java:
--------------------------------------------------------------------------------
1 | package com.practicalddd.cargotracker.trackingms.domain.events;
2 |
3 |
4 |
5 | /**
6 | * Event resulting from the Cargo being tracked
7 | */
8 | public class CargoTrackedEvent
9 | {
10 | private String bookingId;
11 | private String trackingId;
12 |
13 | public CargoTrackedEvent(String bookingId,
14 | String trackingId){
15 | this.bookingId = bookingId;
16 | this.trackingId = trackingId;
17 |
18 | }
19 |
20 | public String getBookingId(){ return this.bookingId; }
21 | public String getTrackingId(){return this.trackingId;}
22 | }
23 |
--------------------------------------------------------------------------------
/Chapter6/trackingms/src/main/java/com/practicalddd/cargotracker/trackingms/domain/model/.DS_Store:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/practicalddd/practicaldddbook/8ecfe7ac6bdbc527ada0603ea472d425a7ee1e4b/Chapter6/trackingms/src/main/java/com/practicalddd/cargotracker/trackingms/domain/model/.DS_Store
--------------------------------------------------------------------------------
/Chapter6/trackingms/src/main/java/com/practicalddd/cargotracker/trackingms/domain/projections/BookingId.java:
--------------------------------------------------------------------------------
1 | package com.practicalddd.cargotracker.trackingms.domain.projections;
2 |
3 |
4 | import javax.persistence.Column;
5 | import javax.persistence.Embeddable;
6 | import java.io.Serializable;
7 |
8 | /**
9 | * Aggregate Identifier for the Cargo Aggregate
10 | */
11 | @Embeddable
12 | public class BookingId implements Serializable {
13 |
14 | @Column(name="booking_id")
15 | private String bookingId;
16 |
17 | public BookingId(){}
18 |
19 | public BookingId(String bookingId){this.bookingId = bookingId;}
20 |
21 | public String getBookingId(){return this.bookingId;}
22 | }
23 |
--------------------------------------------------------------------------------
/Chapter6/trackingms/src/main/java/com/practicalddd/cargotracker/trackingms/domain/projections/TrackingNumber.java:
--------------------------------------------------------------------------------
1 | package com.practicalddd.cargotracker.trackingms.domain.projections;
2 |
3 |
4 | import javax.persistence.Column;
5 | import javax.persistence.Embeddable;
6 |
7 | @Embeddable
8 | public class TrackingNumber {
9 |
10 | @Column(name="tracking_number")
11 | private String trackingNumber;
12 |
13 | public TrackingNumber(){}
14 |
15 | public TrackingNumber(String trackingNumber){this.trackingNumber = trackingNumber;}
16 |
17 | public String getTrackingNumber(){return this.trackingNumber;}
18 | }
19 |
--------------------------------------------------------------------------------
/Chapter6/trackingms/src/main/java/com/practicalddd/cargotracker/trackingms/domain/valueobjects/TrackingVoyageNumber.java:
--------------------------------------------------------------------------------
1 | package com.practicalddd.cargotracker.trackingms.domain.model.valueobjects;
2 |
3 | import javax.persistence.Column;
4 | import javax.persistence.Embeddable;
5 |
6 | @Embeddable
7 | public class TrackingVoyageNumber {
8 | @Column(name="voyage_number")
9 | private String voyageNumber;
10 | public TrackingVoyageNumber(){}
11 | public TrackingVoyageNumber(String voyageNumber){this.voyageNumber = voyageNumber;}
12 | public String getVoyageNumber(){return this.voyageNumber;}
13 | public void setVoyageNumber(String voyageNumber){this.voyageNumber = voyageNumber;}
14 | }
15 |
--------------------------------------------------------------------------------
/Chapter6/trackingms/src/main/java/com/practicalddd/cargotracker/trackingms/infrastructure/.DS_Store:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/practicalddd/practicaldddbook/8ecfe7ac6bdbc527ada0603ea472d425a7ee1e4b/Chapter6/trackingms/src/main/java/com/practicalddd/cargotracker/trackingms/infrastructure/.DS_Store
--------------------------------------------------------------------------------
/Chapter6/trackingms/src/main/java/com/practicalddd/cargotracker/trackingms/infrastructure/brokers/.DS_Store:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/practicalddd/practicaldddbook/8ecfe7ac6bdbc527ada0603ea472d425a7ee1e4b/Chapter6/trackingms/src/main/java/com/practicalddd/cargotracker/trackingms/infrastructure/brokers/.DS_Store
--------------------------------------------------------------------------------
/Chapter6/trackingms/src/main/java/com/practicalddd/cargotracker/trackingms/infrastructure/repositories/.DS_Store:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/practicalddd/practicaldddbook/8ecfe7ac6bdbc527ada0603ea472d425a7ee1e4b/Chapter6/trackingms/src/main/java/com/practicalddd/cargotracker/trackingms/infrastructure/repositories/.DS_Store
--------------------------------------------------------------------------------
/Chapter6/trackingms/src/main/java/com/practicalddd/cargotracker/trackingms/interfaces/.DS_Store:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/practicalddd/practicaldddbook/8ecfe7ac6bdbc527ada0603ea472d425a7ee1e4b/Chapter6/trackingms/src/main/java/com/practicalddd/cargotracker/trackingms/interfaces/.DS_Store
--------------------------------------------------------------------------------
/Chapter6/trackingms/src/main/resources/application.properties:
--------------------------------------------------------------------------------
1 | spring.datasource.url=jdbc:mysql://localhost:3306/trackingmsdb?zeroDateTimeBehavior=CONVERT_TO_NULL&serverTimezone=EST
2 | spring.datasource.username=trackingmsdb
3 | spring.datasource.password=trackingmsdb
4 | server.port=8084
--------------------------------------------------------------------------------
/Chapter6/trackingms/src/test/java/com/practicalddd/cargotracker/trackingms/TrackingmsApplicationTests.java:
--------------------------------------------------------------------------------
1 | package com.practicalddd.cargotracker.trackingms;
2 |
3 | import org.junit.Test;
4 | import org.junit.runner.RunWith;
5 | import org.springframework.boot.test.context.SpringBootTest;
6 | import org.springframework.test.context.junit4.SpringRunner;
7 |
8 | @RunWith(SpringRunner.class)
9 | @SpringBootTest
10 | public class TrackingmsApplicationTests {
11 |
12 | @Test
13 | public void contextLoads() {
14 | }
15 |
16 | }
17 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # Practical Domain Driven Design
2 |
3 | Source Code for the Practical Domain Driven Design Book. The source code is comprised of four chapters.
4 |
5 | Chapter 3 - Cargo Tracker's DDD Monolithic Implementation - Jakarta EE v8 using Eclipse Glassfish 5.1 and the MySQL Database
6 |
7 | Chapter 4 - Cargo Tracker's DDD Microservices Implementation - Eclipse MicroProfile v2.2 using Oracle's Helidon MP implementation and the MySQL Database
8 |
9 | Chapter 5 - Cargo Tracker's DDD Microservices Implementation - Spring Boot v2.1.x and the MySQL Database
10 |
11 | Chapter 6 - Cargo Tracker's DDD CQRS/ES Implementation - Axon frameowork v4.0
12 |
--------------------------------------------------------------------------------