├── 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 | 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 | 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 | 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 | --------------------------------------------------------------------------------