* It is used as a message queue element.
*/
-@Getter
-@RequiredArgsConstructor
public final class HandlingEventRegistrationAttempt implements Serializable {
private final Instant registrationTime;
@@ -29,6 +26,44 @@ public final class HandlingEventRegistrationAttempt implements Serializable {
private final HandlingEvent.Type type;
private final UnLocode unLocode;
+ public HandlingEventRegistrationAttempt(@NonNull Instant registrationTime,
+ @NonNull Instant completionTime,
+ @NonNull TrackingId trackingId,
+ @NonNull VoyageNumber voyageNumber,
+ @NonNull HandlingEvent.Type type,
+ @NonNull UnLocode unLocode) {
+ this.registrationTime = registrationTime;
+ this.completionTime = completionTime;
+ this.trackingId = trackingId;
+ this.voyageNumber = voyageNumber;
+ this.type = type;
+ this.unLocode = unLocode;
+ }
+
+ public Instant getCompletionTime() {
+ return completionTime;
+ }
+
+ public TrackingId getTrackingId() {
+ return trackingId;
+ }
+
+ public VoyageNumber getVoyageNumber() {
+ return voyageNumber;
+ }
+
+ public HandlingEvent.Type getType() {
+ return type;
+ }
+
+ public UnLocode getUnLocode() {
+ return unLocode;
+ }
+
+ public Instant getRegistrationTime() {
+ return registrationTime;
+ }
+
@Override
public String toString() {
return ToStringBuilder.reflectionToString(this, ToStringStyle.MULTI_LINE_STYLE);
diff --git a/src/main/java/se/citerus/dddsample/interfaces/tracking/CargoTrackingController.java b/src/main/java/se/citerus/dddsample/interfaces/tracking/CargoTrackingController.java
index 3879e911..b7eb1b60 100644
--- a/src/main/java/se/citerus/dddsample/interfaces/tracking/CargoTrackingController.java
+++ b/src/main/java/se/citerus/dddsample/interfaces/tracking/CargoTrackingController.java
@@ -1,9 +1,8 @@
package se.citerus.dddsample.interfaces.tracking;
import jakarta.servlet.http.HttpServletRequest;
-import lombok.RequiredArgsConstructor;
-import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.MessageSource;
+import org.springframework.lang.NonNull;
import org.springframework.stereotype.Controller;
import org.springframework.validation.BindingResult;
import org.springframework.web.bind.annotation.RequestMapping;
@@ -35,7 +34,6 @@
*/
@Controller
@RequestMapping("/track")
-@RequiredArgsConstructor
public final class CargoTrackingController {
private final CargoRepository cargoRepository;
@@ -43,6 +41,16 @@ public final class CargoTrackingController {
private final MessageSource messageSource;
private final TrackCommandValidator trackCommandValidator;
+ public CargoTrackingController(@NonNull CargoRepository cargoRepository,
+ @NonNull HandlingEventRepository handlingEventRepository,
+ @NonNull MessageSource messageSource,
+ @NonNull TrackCommandValidator trackCommandValidator) {
+ this.cargoRepository = cargoRepository;
+ this.handlingEventRepository = handlingEventRepository;
+ this.messageSource = messageSource;
+ this.trackCommandValidator = trackCommandValidator;
+ }
+
@RequestMapping(method = RequestMethod.GET)
public String index(final Map