diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml
index f700bee95..236a6972b 100644
--- a/.github/workflows/main.yml
+++ b/.github/workflows/main.yml
@@ -16,20 +16,28 @@ on:
jobs:
formatting:
runs-on: ubuntu-latest
+ strategy:
+ matrix:
+ java: [17]
steps:
- uses: actions/checkout@v3
+ - uses: actions/setup-java@v3
+ with:
+ java-version: ${{matrix.java}}
+ distribution: 'temurin'
+ - name: Print Java Version
+ run: java -version
- uses: axel-op/googlejavaformat-action@v3
with:
- # This version works will all IDEs including Eclipse.
- version: 1.6
+ args: "--set-exit-if-changed --dry-run --skip-reflowing-long-strings"
+ version: v1.22.0
skip-commit: true
- # args: "--dry-run --set-exit-if-changed"
build:
runs-on: ubuntu-latest
needs: [formatting]
strategy:
matrix:
- java: [11]
+ java: [17]
steps:
- uses: actions/checkout@v3
- name: Set up Java
diff --git a/.github/workflows/nightly.yml b/.github/workflows/nightly.yml
index b3198a7e2..d41fb0a28 100644
--- a/.github/workflows/nightly.yml
+++ b/.github/workflows/nightly.yml
@@ -15,7 +15,7 @@ jobs:
uses: actions/setup-java@v3
with:
distribution: 'temurin'
- java-version: '11'
+ java-version: '17'
- name: Cache Maven packages
uses: actions/cache@v3
diff --git a/README.md b/README.md
index 2824670ad..6337cf672 100644
--- a/README.md
+++ b/README.md
@@ -26,7 +26,7 @@ The [project website](https://eclipse-ee4j.github.io/cargotracker/) has detailed
The simplest steps are the following (no IDE required):
* Get the project source code.
-* Ensure you are running Java SE 11 or Java SE 17.
+* Ensure you are running Java SE 17+.
* Make sure JAVA_HOME is set.
* As long as you have Maven set up properly, navigate to the project source root and type:
```
diff --git a/nightly.yml b/nightly.yml
index e7d63ef3f..32aa1def1 100644
--- a/nightly.yml
+++ b/nightly.yml
@@ -46,7 +46,7 @@ jobs:
uses: actions/setup-java@v3
with:
distribution: 'temurin'
- java-version: '11'
+ java-version: '17'
- name: Cache Maven packages
uses: actions/cache@v3
diff --git a/pom.xml b/pom.xml
index 05e2e562e..6524d18d3 100644
--- a/pom.xml
+++ b/pom.xml
@@ -21,8 +21,8 @@
UTF-8
UTF-8
- 11
- 10.0.0
+ 17
+ 11.0.0-M2
@@ -32,7 +32,7 @@
org.jboss.arquillian
arquillian-bom
- 1.7.1.Final
+ 1.8.0.Final
import
pom
@@ -52,6 +52,13 @@
${jakartaee-api.version}
provided
+
+
+ jakarta.xml.bind
+ jakarta.xml.bind-api
+ 4.0.2
+
+
org.apache.commons
@@ -113,13 +120,26 @@
org.apache.maven.plugins
maven-compiler-plugin
- 3.11.0
+ 3.13.0
+
org.apache.maven.plugins
maven-resources-plugin
3.3.1
+
+ com.diffplug.spotless
+ spotless-maven-plugin
+ 2.37.0
+
+
+
+ 1.22.0
+
+
+
+
org.apache.maven.plugins
maven-war-plugin
@@ -139,7 +159,7 @@
true
- 6.2023.12
+ 6.2024.7
http://localhost:8080/cargo-tracker/rest/graph-traversal/shortest-path
org.h2.jdbcx.JdbcDataSource
@@ -455,6 +475,7 @@
pom
test
+
@@ -463,7 +484,7 @@
io.openliberty.tools
liberty-maven-plugin
- 3.8.2
+ 3.10.3
diff --git a/src/main/java/org/eclipse/cargotracker/application/BookingService.java b/src/main/java/org/eclipse/cargotracker/application/BookingService.java
index feea5ef94..71d2fbe5e 100644
--- a/src/main/java/org/eclipse/cargotracker/application/BookingService.java
+++ b/src/main/java/org/eclipse/cargotracker/application/BookingService.java
@@ -1,10 +1,10 @@
package org.eclipse.cargotracker.application;
-import java.time.LocalDate;
-import java.util.List;
import jakarta.validation.Valid;
import jakarta.validation.constraints.Future;
import jakarta.validation.constraints.NotNull;
+import java.time.LocalDate;
+import java.util.List;
import org.eclipse.cargotracker.domain.model.cargo.Itinerary;
import org.eclipse.cargotracker.domain.model.cargo.TrackingId;
import org.eclipse.cargotracker.domain.model.location.UnLocode;
diff --git a/src/main/java/org/eclipse/cargotracker/application/HandlingEventService.java b/src/main/java/org/eclipse/cargotracker/application/HandlingEventService.java
index 953261a02..7536ae01c 100644
--- a/src/main/java/org/eclipse/cargotracker/application/HandlingEventService.java
+++ b/src/main/java/org/eclipse/cargotracker/application/HandlingEventService.java
@@ -1,8 +1,8 @@
package org.eclipse.cargotracker.application;
-import java.time.LocalDateTime;
import jakarta.validation.Valid;
import jakarta.validation.constraints.NotNull;
+import java.time.LocalDateTime;
import org.eclipse.cargotracker.domain.model.cargo.TrackingId;
import org.eclipse.cargotracker.domain.model.handling.CannotCreateHandlingEventException;
import org.eclipse.cargotracker.domain.model.handling.HandlingEvent;
diff --git a/src/main/java/org/eclipse/cargotracker/application/internal/DefaultBookingService.java b/src/main/java/org/eclipse/cargotracker/application/internal/DefaultBookingService.java
index 93e8c2f45..248446639 100644
--- a/src/main/java/org/eclipse/cargotracker/application/internal/DefaultBookingService.java
+++ b/src/main/java/org/eclipse/cargotracker/application/internal/DefaultBookingService.java
@@ -1,12 +1,11 @@
package org.eclipse.cargotracker.application.internal;
+import jakarta.ejb.Stateless;
+import jakarta.inject.Inject;
import java.time.LocalDate;
-import java.util.Collections;
import java.util.List;
import java.util.logging.Level;
import java.util.logging.Logger;
-import jakarta.ejb.Stateless;
-import jakarta.inject.Inject;
import org.eclipse.cargotracker.application.BookingService;
import org.eclipse.cargotracker.domain.model.cargo.Cargo;
import org.eclipse.cargotracker.domain.model.cargo.CargoRepository;
@@ -49,7 +48,7 @@ public List requestPossibleRoutesForCargo(TrackingId trackingId) {
Cargo cargo = cargoRepository.find(trackingId);
if (cargo == null) {
- return Collections.emptyList();
+ return List.of();
}
return routingService.fetchRoutesForSpecification(cargo.getRouteSpecification());
diff --git a/src/main/java/org/eclipse/cargotracker/application/internal/DefaultCargoInspectionService.java b/src/main/java/org/eclipse/cargotracker/application/internal/DefaultCargoInspectionService.java
index 5acd8b7b7..6e309eebb 100644
--- a/src/main/java/org/eclipse/cargotracker/application/internal/DefaultCargoInspectionService.java
+++ b/src/main/java/org/eclipse/cargotracker/application/internal/DefaultCargoInspectionService.java
@@ -1,9 +1,9 @@
package org.eclipse.cargotracker.application.internal;
-import java.util.logging.Level;
-import java.util.logging.Logger;
import jakarta.ejb.Stateless;
import jakarta.inject.Inject;
+import java.util.logging.Level;
+import java.util.logging.Logger;
import org.eclipse.cargotracker.application.ApplicationEvents;
import org.eclipse.cargotracker.application.CargoInspectionService;
import org.eclipse.cargotracker.domain.model.cargo.Cargo;
diff --git a/src/main/java/org/eclipse/cargotracker/application/internal/DefaultHandlingEventService.java b/src/main/java/org/eclipse/cargotracker/application/internal/DefaultHandlingEventService.java
index a453eec71..d06241aba 100644
--- a/src/main/java/org/eclipse/cargotracker/application/internal/DefaultHandlingEventService.java
+++ b/src/main/java/org/eclipse/cargotracker/application/internal/DefaultHandlingEventService.java
@@ -1,9 +1,9 @@
package org.eclipse.cargotracker.application.internal;
-import java.time.LocalDateTime;
-import java.util.logging.Logger;
import jakarta.ejb.Stateless;
import jakarta.inject.Inject;
+import java.time.LocalDateTime;
+import java.util.logging.Logger;
import org.eclipse.cargotracker.application.ApplicationEvents;
import org.eclipse.cargotracker.application.HandlingEventService;
import org.eclipse.cargotracker.domain.model.cargo.TrackingId;
diff --git a/src/main/java/org/eclipse/cargotracker/application/util/ApplicationSettings.java b/src/main/java/org/eclipse/cargotracker/application/util/ApplicationSettings.java
index 40b92eb5b..3ab36b031 100644
--- a/src/main/java/org/eclipse/cargotracker/application/util/ApplicationSettings.java
+++ b/src/main/java/org/eclipse/cargotracker/application/util/ApplicationSettings.java
@@ -1,8 +1,9 @@
package org.eclipse.cargotracker.application.util;
-import java.io.Serializable;
import jakarta.persistence.Entity;
import jakarta.persistence.Id;
+import java.io.Serial;
+import java.io.Serializable;
/**
* Application settings. Although this is stored in the database, it is not a true part of the
@@ -10,7 +11,7 @@
*/
@Entity
public class ApplicationSettings implements Serializable {
- private static final long serialVersionUID = 1L;
+ @Serial private static final long serialVersionUID = 1L;
@Id private Long id;
diff --git a/src/main/java/org/eclipse/cargotracker/application/util/RestConfiguration.java b/src/main/java/org/eclipse/cargotracker/application/util/RestConfiguration.java
index 4888b5f80..a85570fe4 100644
--- a/src/main/java/org/eclipse/cargotracker/application/util/RestConfiguration.java
+++ b/src/main/java/org/eclipse/cargotracker/application/util/RestConfiguration.java
@@ -1,9 +1,9 @@
package org.eclipse.cargotracker.application.util;
-import java.util.HashMap;
-import java.util.Map;
import jakarta.ws.rs.ApplicationPath;
import jakarta.ws.rs.core.Application;
+import java.util.HashMap;
+import java.util.Map;
import org.glassfish.jersey.server.ServerProperties;
/** Jakarta REST configuration. */
diff --git a/src/main/java/org/eclipse/cargotracker/application/util/SampleDataGenerator.java b/src/main/java/org/eclipse/cargotracker/application/util/SampleDataGenerator.java
index 4d02dae1f..97a1431c8 100644
--- a/src/main/java/org/eclipse/cargotracker/application/util/SampleDataGenerator.java
+++ b/src/main/java/org/eclipse/cargotracker/application/util/SampleDataGenerator.java
@@ -1,9 +1,5 @@
package org.eclipse.cargotracker.application.util;
-import java.time.LocalDate;
-import java.time.LocalDateTime;
-import java.util.Arrays;
-import java.util.logging.Logger;
import jakarta.annotation.PostConstruct;
import jakarta.ejb.Singleton;
import jakarta.ejb.Startup;
@@ -14,6 +10,11 @@
import jakarta.persistence.LockModeType;
import jakarta.persistence.NoResultException;
import jakarta.persistence.PersistenceContext;
+import java.time.LocalDate;
+import java.time.LocalDateTime;
+import java.util.Arrays;
+import java.util.List;
+import java.util.logging.Logger;
import org.eclipse.cargotracker.domain.model.cargo.Cargo;
import org.eclipse.cargotracker.domain.model.cargo.Itinerary;
import org.eclipse.cargotracker.domain.model.cargo.Leg;
@@ -107,7 +108,7 @@ private void loadSampleCargos() {
Itinerary itinerary1 =
new Itinerary(
- Arrays.asList(
+ List.of(
new Leg(
SampleVoyages.HONGKONG_TO_NEW_YORK,
SampleLocations.HONGKONG,
diff --git a/src/main/java/org/eclipse/cargotracker/domain/model/cargo/Cargo.java b/src/main/java/org/eclipse/cargotracker/domain/model/cargo/Cargo.java
index 9e924a78a..004f9028f 100644
--- a/src/main/java/org/eclipse/cargotracker/domain/model/cargo/Cargo.java
+++ b/src/main/java/org/eclipse/cargotracker/domain/model/cargo/Cargo.java
@@ -1,6 +1,5 @@
package org.eclipse.cargotracker.domain.model.cargo;
-import java.io.Serializable;
import jakarta.persistence.Embedded;
import jakarta.persistence.Entity;
import jakarta.persistence.GeneratedValue;
@@ -9,6 +8,9 @@
import jakarta.persistence.ManyToOne;
import jakarta.persistence.NamedQuery;
import jakarta.validation.constraints.NotNull;
+import java.io.Serial;
+import java.io.Serializable;
+import java.util.Objects;
import org.apache.commons.lang3.Validate;
import org.eclipse.cargotracker.domain.model.handling.HandlingEvent;
import org.eclipse.cargotracker.domain.model.handling.HandlingHistory;
@@ -57,7 +59,7 @@
query = "Select c from Cargo c where c.trackingId = :trackingId")
public class Cargo implements Serializable {
- private static final long serialVersionUID = 1L;
+ @Serial private static final long serialVersionUID = 1L;
@Id @GeneratedValue private Long id;
@@ -113,12 +115,16 @@ public RouteSpecification getRouteSpecification() {
return routeSpecification;
}
- /** @return The delivery. Never null. */
+ /**
+ * @return The delivery. Never null.
+ */
public Delivery getDelivery() {
return delivery;
}
- /** @return The itinerary. Never null. */
+ /**
+ * @return The itinerary. Never null.
+ */
public Itinerary getItinerary() {
return DomainObjectUtils.nullSafe(this.itinerary, Itinerary.EMPTY_ITINERARY);
}
@@ -158,32 +164,17 @@ public void deriveDeliveryProgress(HandlingHistory handlingHistory) {
this.delivery = Delivery.derivedFrom(getRouteSpecification(), getItinerary(), handlingHistory);
}
- /**
- * @param object to compare
- * @return True if they have the same identity
- * @see #sameIdentityAs(Cargo)
- */
@Override
- public boolean equals(Object object) {
- if (this == object) {
- return true;
- }
- if (object == null || !(object instanceof Cargo)) {
- return false;
- }
-
- Cargo other = (Cargo) object;
- return sameIdentityAs(other);
- }
+ public boolean equals(Object o) {
+ if (this == o) return true;
+ if (!(o instanceof Cargo cargo)) return false;
- private boolean sameIdentityAs(Cargo other) {
- return other != null && trackingId.sameValueAs(other.trackingId);
+ return Objects.equals(trackingId, cargo.trackingId);
}
- /** @return Hash code of tracking id. */
@Override
public int hashCode() {
- return trackingId.hashCode();
+ return Objects.hash(trackingId);
}
@Override
diff --git a/src/main/java/org/eclipse/cargotracker/domain/model/cargo/Delivery.java b/src/main/java/org/eclipse/cargotracker/domain/model/cargo/Delivery.java
index a84e63f6a..327a4a2f2 100644
--- a/src/main/java/org/eclipse/cargotracker/domain/model/cargo/Delivery.java
+++ b/src/main/java/org/eclipse/cargotracker/domain/model/cargo/Delivery.java
@@ -9,10 +9,6 @@
import static org.eclipse.cargotracker.domain.model.cargo.TransportStatus.ONBOARD_CARRIER;
import static org.eclipse.cargotracker.domain.model.cargo.TransportStatus.UNKNOWN;
-import java.io.Serializable;
-import java.time.LocalDateTime;
-import java.time.temporal.ChronoUnit;
-import java.util.Iterator;
import jakarta.persistence.Column;
import jakarta.persistence.Embeddable;
import jakarta.persistence.Embedded;
@@ -21,9 +17,13 @@
import jakarta.persistence.JoinColumn;
import jakarta.persistence.ManyToOne;
import jakarta.validation.constraints.NotNull;
+import java.io.Serial;
+import java.io.Serializable;
+import java.time.LocalDateTime;
+import java.time.temporal.ChronoUnit;
+import java.util.Iterator;
+import java.util.Objects;
import org.apache.commons.lang3.Validate;
-import org.apache.commons.lang3.builder.EqualsBuilder;
-import org.apache.commons.lang3.builder.HashCodeBuilder;
import org.eclipse.cargotracker.domain.model.handling.HandlingEvent;
import org.eclipse.cargotracker.domain.model.handling.HandlingHistory;
import org.eclipse.cargotracker.domain.model.location.Location;
@@ -36,8 +36,7 @@
*/
@Embeddable
public class Delivery implements Serializable {
-
- private static final long serialVersionUID = 1L;
+ @Serial private static final long serialVersionUID = 1L;
// Null object pattern.
public static final LocalDateTime ETA_UNKOWN = null;
@@ -183,7 +182,9 @@ public HandlingActivity getNextExpectedActivity() {
return nextExpectedActivity;
}
- /** @return True if the cargo has been unloaded at the final destination. */
+ /**
+ * @return True if the cargo has been unloaded at the final destination.
+ */
public boolean isUnloadedAtDestination() {
return isUnloadedAtDestination;
}
@@ -213,18 +214,12 @@ private TransportStatus calculateTransportStatus() {
return NOT_RECEIVED;
}
- switch (lastEvent.getType()) {
- case LOAD:
- return ONBOARD_CARRIER;
- case UNLOAD:
- case RECEIVE:
- case CUSTOMS:
- return IN_PORT;
- case CLAIM:
- return CLAIMED;
- default:
- return UNKNOWN;
- }
+ return switch (lastEvent.getType()) {
+ case LOAD -> ONBOARD_CARRIER;
+ case UNLOAD, RECEIVE, CUSTOMS -> IN_PORT;
+ case CLAIM -> CLAIMED;
+ default -> UNKNOWN;
+ };
}
private Location calculateLastKnownLocation() {
@@ -271,44 +266,43 @@ private HandlingActivity calculateNextExpectedActivity(
return new HandlingActivity(HandlingEvent.Type.RECEIVE, routeSpecification.getOrigin());
}
- switch (lastEvent.getType()) {
- case LOAD:
- for (Leg leg : itinerary.getLegs()) {
- if (leg.getLoadLocation().sameIdentityAs(lastEvent.getLocation())) {
- return new HandlingActivity(
- HandlingEvent.Type.UNLOAD, leg.getUnloadLocation(), leg.getVoyage());
- }
- }
-
- return NO_ACTIVITY;
-
- case UNLOAD:
+ return switch (lastEvent.getType()) {
+ case LOAD ->
+ itinerary.getLegs().stream()
+ .filter(leg -> leg.getLoadLocation().sameIdentityAs(lastEvent.getLocation()))
+ .findFirst()
+ .map(
+ leg ->
+ new HandlingActivity(
+ HandlingEvent.Type.UNLOAD, leg.getUnloadLocation(), leg.getVoyage()))
+ .orElse(NO_ACTIVITY);
+ case UNLOAD -> {
for (Iterator iterator = itinerary.getLegs().iterator(); iterator.hasNext(); ) {
Leg leg = iterator.next();
-
- if (leg.getUnloadLocation().sameIdentityAs(lastEvent.getLocation())) {
- if (iterator.hasNext()) {
- Leg nextLeg = iterator.next();
- return new HandlingActivity(
- HandlingEvent.Type.LOAD, nextLeg.getLoadLocation(), nextLeg.getVoyage());
- } else {
- return new HandlingActivity(HandlingEvent.Type.CLAIM, leg.getUnloadLocation());
- }
- }
+ yield getHandlingActivity(leg, iterator);
}
-
- return NO_ACTIVITY;
-
- case RECEIVE:
+ yield NO_ACTIVITY;
+ }
+ case RECEIVE -> {
Leg firstLeg = itinerary.getLegs().iterator().next();
-
- return new HandlingActivity(
+ yield new HandlingActivity(
HandlingEvent.Type.LOAD, firstLeg.getLoadLocation(), firstLeg.getVoyage());
+ }
+ default -> NO_ACTIVITY;
+ };
+ }
- case CLAIM:
- default:
- return NO_ACTIVITY;
+ private HandlingActivity getHandlingActivity(Leg leg, Iterator iterator) {
+ if (leg.getUnloadLocation().sameIdentityAs(lastEvent.getLocation())) {
+ if (iterator.hasNext()) {
+ Leg nextLeg = iterator.next();
+ return new HandlingActivity(
+ HandlingEvent.Type.LOAD, nextLeg.getLoadLocation(), nextLeg.getVoyage());
+ } else {
+ return new HandlingActivity(HandlingEvent.Type.CLAIM, leg.getUnloadLocation());
+ }
}
+ return NO_ACTIVITY;
}
private RoutingStatus calculateRoutingStatus(
@@ -334,49 +328,34 @@ private boolean onTrack() {
return routingStatus.equals(ROUTED) && !misdirected;
}
- private boolean sameValueAs(Delivery other) {
- return other != null
- && new EqualsBuilder()
- .append(this.transportStatus, other.transportStatus)
- .append(this.lastKnownLocation, other.lastKnownLocation)
- .append(this.currentVoyage, other.currentVoyage)
- .append(this.misdirected, other.misdirected)
- .append(this.eta, other.eta)
- .append(this.nextExpectedActivity, other.nextExpectedActivity)
- .append(this.isUnloadedAtDestination, other.isUnloadedAtDestination)
- .append(this.routingStatus, other.routingStatus)
- .append(this.calculatedAt, other.calculatedAt)
- .append(this.lastEvent, other.lastEvent)
- .isEquals();
- }
-
@Override
public boolean equals(Object o) {
- if (this == o) {
- return true;
- }
- if (o == null || !(o instanceof Delivery)) {
- return false;
- }
-
- Delivery other = (Delivery) o;
-
- return sameValueAs(other);
+ if (this == o) return true;
+ if (!(o instanceof Delivery delivery)) return false;
+ return misdirected == delivery.misdirected
+ && isUnloadedAtDestination == delivery.isUnloadedAtDestination
+ && transportStatus == delivery.transportStatus
+ && Objects.equals(lastKnownLocation, delivery.lastKnownLocation)
+ && Objects.equals(currentVoyage, delivery.currentVoyage)
+ && Objects.equals(eta, delivery.eta)
+ && Objects.equals(nextExpectedActivity, delivery.nextExpectedActivity)
+ && routingStatus == delivery.routingStatus
+ && Objects.equals(calculatedAt, delivery.calculatedAt)
+ && Objects.equals(lastEvent, delivery.lastEvent);
}
@Override
public int hashCode() {
- return new HashCodeBuilder()
- .append(transportStatus)
- .append(lastKnownLocation)
- .append(currentVoyage)
- .append(misdirected)
- .append(eta)
- .append(nextExpectedActivity)
- .append(isUnloadedAtDestination)
- .append(routingStatus)
- .append(calculatedAt)
- .append(lastEvent)
- .toHashCode();
+ return Objects.hash(
+ transportStatus,
+ lastKnownLocation,
+ currentVoyage,
+ misdirected,
+ eta,
+ nextExpectedActivity,
+ isUnloadedAtDestination,
+ routingStatus,
+ calculatedAt,
+ lastEvent);
}
}
diff --git a/src/main/java/org/eclipse/cargotracker/domain/model/cargo/HandlingActivity.java b/src/main/java/org/eclipse/cargotracker/domain/model/cargo/HandlingActivity.java
index 385f52949..3c58cc9f5 100644
--- a/src/main/java/org/eclipse/cargotracker/domain/model/cargo/HandlingActivity.java
+++ b/src/main/java/org/eclipse/cargotracker/domain/model/cargo/HandlingActivity.java
@@ -1,6 +1,5 @@
package org.eclipse.cargotracker.domain.model.cargo;
-import java.io.Serializable;
import jakarta.persistence.Column;
import jakarta.persistence.Embeddable;
import jakarta.persistence.EnumType;
@@ -8,9 +7,10 @@
import jakarta.persistence.JoinColumn;
import jakarta.persistence.ManyToOne;
import jakarta.validation.constraints.NotNull;
+import java.io.Serial;
+import java.io.Serializable;
+import java.util.Objects;
import org.apache.commons.lang3.Validate;
-import org.apache.commons.lang3.builder.EqualsBuilder;
-import org.apache.commons.lang3.builder.HashCodeBuilder;
import org.eclipse.cargotracker.domain.model.handling.HandlingEvent;
import org.eclipse.cargotracker.domain.model.location.Location;
import org.eclipse.cargotracker.domain.model.voyage.Voyage;
@@ -22,7 +22,7 @@
@Embeddable
public class HandlingActivity implements Serializable {
- private static final long serialVersionUID = 1L;
+ @Serial private static final long serialVersionUID = 1L;
@Enumerated(EnumType.STRING)
@Column(name = "next_expected_handling_event_type")
@@ -70,41 +70,19 @@ public Voyage getVoyage() {
return voyage;
}
- private boolean sameValueAs(HandlingActivity other) {
- return other != null
- && new EqualsBuilder()
- .append(this.type, other.type)
- .append(this.location, other.location)
- .append(this.voyage, other.voyage)
- .isEquals();
- }
-
@Override
- public int hashCode() {
- return new HashCodeBuilder()
- .append(this.type)
- .append(this.location)
- .append(this.voyage)
- .toHashCode();
+ public boolean equals(Object o) {
+ if (this == o) return true;
+ if (!(o instanceof HandlingActivity that)) return false;
+
+ return type == that.type
+ && Objects.equals(location, that.location)
+ && Objects.equals(voyage, that.voyage);
}
@Override
- public boolean equals(Object obj) {
- if (obj == this) {
- return true;
- }
-
- if (obj == null) {
- return false;
- }
-
- if (!(obj instanceof HandlingActivity)) {
- return false;
- }
-
- HandlingActivity other = (HandlingActivity) obj;
-
- return sameValueAs(other);
+ public int hashCode() {
+ return Objects.hash(type, location, voyage);
}
public boolean isEmpty() {
diff --git a/src/main/java/org/eclipse/cargotracker/domain/model/cargo/Itinerary.java b/src/main/java/org/eclipse/cargotracker/domain/model/cargo/Itinerary.java
index cb59917c7..8be88b913 100644
--- a/src/main/java/org/eclipse/cargotracker/domain/model/cargo/Itinerary.java
+++ b/src/main/java/org/eclipse/cargotracker/domain/model/cargo/Itinerary.java
@@ -1,9 +1,5 @@
package org.eclipse.cargotracker.domain.model.cargo;
-import java.io.Serializable;
-import java.time.LocalDateTime;
-import java.util.Collections;
-import java.util.List;
import jakarta.persistence.CascadeType;
import jakarta.persistence.Embeddable;
import jakarta.persistence.JoinColumn;
@@ -11,14 +7,19 @@
import jakarta.persistence.OrderColumn;
import jakarta.validation.constraints.NotEmpty;
import jakarta.validation.constraints.Size;
+import java.io.Serial;
+import java.io.Serializable;
+import java.time.LocalDateTime;
+import java.util.Collections;
+import java.util.List;
+import java.util.Objects;
import org.apache.commons.lang3.Validate;
import org.eclipse.cargotracker.domain.model.handling.HandlingEvent;
import org.eclipse.cargotracker.domain.model.location.Location;
@Embeddable
public class Itinerary implements Serializable {
-
- private static final long serialVersionUID = 1L;
+ @Serial private static final long serialVersionUID = 1L;
// Null object pattern.
public static final Itinerary EMPTY_ITINERARY = new Itinerary();
@@ -49,54 +50,30 @@ public List getLegs() {
/** Test if the given handling event is expected when executing this itinerary. */
public boolean isExpected(HandlingEvent event) {
if (legs.isEmpty()) {
- return true;
+ return true; // Handle empty case
}
- switch (event.getType()) {
- case RECEIVE:
- {
- // Check that the first leg's origin is the event's location
- Leg leg = legs.get(0);
- return leg.getLoadLocation().equals(event.getLocation());
- }
-
- case LOAD:
- {
- return legs.stream()
+ Leg firstLeg = legs.get(0);
+ Leg lastLeg = legs.get(legs.size() - 1);
+
+ return switch (event.getType()) {
+ case RECEIVE -> firstLeg.getLoadLocation().equals(event.getLocation());
+ case LOAD ->
+ legs.stream()
.anyMatch(
leg ->
leg.getLoadLocation().equals(event.getLocation())
&& leg.getVoyage().equals(event.getVoyage()));
- }
-
- case UNLOAD:
- {
- // Check that the there is one leg with same unload location and
- // voyage
- return legs.stream()
+ case UNLOAD ->
+ legs.stream()
.anyMatch(
leg ->
leg.getUnloadLocation().equals(event.getLocation())
&& leg.getVoyage().equals(event.getVoyage()));
- }
-
- case CLAIM:
- {
- // Check that the last leg's destination is from the event's
- // location
- Leg leg = getLastLeg();
-
- return leg.getUnloadLocation().equals(event.getLocation());
- }
-
- case CUSTOMS:
- {
- return true;
- }
-
- default:
- throw new RuntimeException("Event case is not handled");
- }
+ case CLAIM -> lastLeg.getUnloadLocation().equals(event.getLocation());
+ case CUSTOMS -> true; // Always allow customs events? (Consider if this is appropriate for
+ // your logic)
+ };
}
Location getInitialDepartureLocation() {
@@ -115,7 +92,9 @@ Location getFinalArrivalLocation() {
}
}
- /** @return Date when cargo arrives at final destination. */
+ /**
+ * @return Date when cargo arrives at final destination.
+ */
LocalDateTime getFinalArrivalDate() {
Leg lastLeg = getLastLeg();
@@ -126,7 +105,9 @@ LocalDateTime getFinalArrivalDate() {
}
}
- /** @return The last leg on the itinerary. */
+ /**
+ * @return The last leg on the itinerary.
+ */
Leg getLastLeg() {
if (legs.isEmpty()) {
return null;
@@ -135,28 +116,16 @@ Leg getLastLeg() {
}
}
- private boolean sameValueAs(Itinerary other) {
- return other != null && legs.equals(other.legs);
- }
-
@Override
public boolean equals(Object o) {
- if (this == o) {
- return true;
- }
-
- if (o == null || !(o instanceof Itinerary)) {
- return false;
- }
-
- Itinerary itinerary = (Itinerary) o;
-
- return sameValueAs(itinerary);
+ if (this == o) return true;
+ if (!(o instanceof Itinerary itinerary)) return false;
+ return Objects.equals(legs, itinerary.legs);
}
@Override
public int hashCode() {
- return legs.hashCode();
+ return Objects.hashCode(legs);
}
@Override
diff --git a/src/main/java/org/eclipse/cargotracker/domain/model/cargo/Leg.java b/src/main/java/org/eclipse/cargotracker/domain/model/cargo/Leg.java
index 8283e402b..c0b593b82 100644
--- a/src/main/java/org/eclipse/cargotracker/domain/model/cargo/Leg.java
+++ b/src/main/java/org/eclipse/cargotracker/domain/model/cargo/Leg.java
@@ -1,8 +1,5 @@
package org.eclipse.cargotracker.domain.model.cargo;
-import java.io.Serializable;
-import java.time.LocalDateTime;
-import java.time.temporal.ChronoUnit;
import jakarta.persistence.Column;
import jakarta.persistence.Entity;
import jakarta.persistence.GeneratedValue;
@@ -10,16 +7,19 @@
import jakarta.persistence.JoinColumn;
import jakarta.persistence.ManyToOne;
import jakarta.validation.constraints.NotNull;
+import java.io.Serial;
+import java.io.Serializable;
+import java.time.LocalDateTime;
+import java.time.temporal.ChronoUnit;
+import java.util.Objects;
+import java.util.StringJoiner;
import org.apache.commons.lang3.Validate;
-import org.apache.commons.lang3.builder.EqualsBuilder;
-import org.apache.commons.lang3.builder.HashCodeBuilder;
import org.eclipse.cargotracker.domain.model.location.Location;
import org.eclipse.cargotracker.domain.model.voyage.Voyage;
@Entity
public class Leg implements Serializable {
-
- private static final long serialVersionUID = 1L;
+ @Serial private static final long serialVersionUID = 1L;
@Id @GeneratedValue private Long id;
@@ -89,58 +89,31 @@ public LocalDateTime getUnloadTime() {
return this.unloadTime;
}
- private boolean sameValueAs(Leg other) {
- return other != null
- && new EqualsBuilder()
- .append(this.voyage, other.voyage)
- .append(this.loadLocation, other.loadLocation)
- .append(this.unloadLocation, other.unloadLocation)
- .append(this.loadTime, other.loadTime)
- .append(this.unloadTime, other.unloadTime)
- .isEquals();
- }
-
@Override
public boolean equals(Object o) {
- if (this == o) {
- return true;
- }
-
- if (o == null || !(o instanceof Leg)) {
- return false;
- }
-
- Leg leg = (Leg) o;
-
- return sameValueAs(leg);
+ if (this == o) return true;
+ if (!(o instanceof Leg leg)) return false;
+ return Objects.equals(voyage, leg.voyage)
+ && Objects.equals(loadLocation, leg.loadLocation)
+ && Objects.equals(unloadLocation, leg.unloadLocation)
+ && Objects.equals(loadTime, leg.loadTime)
+ && Objects.equals(unloadTime, leg.unloadTime);
}
@Override
public int hashCode() {
- return new HashCodeBuilder()
- .append(voyage)
- .append(loadLocation)
- .append(unloadLocation)
- .append(loadTime)
- .append(unloadTime)
- .toHashCode();
+ return Objects.hash(voyage, loadLocation, unloadLocation, loadTime, unloadTime);
}
@Override
public String toString() {
- return "Leg{"
- + "id="
- + id
- + ", voyage="
- + voyage
- + ", loadLocation="
- + loadLocation
- + ", unloadLocation="
- + unloadLocation
- + ", loadTime="
- + loadTime
- + ", unloadTime="
- + unloadTime
- + '}';
+ return new StringJoiner(", ", Leg.class.getSimpleName() + "[", "]")
+ .add("id=" + id)
+ .add("voyage=" + voyage)
+ .add("loadLocation=" + loadLocation)
+ .add("unloadLocation=" + unloadLocation)
+ .add("loadTime=" + loadTime)
+ .add("unloadTime=" + unloadTime)
+ .toString();
}
}
diff --git a/src/main/java/org/eclipse/cargotracker/domain/model/cargo/RouteSpecification.java b/src/main/java/org/eclipse/cargotracker/domain/model/cargo/RouteSpecification.java
index 87e998105..bfb7b3b8b 100644
--- a/src/main/java/org/eclipse/cargotracker/domain/model/cargo/RouteSpecification.java
+++ b/src/main/java/org/eclipse/cargotracker/domain/model/cargo/RouteSpecification.java
@@ -1,15 +1,15 @@
package org.eclipse.cargotracker.domain.model.cargo;
-import java.io.Serializable;
-import java.time.LocalDate;
import jakarta.persistence.Column;
import jakarta.persistence.Embeddable;
import jakarta.persistence.JoinColumn;
import jakarta.persistence.ManyToOne;
import jakarta.validation.constraints.NotNull;
+import java.io.Serial;
+import java.io.Serializable;
+import java.time.LocalDate;
+import java.util.Objects;
import org.apache.commons.lang3.Validate;
-import org.apache.commons.lang3.builder.EqualsBuilder;
-import org.apache.commons.lang3.builder.HashCodeBuilder;
import org.eclipse.cargotracker.domain.model.location.Location;
import org.eclipse.cargotracker.domain.shared.AbstractSpecification;
@@ -19,7 +19,7 @@
@Embeddable
public class RouteSpecification extends AbstractSpecification implements Serializable {
- private static final long serialVersionUID = 1L;
+ @Serial private static final long serialVersionUID = 1L;
@ManyToOne
@JoinColumn(name = "spec_origin_id", updatable = false)
@@ -72,36 +72,18 @@ && getDestination().sameIdentityAs(itinerary.getFinalArrivalLocation())
&& getArrivalDeadline().isAfter(itinerary.getFinalArrivalDate().toLocalDate());
}
- private boolean sameValueAs(RouteSpecification other) {
- return other != null
- && new EqualsBuilder()
- .append(this.origin, other.origin)
- .append(this.destination, other.destination)
- .append(this.arrivalDeadline, other.arrivalDeadline)
- .isEquals();
- }
-
@Override
public boolean equals(Object o) {
- if (this == o) {
- return true;
- }
-
- if (o == null || !(o instanceof RouteSpecification)) {
- return false;
- }
-
- RouteSpecification that = (RouteSpecification) o;
+ if (this == o) return true;
+ if (!(o instanceof RouteSpecification that)) return false;
- return sameValueAs(that);
+ return Objects.equals(origin, that.origin)
+ && Objects.equals(destination, that.destination)
+ && Objects.equals(arrivalDeadline, that.arrivalDeadline);
}
@Override
public int hashCode() {
- return new HashCodeBuilder()
- .append(this.origin)
- .append(this.destination)
- .append(this.arrivalDeadline)
- .toHashCode();
+ return Objects.hash(origin, destination, arrivalDeadline);
}
}
diff --git a/src/main/java/org/eclipse/cargotracker/domain/model/cargo/TrackingId.java b/src/main/java/org/eclipse/cargotracker/domain/model/cargo/TrackingId.java
index 63c3aee25..84d912b3c 100644
--- a/src/main/java/org/eclipse/cargotracker/domain/model/cargo/TrackingId.java
+++ b/src/main/java/org/eclipse/cargotracker/domain/model/cargo/TrackingId.java
@@ -1,16 +1,17 @@
package org.eclipse.cargotracker.domain.model.cargo;
-import java.io.Serializable;
import jakarta.persistence.Column;
import jakarta.persistence.Embeddable;
import jakarta.validation.constraints.NotEmpty;
+import java.io.Serial;
+import java.io.Serializable;
+import java.util.Objects;
import org.apache.commons.lang3.Validate;
/** Uniquely identifies a particular cargo. Automatically generated by the application. */
@Embeddable
public class TrackingId implements Serializable {
-
- private static final long serialVersionUID = 1L;
+ @Serial private static final long serialVersionUID = 1L;
@Column(name = "tracking_id", unique = true, updatable = false)
@NotEmpty(message = "Tracking ID cannot be empty.")
@@ -29,26 +30,14 @@ public String getIdString() {
@Override
public boolean equals(Object o) {
- if (this == o) {
- return true;
- }
-
- if (o == null || !(o instanceof TrackingId)) {
- return false;
- }
-
- TrackingId other = (TrackingId) o;
-
- return sameValueAs(other);
+ if (this == o) return true;
+ if (!(o instanceof TrackingId that)) return false;
+ return Objects.equals(id, that.id);
}
@Override
public int hashCode() {
- return id.hashCode();
- }
-
- boolean sameValueAs(TrackingId other) {
- return other != null && this.id.equals(other.id);
+ return Objects.hashCode(id);
}
@Override
diff --git a/src/main/java/org/eclipse/cargotracker/domain/model/handling/CannotCreateHandlingEventException.java b/src/main/java/org/eclipse/cargotracker/domain/model/handling/CannotCreateHandlingEventException.java
index 103b7be0d..457032988 100644
--- a/src/main/java/org/eclipse/cargotracker/domain/model/handling/CannotCreateHandlingEventException.java
+++ b/src/main/java/org/eclipse/cargotracker/domain/model/handling/CannotCreateHandlingEventException.java
@@ -1,6 +1,7 @@
package org.eclipse.cargotracker.domain.model.handling;
import jakarta.ejb.ApplicationException;
+import java.io.Serial;
/**
* If a {@link HandlingEvent} can't be created from a given set of parameters.
@@ -11,7 +12,7 @@
@ApplicationException(rollback = true)
public class CannotCreateHandlingEventException extends Exception {
- private static final long serialVersionUID = 1L;
+ @Serial private static final long serialVersionUID = 1L;
public CannotCreateHandlingEventException(Exception e) {
super(e);
diff --git a/src/main/java/org/eclipse/cargotracker/domain/model/handling/HandlingEvent.java b/src/main/java/org/eclipse/cargotracker/domain/model/handling/HandlingEvent.java
index 393ed0d1e..70c11706b 100644
--- a/src/main/java/org/eclipse/cargotracker/domain/model/handling/HandlingEvent.java
+++ b/src/main/java/org/eclipse/cargotracker/domain/model/handling/HandlingEvent.java
@@ -1,8 +1,5 @@
package org.eclipse.cargotracker.domain.model.handling;
-import java.io.Serializable;
-import java.time.LocalDateTime;
-import java.time.temporal.ChronoUnit;
import jakarta.persistence.Column;
import jakarta.persistence.Entity;
import jakarta.persistence.EnumType;
@@ -14,9 +11,13 @@
import jakarta.persistence.NamedQuery;
import jakarta.persistence.Transient;
import jakarta.validation.constraints.NotNull;
+import java.io.Serial;
+import java.io.Serializable;
+import java.time.LocalDateTime;
+import java.time.temporal.ChronoUnit;
+import java.util.Objects;
+import java.util.StringJoiner;
import org.apache.commons.lang3.Validate;
-import org.apache.commons.lang3.builder.EqualsBuilder;
-import org.apache.commons.lang3.builder.HashCodeBuilder;
import org.eclipse.cargotracker.domain.model.cargo.Cargo;
import org.eclipse.cargotracker.domain.model.cargo.TrackingId;
import org.eclipse.cargotracker.domain.model.location.Location;
@@ -44,7 +45,7 @@
query = "Select e from HandlingEvent e where e.cargo.trackingId = :trackingId")
public class HandlingEvent implements Serializable {
- private static final long serialVersionUID = 1L;
+ @Serial private static final long serialVersionUID = 1L;
@Id @GeneratedValue private Long id;
@@ -198,66 +199,33 @@ public String getSummary() {
@Override
public boolean equals(Object o) {
- if (this == o) {
- return true;
- }
-
- if (o == null || !(o instanceof HandlingEvent)) {
- return false;
- }
-
- HandlingEvent event = (HandlingEvent) o;
-
- return sameEventAs(event);
- }
-
- private boolean sameEventAs(HandlingEvent other) {
- return other != null
- && new EqualsBuilder()
- .append(this.cargo, other.cargo)
- .append(this.voyage, other.voyage)
- .append(this.completionTime, other.completionTime)
- .append(this.location, other.location)
- .append(this.type, other.type)
- .isEquals();
+ if (this == o) return true;
+ if (!(o instanceof HandlingEvent that)) return false;
+ return type == that.type
+ && Objects.equals(voyage, that.voyage)
+ && Objects.equals(location, that.location)
+ && Objects.equals(completionTime, that.completionTime)
+ && Objects.equals(cargo, that.cargo);
}
@Override
public int hashCode() {
- return new HashCodeBuilder()
- .append(cargo)
- .append(voyage)
- .append(completionTime)
- .append(location)
- .append(type)
- .toHashCode();
+ return Objects.hash(type, voyage, location, completionTime, cargo);
}
@Override
public String toString() {
- StringBuilder builder =
- new StringBuilder("\n--- Handling event ---\n")
- .append("Cargo: ")
- .append(cargo.getTrackingId())
- .append("\n")
- .append("Type: ")
- .append(type)
- .append("\n")
- .append("Location: ")
- .append(location.getName())
- .append("\n")
- .append("Completed on: ")
- .append(completionTime)
- .append("\n")
- .append("Registered on: ")
- .append(registrationTime)
- .append("\n");
-
+ StringJoiner joiner = new StringJoiner("\n", "\n--- Handling event ---\n", "\n");
+ joiner
+ .add("Cargo: " + cargo.getTrackingId())
+ .add("Type: " + type)
+ .add("Location: " + location.getName())
+ .add("Completed on: " + completionTime)
+ .add("Registered on: " + registrationTime);
if (voyage != null) {
- builder.append("Voyage: ").append(voyage.getVoyageNumber()).append("\n");
+ joiner.add("Voyage: " + voyage.getVoyageNumber());
}
-
- return builder.toString();
+ return joiner.toString();
}
/**
@@ -288,12 +256,16 @@ private Type(boolean voyageRequired) {
this.voyageRequired = voyageRequired;
}
- /** @return True if a voyage association is required for this event type. */
+ /**
+ * @return True if a voyage association is required for this event type.
+ */
public boolean requiresVoyage() {
return voyageRequired;
}
- /** @return True if a voyage association is prohibited for this event type. */
+ /**
+ * @return True if a voyage association is prohibited for this event type.
+ */
public boolean prohibitsVoyage() {
return !requiresVoyage();
}
diff --git a/src/main/java/org/eclipse/cargotracker/domain/model/handling/HandlingEventFactory.java b/src/main/java/org/eclipse/cargotracker/domain/model/handling/HandlingEventFactory.java
index 70b23b924..e45297166 100644
--- a/src/main/java/org/eclipse/cargotracker/domain/model/handling/HandlingEventFactory.java
+++ b/src/main/java/org/eclipse/cargotracker/domain/model/handling/HandlingEventFactory.java
@@ -1,9 +1,11 @@
package org.eclipse.cargotracker.domain.model.handling;
-import java.io.Serializable;
-import java.time.LocalDateTime;
import jakarta.enterprise.context.ApplicationScoped;
import jakarta.inject.Inject;
+import java.io.Serial;
+import java.io.Serializable;
+import java.time.LocalDateTime;
+import java.util.Optional;
import org.eclipse.cargotracker.domain.model.cargo.Cargo;
import org.eclipse.cargotracker.domain.model.cargo.CargoRepository;
import org.eclipse.cargotracker.domain.model.cargo.TrackingId;
@@ -17,7 +19,7 @@
@ApplicationScoped
public class HandlingEventFactory implements Serializable {
- private static final long serialVersionUID = 1L;
+ @Serial private static final long serialVersionUID = 1L;
@Inject private CargoRepository cargoRepository;
@Inject private VoyageRepository voyageRepository;
@@ -60,13 +62,8 @@ public HandlingEvent createHandlingEvent(
}
private Cargo findCargo(TrackingId trackingId) throws UnknownCargoException {
- Cargo cargo = cargoRepository.find(trackingId);
-
- if (cargo == null) {
- throw new UnknownCargoException(trackingId);
- }
-
- return cargo;
+ return Optional.ofNullable(cargoRepository.find(trackingId))
+ .orElseThrow(() -> new UnknownCargoException(trackingId));
}
private Voyage findVoyage(VoyageNumber voyageNumber) throws UnknownVoyageException {
@@ -74,22 +71,12 @@ private Voyage findVoyage(VoyageNumber voyageNumber) throws UnknownVoyageExcepti
return null;
}
- Voyage voyage = voyageRepository.find(voyageNumber);
-
- if (voyage == null) {
- throw new UnknownVoyageException(voyageNumber);
- }
-
- return voyage;
+ return Optional.ofNullable(voyageRepository.find(voyageNumber))
+ .orElseThrow(() -> new UnknownVoyageException(voyageNumber));
}
private Location findLocation(UnLocode unlocode) throws UnknownLocationException {
- Location location = locationRepository.find(unlocode);
-
- if (location == null) {
- throw new UnknownLocationException(unlocode);
- }
-
- return location;
+ return Optional.ofNullable(locationRepository.find(unlocode))
+ .orElseThrow(() -> new UnknownLocationException(unlocode));
}
}
diff --git a/src/main/java/org/eclipse/cargotracker/domain/model/handling/HandlingHistory.java b/src/main/java/org/eclipse/cargotracker/domain/model/handling/HandlingHistory.java
index 8c4d22e0b..00819513a 100644
--- a/src/main/java/org/eclipse/cargotracker/domain/model/handling/HandlingHistory.java
+++ b/src/main/java/org/eclipse/cargotracker/domain/model/handling/HandlingHistory.java
@@ -39,7 +39,9 @@ public List getDistinctEventsByCompletionTime() {
return Collections.unmodifiableList(ordered);
}
- /** @return Most recently completed event, or null if the delivery history is empty. */
+ /**
+ * @return Most recently completed event, or null if the delivery history is empty.
+ */
public HandlingEvent getMostRecentlyCompletedEvent() {
List distinctEvents = getDistinctEventsByCompletionTime();
diff --git a/src/main/java/org/eclipse/cargotracker/domain/model/handling/UnknownCargoException.java b/src/main/java/org/eclipse/cargotracker/domain/model/handling/UnknownCargoException.java
index d51e87457..cf4e2551c 100644
--- a/src/main/java/org/eclipse/cargotracker/domain/model/handling/UnknownCargoException.java
+++ b/src/main/java/org/eclipse/cargotracker/domain/model/handling/UnknownCargoException.java
@@ -1,15 +1,18 @@
package org.eclipse.cargotracker.domain.model.handling;
+import java.io.Serial;
import org.eclipse.cargotracker.domain.model.cargo.TrackingId;
/** Thrown when trying to register an event with an unknown tracking id. */
public class UnknownCargoException extends CannotCreateHandlingEventException {
- private static final long serialVersionUID = 1L;
+ @Serial private static final long serialVersionUID = 1L;
private final TrackingId trackingId;
- /** @param trackingId cargo tracking id */
+ /**
+ * @param trackingId cargo tracking id
+ */
public UnknownCargoException(TrackingId trackingId) {
this.trackingId = trackingId;
}
diff --git a/src/main/java/org/eclipse/cargotracker/domain/model/handling/UnknownLocationException.java b/src/main/java/org/eclipse/cargotracker/domain/model/handling/UnknownLocationException.java
index 90537b304..afad05b0b 100644
--- a/src/main/java/org/eclipse/cargotracker/domain/model/handling/UnknownLocationException.java
+++ b/src/main/java/org/eclipse/cargotracker/domain/model/handling/UnknownLocationException.java
@@ -1,10 +1,11 @@
package org.eclipse.cargotracker.domain.model.handling;
+import java.io.Serial;
import org.eclipse.cargotracker.domain.model.location.UnLocode;
public class UnknownLocationException extends CannotCreateHandlingEventException {
- private static final long serialVersionUID = 1L;
+ @Serial private static final long serialVersionUID = 1L;
private final UnLocode unlocode;
diff --git a/src/main/java/org/eclipse/cargotracker/domain/model/handling/UnknownVoyageException.java b/src/main/java/org/eclipse/cargotracker/domain/model/handling/UnknownVoyageException.java
index 46cb00e03..46aaaedc5 100644
--- a/src/main/java/org/eclipse/cargotracker/domain/model/handling/UnknownVoyageException.java
+++ b/src/main/java/org/eclipse/cargotracker/domain/model/handling/UnknownVoyageException.java
@@ -1,11 +1,12 @@
package org.eclipse.cargotracker.domain.model.handling;
+import java.io.Serial;
import org.eclipse.cargotracker.domain.model.voyage.VoyageNumber;
/** Thrown when trying to register an event with an unknown carrier movement id. */
public class UnknownVoyageException extends CannotCreateHandlingEventException {
- private static final long serialVersionUID = 1L;
+ @Serial private static final long serialVersionUID = 1L;
private final VoyageNumber voyageNumber;
diff --git a/src/main/java/org/eclipse/cargotracker/domain/model/location/Location.java b/src/main/java/org/eclipse/cargotracker/domain/model/location/Location.java
index 782559426..aa365ddb9 100644
--- a/src/main/java/org/eclipse/cargotracker/domain/model/location/Location.java
+++ b/src/main/java/org/eclipse/cargotracker/domain/model/location/Location.java
@@ -1,6 +1,5 @@
package org.eclipse.cargotracker.domain.model.location;
-import java.io.Serializable;
import jakarta.persistence.Embedded;
import jakarta.persistence.Entity;
import jakarta.persistence.GeneratedValue;
@@ -8,6 +7,9 @@
import jakarta.persistence.NamedQuery;
import jakarta.validation.constraints.NotEmpty;
import jakarta.validation.constraints.NotNull;
+import java.io.Serial;
+import java.io.Serializable;
+import java.util.Objects;
import org.apache.commons.lang3.Validate;
/**
@@ -23,7 +25,7 @@
query = "Select l from Location l where l.unLocode = :unLocode")
public class Location implements Serializable {
- private static final long serialVersionUID = 1L;
+ @Serial private static final long serialVersionUID = 1L;
// Special Location object that marks an unknown location.
public static final Location UNKNOWN = new Location(new UnLocode("XXXXX"), "Unknown location");
@@ -49,47 +51,37 @@ public Location(UnLocode unLocode, String name) {
this.name = name;
}
- /** @return UN location code for this location. */
+ /**
+ * @return UN location code for this location.
+ */
public UnLocode getUnLocode() {
return unLocode;
}
- /** @return Actual name of this location, e.g. "Stockholm". */
+ /**
+ * @return Actual name of this location, e.g. "Stockholm".
+ */
public String getName() {
return name;
}
- /**
- * @param object to compare
- * @return Since this is an entiy this will be true iff UN locodes are equal.
- */
@Override
- public boolean equals(Object object) {
- if (object == null) {
- return false;
- }
-
- if (this == object) {
- return true;
- }
-
- if (!(object instanceof Location)) {
- return false;
- }
-
- Location other = (Location) object;
-
- return sameIdentityAs(other);
+ public boolean equals(Object o) {
+ if (this == o) return true;
+ if (!(o instanceof Location location)) return false;
+ return Objects.equals(unLocode, location.unLocode);
}
public boolean sameIdentityAs(Location other) {
- return this.unLocode.sameValueAs(other.unLocode);
+ return Objects.equals(this.unLocode, other.unLocode);
}
- /** @return Hash code of UN locode. */
+ /**
+ * @return Hash code of UN locode.
+ */
@Override
public int hashCode() {
- return unLocode.hashCode();
+ return Objects.hash(unLocode);
}
@Override
diff --git a/src/main/java/org/eclipse/cargotracker/domain/model/location/UnLocode.java b/src/main/java/org/eclipse/cargotracker/domain/model/location/UnLocode.java
index ab0b84a70..ba8865da6 100644
--- a/src/main/java/org/eclipse/cargotracker/domain/model/location/UnLocode.java
+++ b/src/main/java/org/eclipse/cargotracker/domain/model/location/UnLocode.java
@@ -1,9 +1,11 @@
package org.eclipse.cargotracker.domain.model.location;
-import java.io.Serializable;
import jakarta.persistence.Embeddable;
import jakarta.validation.constraints.NotEmpty;
import jakarta.validation.constraints.Pattern;
+import java.io.Serial;
+import java.io.Serializable;
+import java.util.Objects;
import org.apache.commons.lang3.Validate;
/**
@@ -15,7 +17,7 @@
@Embeddable
public class UnLocode implements Serializable {
- private static final long serialVersionUID = 1L;
+ @Serial private static final long serialVersionUID = 1L;
private static final java.util.regex.Pattern VALID_PATTERN =
java.util.regex.Pattern.compile("[a-zA-Z]{2}[a-zA-Z2-9]{3}");
@@ -31,7 +33,9 @@ public UnLocode() {
// Nothing to initialize.
}
- /** @param countryAndLocation Location string. */
+ /**
+ * @param countryAndLocation Location string.
+ */
public UnLocode(String countryAndLocation) {
Validate.notNull(countryAndLocation, "Country and location may not be null.");
Validate.isTrue(
@@ -41,33 +45,23 @@ public UnLocode(String countryAndLocation) {
this.unlocode = countryAndLocation.toUpperCase();
}
- /** @return country code and location code concatenated, always upper case. */
+ /**
+ * @return country code and location code concatenated, always upper case.
+ */
public String getIdString() {
return unlocode;
}
@Override
public boolean equals(Object o) {
- if (this == o) {
- return true;
- }
-
- if (o == null || !(o instanceof UnLocode)) {
- return false;
- }
-
- UnLocode other = (UnLocode) o;
-
- return sameValueAs(other);
+ if (this == o) return true;
+ if (!(o instanceof UnLocode unLocode)) return false;
+ return Objects.equals(unlocode, unLocode.unlocode);
}
@Override
public int hashCode() {
- return unlocode.hashCode();
- }
-
- boolean sameValueAs(UnLocode other) {
- return other != null && this.unlocode.equals(other.unlocode);
+ return Objects.hashCode(unlocode);
}
@Override
diff --git a/src/main/java/org/eclipse/cargotracker/domain/model/voyage/CarrierMovement.java b/src/main/java/org/eclipse/cargotracker/domain/model/voyage/CarrierMovement.java
index 77f46fc93..85eec9731 100644
--- a/src/main/java/org/eclipse/cargotracker/domain/model/voyage/CarrierMovement.java
+++ b/src/main/java/org/eclipse/cargotracker/domain/model/voyage/CarrierMovement.java
@@ -1,8 +1,5 @@
package org.eclipse.cargotracker.domain.model.voyage;
-import java.io.Serializable;
-import java.time.LocalDateTime;
-import java.time.temporal.ChronoUnit;
import jakarta.persistence.Column;
import jakarta.persistence.Entity;
import jakarta.persistence.GeneratedValue;
@@ -11,9 +8,12 @@
import jakarta.persistence.ManyToOne;
import jakarta.persistence.Table;
import jakarta.validation.constraints.NotNull;
+import java.io.Serial;
+import java.io.Serializable;
+import java.time.LocalDateTime;
+import java.time.temporal.ChronoUnit;
+import java.util.Objects;
import org.apache.commons.lang3.Validate;
-import org.apache.commons.lang3.builder.EqualsBuilder;
-import org.apache.commons.lang3.builder.HashCodeBuilder;
import org.eclipse.cargotracker.domain.model.location.Location;
/** A carrier movement is a vessel voyage from one location to another. */
@@ -21,7 +21,7 @@
@Table(name = "carrier_movement")
public class CarrierMovement implements Serializable {
- private static final long serialVersionUID = 1L;
+ @Serial private static final long serialVersionUID = 1L;
// Null object pattern
public static final CarrierMovement NONE =
@@ -85,36 +85,16 @@ public LocalDateTime getArrivalTime() {
@Override
public boolean equals(Object o) {
- if (this == o) {
- return true;
- }
-
- if (o == null || !(o instanceof CarrierMovement)) {
- return false;
- }
-
- CarrierMovement that = (CarrierMovement) o;
-
- return sameValueAs(that);
+ if (this == o) return true;
+ if (!(o instanceof CarrierMovement that)) return false;
+ return Objects.equals(departureLocation, that.departureLocation)
+ && Objects.equals(arrivalLocation, that.arrivalLocation)
+ && Objects.equals(departureTime, that.departureTime)
+ && Objects.equals(arrivalTime, that.arrivalTime);
}
@Override
public int hashCode() {
- return new HashCodeBuilder()
- .append(this.departureLocation)
- .append(this.departureTime)
- .append(this.arrivalLocation)
- .append(this.arrivalTime)
- .toHashCode();
- }
-
- private boolean sameValueAs(CarrierMovement other) {
- return other != null
- && new EqualsBuilder()
- .append(this.departureLocation, other.departureLocation)
- .append(this.departureTime, other.departureTime)
- .append(this.arrivalLocation, other.arrivalLocation)
- .append(this.arrivalTime, other.arrivalTime)
- .isEquals();
+ return Objects.hash(departureLocation, arrivalLocation, departureTime, arrivalTime);
}
}
diff --git a/src/main/java/org/eclipse/cargotracker/domain/model/voyage/SampleVoyages.java b/src/main/java/org/eclipse/cargotracker/domain/model/voyage/SampleVoyages.java
index fbe13640c..4dae4ebcb 100644
--- a/src/main/java/org/eclipse/cargotracker/domain/model/voyage/SampleVoyages.java
+++ b/src/main/java/org/eclipse/cargotracker/domain/model/voyage/SampleVoyages.java
@@ -85,6 +85,7 @@ public class SampleVoyages {
LocalDateTime.now().minusYears(1).plusMonths(3).plusDays(20).plusHours(18),
LocalDateTime.now().minusYears(1).plusMonths(3).plusDays(22).plusHours(9))
.build();
+
/**
* Voyage number 0100S (by ship)
*
@@ -129,6 +130,7 @@ public class SampleVoyages {
.plusHours(23)
.plusMinutes(10))
.build();
+
/**
* Voyage number 0200T (by train)
*
@@ -160,6 +162,7 @@ public class SampleVoyages {
.plusHours(19)
.plusMinutes(30))
.build();
+
/**
* Voyage number 0300A (by airplane)
*
@@ -200,6 +203,7 @@ public class SampleVoyages {
.plusHours(11)
.plusMinutes(15))
.build();
+
/**
* Voyage number 0301S (by ship)
*
@@ -222,6 +226,7 @@ public class SampleVoyages {
.plusHours(15)
.plusMinutes(45))
.build();
+
/**
* Voyage number 0400S (by ship)
*
diff --git a/src/main/java/org/eclipse/cargotracker/domain/model/voyage/Schedule.java b/src/main/java/org/eclipse/cargotracker/domain/model/voyage/Schedule.java
index 3509f0f2c..3504731fe 100644
--- a/src/main/java/org/eclipse/cargotracker/domain/model/voyage/Schedule.java
+++ b/src/main/java/org/eclipse/cargotracker/domain/model/voyage/Schedule.java
@@ -1,8 +1,5 @@
package org.eclipse.cargotracker.domain.model.voyage;
-import java.io.Serializable;
-import java.util.Collections;
-import java.util.List;
import jakarta.persistence.CascadeType;
import jakarta.persistence.Embeddable;
import jakarta.persistence.JoinColumn;
@@ -10,14 +7,18 @@
import jakarta.persistence.OrderColumn;
import jakarta.validation.constraints.NotNull;
import jakarta.validation.constraints.Size;
+import java.io.Serial;
+import java.io.Serializable;
+import java.util.Collections;
+import java.util.List;
+import java.util.Objects;
import org.apache.commons.lang3.Validate;
-import org.apache.commons.lang3.builder.HashCodeBuilder;
/** A voyage schedule. */
@Embeddable
public class Schedule implements Serializable {
- private static final long serialVersionUID = 1L;
+ @Serial private static final long serialVersionUID = 1L;
// Null object pattern.
public static final Schedule EMPTY = new Schedule();
@@ -46,27 +47,15 @@ public List getCarrierMovements() {
return Collections.unmodifiableList(carrierMovements);
}
- private boolean sameValueAs(Schedule other) {
- return other != null && this.carrierMovements.equals(other.carrierMovements);
- }
-
@Override
public boolean equals(Object o) {
- if (this == o) {
- return true;
- }
-
- if (o == null || !(o instanceof Schedule)) {
- return false;
- }
-
- Schedule that = (Schedule) o;
-
- return sameValueAs(that);
+ if (this == o) return true;
+ if (!(o instanceof Schedule schedule)) return false;
+ return Objects.equals(carrierMovements, schedule.carrierMovements);
}
@Override
public int hashCode() {
- return new HashCodeBuilder().append(this.carrierMovements).toHashCode();
+ return Objects.hashCode(carrierMovements);
}
}
diff --git a/src/main/java/org/eclipse/cargotracker/domain/model/voyage/Voyage.java b/src/main/java/org/eclipse/cargotracker/domain/model/voyage/Voyage.java
index a09a841c5..97a466f86 100644
--- a/src/main/java/org/eclipse/cargotracker/domain/model/voyage/Voyage.java
+++ b/src/main/java/org/eclipse/cargotracker/domain/model/voyage/Voyage.java
@@ -1,15 +1,16 @@
package org.eclipse.cargotracker.domain.model.voyage;
-import java.io.Serializable;
-import java.time.LocalDateTime;
-import java.util.ArrayList;
-import java.util.List;
import jakarta.persistence.Embedded;
import jakarta.persistence.Entity;
import jakarta.persistence.GeneratedValue;
import jakarta.persistence.Id;
import jakarta.persistence.NamedQuery;
import jakarta.validation.constraints.NotNull;
+import java.io.Serial;
+import java.io.Serializable;
+import java.time.LocalDateTime;
+import java.util.ArrayList;
+import java.util.List;
import org.apache.commons.lang3.Validate;
import org.eclipse.cargotracker.domain.model.location.Location;
@@ -19,7 +20,7 @@
query = "Select v from Voyage v where v.voyageNumber = :voyageNumber")
@NamedQuery(name = "Voyage.findAll", query = "Select v from Voyage v order by v.voyageNumber")
public class Voyage implements Serializable {
- private static final long serialVersionUID = 1L;
+ @Serial private static final long serialVersionUID = 1L;
// Null object pattern
public static final Voyage NONE = new Voyage(new VoyageNumber(""), Schedule.EMPTY);
@@ -93,8 +94,8 @@ public String toString() {
*/
public static class Builder {
- private List carrierMovements = new ArrayList<>();
- private VoyageNumber voyageNumber;
+ private final List carrierMovements = new ArrayList<>();
+ private final VoyageNumber voyageNumber;
private Location departureLocation;
public Builder(VoyageNumber voyageNumber, Location departureLocation) {
diff --git a/src/main/java/org/eclipse/cargotracker/domain/model/voyage/VoyageNumber.java b/src/main/java/org/eclipse/cargotracker/domain/model/voyage/VoyageNumber.java
index 9cea76e12..f96bf4bec 100644
--- a/src/main/java/org/eclipse/cargotracker/domain/model/voyage/VoyageNumber.java
+++ b/src/main/java/org/eclipse/cargotracker/domain/model/voyage/VoyageNumber.java
@@ -1,15 +1,17 @@
package org.eclipse.cargotracker.domain.model.voyage;
-import java.io.Serializable;
import jakarta.persistence.Column;
import jakarta.persistence.Embeddable;
import jakarta.validation.constraints.NotEmpty;
+import java.io.Serial;
+import java.io.Serializable;
+import java.util.Objects;
import org.apache.commons.lang3.Validate;
@Embeddable
public class VoyageNumber implements Serializable {
- private static final long serialVersionUID = 1L;
+ @Serial private static final long serialVersionUID = 1L;
@Column(name = "voyage_number")
@NotEmpty(message = "Voyage number cannot be empty.")
@@ -27,26 +29,14 @@ public VoyageNumber(String number) {
@Override
public boolean equals(Object o) {
- if (this == o) {
- return true;
- }
-
- if (o == null) {
- return false;
- }
-
- if (!(o instanceof VoyageNumber)) {
- return false;
- }
-
- VoyageNumber other = (VoyageNumber) o;
-
- return sameValueAs(other);
+ if (this == o) return true;
+ if (!(o instanceof VoyageNumber that)) return false;
+ return Objects.equals(number, that.number);
}
@Override
public int hashCode() {
- return number.hashCode();
+ return Objects.hashCode(number);
}
boolean sameValueAs(VoyageNumber other) {
diff --git a/src/main/java/org/eclipse/cargotracker/domain/shared/AbstractSpecification.java b/src/main/java/org/eclipse/cargotracker/domain/shared/AbstractSpecification.java
index 34889108c..37418a4a2 100644
--- a/src/main/java/org/eclipse/cargotracker/domain/shared/AbstractSpecification.java
+++ b/src/main/java/org/eclipse/cargotracker/domain/shared/AbstractSpecification.java
@@ -6,10 +6,6 @@
*/
public abstract class AbstractSpecification implements Specification {
- /** {@inheritDoc} */
- @Override
- public abstract boolean isSatisfiedBy(T t);
-
/** {@inheritDoc} */
@Override
public Specification and(Specification specification) {
diff --git a/src/main/java/org/eclipse/cargotracker/infrastructure/events/cdi/CargoUpdated.java b/src/main/java/org/eclipse/cargotracker/infrastructure/events/cdi/CargoUpdated.java
index 818b21829..48b442f3c 100644
--- a/src/main/java/org/eclipse/cargotracker/infrastructure/events/cdi/CargoUpdated.java
+++ b/src/main/java/org/eclipse/cargotracker/infrastructure/events/cdi/CargoUpdated.java
@@ -4,9 +4,9 @@
import static java.lang.annotation.ElementType.PARAMETER;
import static java.lang.annotation.RetentionPolicy.RUNTIME;
+import jakarta.inject.Qualifier;
import java.lang.annotation.Retention;
import java.lang.annotation.Target;
-import jakarta.inject.Qualifier;
@Qualifier
@Retention(RUNTIME)
diff --git a/src/main/java/org/eclipse/cargotracker/infrastructure/logging/LoggerProducer.java b/src/main/java/org/eclipse/cargotracker/infrastructure/logging/LoggerProducer.java
index 51c9f6360..6580b1bb9 100644
--- a/src/main/java/org/eclipse/cargotracker/infrastructure/logging/LoggerProducer.java
+++ b/src/main/java/org/eclipse/cargotracker/infrastructure/logging/LoggerProducer.java
@@ -1,15 +1,16 @@
package org.eclipse.cargotracker.infrastructure.logging;
-import java.io.Serializable;
-import java.util.logging.Logger;
import jakarta.enterprise.context.ApplicationScoped;
import jakarta.enterprise.inject.Produces;
import jakarta.enterprise.inject.spi.InjectionPoint;
+import java.io.Serial;
+import java.io.Serializable;
+import java.util.logging.Logger;
@ApplicationScoped
public class LoggerProducer implements Serializable {
- private static final long serialVersionUID = 1L;
+ @Serial private static final long serialVersionUID = 1L;
@Produces
public Logger produceLogger(InjectionPoint injectionPoint) {
diff --git a/src/main/java/org/eclipse/cargotracker/infrastructure/messaging/jms/CargoHandledConsumer.java b/src/main/java/org/eclipse/cargotracker/infrastructure/messaging/jms/CargoHandledConsumer.java
index e469a4e58..e779a781b 100644
--- a/src/main/java/org/eclipse/cargotracker/infrastructure/messaging/jms/CargoHandledConsumer.java
+++ b/src/main/java/org/eclipse/cargotracker/infrastructure/messaging/jms/CargoHandledConsumer.java
@@ -1,7 +1,5 @@
package org.eclipse.cargotracker.infrastructure.messaging.jms;
-import java.util.logging.Level;
-import java.util.logging.Logger;
import jakarta.ejb.ActivationConfigProperty;
import jakarta.ejb.MessageDriven;
import jakarta.inject.Inject;
@@ -9,6 +7,8 @@
import jakarta.jms.Message;
import jakarta.jms.MessageListener;
import jakarta.jms.TextMessage;
+import java.util.logging.Level;
+import java.util.logging.Logger;
import org.eclipse.cargotracker.application.CargoInspectionService;
import org.eclipse.cargotracker.domain.model.cargo.TrackingId;
diff --git a/src/main/java/org/eclipse/cargotracker/infrastructure/messaging/jms/DeliveredCargoConsumer.java b/src/main/java/org/eclipse/cargotracker/infrastructure/messaging/jms/DeliveredCargoConsumer.java
index 555c4ae4b..14effbb23 100644
--- a/src/main/java/org/eclipse/cargotracker/infrastructure/messaging/jms/DeliveredCargoConsumer.java
+++ b/src/main/java/org/eclipse/cargotracker/infrastructure/messaging/jms/DeliveredCargoConsumer.java
@@ -1,13 +1,13 @@
package org.eclipse.cargotracker.infrastructure.messaging.jms;
-import java.util.logging.Level;
-import java.util.logging.Logger;
import jakarta.ejb.ActivationConfigProperty;
import jakarta.ejb.MessageDriven;
import jakarta.inject.Inject;
import jakarta.jms.JMSException;
import jakarta.jms.Message;
import jakarta.jms.MessageListener;
+import java.util.logging.Level;
+import java.util.logging.Logger;
@MessageDriven(
activationConfig = {
diff --git a/src/main/java/org/eclipse/cargotracker/infrastructure/messaging/jms/JmsApplicationEvents.java b/src/main/java/org/eclipse/cargotracker/infrastructure/messaging/jms/JmsApplicationEvents.java
index c408b3af9..2230eb395 100644
--- a/src/main/java/org/eclipse/cargotracker/infrastructure/messaging/jms/JmsApplicationEvents.java
+++ b/src/main/java/org/eclipse/cargotracker/infrastructure/messaging/jms/JmsApplicationEvents.java
@@ -1,13 +1,14 @@
package org.eclipse.cargotracker.infrastructure.messaging.jms;
-import java.io.Serializable;
-import java.util.logging.Level;
-import java.util.logging.Logger;
import jakarta.annotation.Resource;
import jakarta.enterprise.context.ApplicationScoped;
import jakarta.inject.Inject;
import jakarta.jms.Destination;
import jakarta.jms.JMSContext;
+import java.io.Serial;
+import java.io.Serializable;
+import java.util.logging.Level;
+import java.util.logging.Logger;
import org.eclipse.cargotracker.application.ApplicationEvents;
import org.eclipse.cargotracker.domain.model.cargo.Cargo;
import org.eclipse.cargotracker.domain.model.handling.HandlingEvent;
@@ -15,8 +16,7 @@
@ApplicationScoped
public class JmsApplicationEvents implements ApplicationEvents, Serializable {
-
- private static final long serialVersionUID = 1L;
+ @Serial private static final long serialVersionUID = 1L;
private static final int LOW_PRIORITY = 0;
@Inject JMSContext jmsContext;
diff --git a/src/main/java/org/eclipse/cargotracker/infrastructure/messaging/jms/MisdirectedCargoConsumer.java b/src/main/java/org/eclipse/cargotracker/infrastructure/messaging/jms/MisdirectedCargoConsumer.java
index 1ef9859e7..13d5f7b02 100644
--- a/src/main/java/org/eclipse/cargotracker/infrastructure/messaging/jms/MisdirectedCargoConsumer.java
+++ b/src/main/java/org/eclipse/cargotracker/infrastructure/messaging/jms/MisdirectedCargoConsumer.java
@@ -1,13 +1,13 @@
package org.eclipse.cargotracker.infrastructure.messaging.jms;
-import java.util.logging.Level;
-import java.util.logging.Logger;
import jakarta.ejb.ActivationConfigProperty;
import jakarta.ejb.MessageDriven;
import jakarta.inject.Inject;
import jakarta.jms.JMSException;
import jakarta.jms.Message;
import jakarta.jms.MessageListener;
+import java.util.logging.Level;
+import java.util.logging.Logger;
@MessageDriven(
activationConfig = {
diff --git a/src/main/java/org/eclipse/cargotracker/infrastructure/messaging/jms/RejectedRegistrationAttemptsConsumer.java b/src/main/java/org/eclipse/cargotracker/infrastructure/messaging/jms/RejectedRegistrationAttemptsConsumer.java
index 940df712a..061e28c64 100644
--- a/src/main/java/org/eclipse/cargotracker/infrastructure/messaging/jms/RejectedRegistrationAttemptsConsumer.java
+++ b/src/main/java/org/eclipse/cargotracker/infrastructure/messaging/jms/RejectedRegistrationAttemptsConsumer.java
@@ -1,13 +1,13 @@
package org.eclipse.cargotracker.infrastructure.messaging.jms;
-import java.util.logging.Level;
-import java.util.logging.Logger;
import jakarta.ejb.ActivationConfigProperty;
import jakarta.ejb.MessageDriven;
import jakarta.inject.Inject;
import jakarta.jms.JMSException;
import jakarta.jms.Message;
import jakarta.jms.MessageListener;
+import java.util.logging.Level;
+import java.util.logging.Logger;
@MessageDriven(
activationConfig = {
diff --git a/src/main/java/org/eclipse/cargotracker/infrastructure/persistence/jpa/JpaCargoRepository.java b/src/main/java/org/eclipse/cargotracker/infrastructure/persistence/jpa/JpaCargoRepository.java
index 19bff18cc..00c9ff1c9 100644
--- a/src/main/java/org/eclipse/cargotracker/infrastructure/persistence/jpa/JpaCargoRepository.java
+++ b/src/main/java/org/eclipse/cargotracker/infrastructure/persistence/jpa/JpaCargoRepository.java
@@ -1,16 +1,17 @@
package org.eclipse.cargotracker.infrastructure.persistence.jpa;
-import java.io.Serializable;
-import java.util.List;
-import java.util.UUID;
-import java.util.logging.Level;
-import java.util.logging.Logger;
import jakarta.enterprise.context.ApplicationScoped;
import jakarta.enterprise.event.Event;
import jakarta.inject.Inject;
import jakarta.persistence.EntityManager;
import jakarta.persistence.NoResultException;
import jakarta.persistence.PersistenceContext;
+import java.io.Serial;
+import java.io.Serializable;
+import java.util.List;
+import java.util.UUID;
+import java.util.logging.Level;
+import java.util.logging.Logger;
import org.eclipse.cargotracker.domain.model.cargo.Cargo;
import org.eclipse.cargotracker.domain.model.cargo.CargoRepository;
import org.eclipse.cargotracker.domain.model.cargo.TrackingId;
@@ -19,7 +20,7 @@
@ApplicationScoped
public class JpaCargoRepository implements CargoRepository, Serializable {
- private static final long serialVersionUID = 1L;
+ @Serial private static final long serialVersionUID = 1L;
@Inject private Logger logger;
diff --git a/src/main/java/org/eclipse/cargotracker/infrastructure/persistence/jpa/JpaHandlingEventRepository.java b/src/main/java/org/eclipse/cargotracker/infrastructure/persistence/jpa/JpaHandlingEventRepository.java
index 059056c1d..ed7d77667 100644
--- a/src/main/java/org/eclipse/cargotracker/infrastructure/persistence/jpa/JpaHandlingEventRepository.java
+++ b/src/main/java/org/eclipse/cargotracker/infrastructure/persistence/jpa/JpaHandlingEventRepository.java
@@ -1,9 +1,10 @@
package org.eclipse.cargotracker.infrastructure.persistence.jpa;
-import java.io.Serializable;
import jakarta.enterprise.context.ApplicationScoped;
import jakarta.persistence.EntityManager;
import jakarta.persistence.PersistenceContext;
+import java.io.Serial;
+import java.io.Serializable;
import org.eclipse.cargotracker.domain.model.cargo.TrackingId;
import org.eclipse.cargotracker.domain.model.handling.HandlingEvent;
import org.eclipse.cargotracker.domain.model.handling.HandlingEventRepository;
@@ -12,7 +13,7 @@
@ApplicationScoped
public class JpaHandlingEventRepository implements HandlingEventRepository, Serializable {
- private static final long serialVersionUID = 1L;
+ @Serial private static final long serialVersionUID = 1L;
@PersistenceContext private EntityManager entityManager;
diff --git a/src/main/java/org/eclipse/cargotracker/infrastructure/persistence/jpa/JpaLocationRepository.java b/src/main/java/org/eclipse/cargotracker/infrastructure/persistence/jpa/JpaLocationRepository.java
index 7a6de0a91..60cc07b70 100644
--- a/src/main/java/org/eclipse/cargotracker/infrastructure/persistence/jpa/JpaLocationRepository.java
+++ b/src/main/java/org/eclipse/cargotracker/infrastructure/persistence/jpa/JpaLocationRepository.java
@@ -1,10 +1,11 @@
package org.eclipse.cargotracker.infrastructure.persistence.jpa;
-import java.io.Serializable;
-import java.util.List;
import jakarta.enterprise.context.ApplicationScoped;
import jakarta.persistence.EntityManager;
import jakarta.persistence.PersistenceContext;
+import java.io.Serial;
+import java.io.Serializable;
+import java.util.List;
import org.eclipse.cargotracker.domain.model.location.Location;
import org.eclipse.cargotracker.domain.model.location.LocationRepository;
import org.eclipse.cargotracker.domain.model.location.UnLocode;
@@ -12,7 +13,7 @@
@ApplicationScoped
public class JpaLocationRepository implements LocationRepository, Serializable {
- private static final long serialVersionUID = 1L;
+ @Serial private static final long serialVersionUID = 1L;
@PersistenceContext private EntityManager entityManager;
diff --git a/src/main/java/org/eclipse/cargotracker/infrastructure/persistence/jpa/JpaVoyageRepository.java b/src/main/java/org/eclipse/cargotracker/infrastructure/persistence/jpa/JpaVoyageRepository.java
index aac78e93b..f5661015e 100644
--- a/src/main/java/org/eclipse/cargotracker/infrastructure/persistence/jpa/JpaVoyageRepository.java
+++ b/src/main/java/org/eclipse/cargotracker/infrastructure/persistence/jpa/JpaVoyageRepository.java
@@ -1,10 +1,11 @@
package org.eclipse.cargotracker.infrastructure.persistence.jpa;
-import java.io.Serializable;
-import java.util.List;
import jakarta.enterprise.context.ApplicationScoped;
import jakarta.persistence.EntityManager;
import jakarta.persistence.PersistenceContext;
+import java.io.Serial;
+import java.io.Serializable;
+import java.util.List;
import org.eclipse.cargotracker.domain.model.voyage.Voyage;
import org.eclipse.cargotracker.domain.model.voyage.VoyageNumber;
import org.eclipse.cargotracker.domain.model.voyage.VoyageRepository;
@@ -12,7 +13,7 @@
@ApplicationScoped
public class JpaVoyageRepository implements VoyageRepository, Serializable {
- private static final long serialVersionUID = 1L;
+ @Serial private static final long serialVersionUID = 1L;
@PersistenceContext private EntityManager entityManager;
diff --git a/src/main/java/org/eclipse/cargotracker/infrastructure/routing/ExternalRoutingService.java b/src/main/java/org/eclipse/cargotracker/infrastructure/routing/ExternalRoutingService.java
index 3e95023e1..1a0df19da 100644
--- a/src/main/java/org/eclipse/cargotracker/infrastructure/routing/ExternalRoutingService.java
+++ b/src/main/java/org/eclipse/cargotracker/infrastructure/routing/ExternalRoutingService.java
@@ -1,10 +1,5 @@
package org.eclipse.cargotracker.infrastructure.routing;
-import java.util.ArrayList;
-import java.util.List;
-import java.util.logging.Level;
-import java.util.logging.Logger;
-import java.util.stream.Collectors;
import jakarta.annotation.PostConstruct;
import jakarta.annotation.Resource;
import jakarta.ejb.Stateless;
@@ -13,6 +8,10 @@
import jakarta.ws.rs.client.WebTarget;
import jakarta.ws.rs.core.GenericType;
import jakarta.ws.rs.core.MediaType;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.logging.Level;
+import java.util.logging.Logger;
import org.eclipse.cargotracker.domain.model.cargo.Itinerary;
import org.eclipse.cargotracker.domain.model.cargo.Leg;
import org.eclipse.cargotracker.domain.model.cargo.RouteSpecification;
@@ -60,14 +59,13 @@ public List fetchRoutesForSpecification(RouteSpecification routeSpeci
.queryParam("origin", origin)
.queryParam("destination", destination)
.request(MediaType.APPLICATION_JSON_TYPE)
- .get(new GenericType>() {});
+ .get(new GenericType<>() {});
// The returned result is then translated back into our domain model.
List itineraries = new ArrayList<>();
// Use the specification to safe-guard against invalid itineraries
- transitPaths
- .stream()
+ transitPaths.stream()
.map(this::toItinerary)
.forEach(
itinerary -> {
@@ -83,17 +81,16 @@ public List fetchRoutesForSpecification(RouteSpecification routeSpeci
}
private Itinerary toItinerary(TransitPath transitPath) {
- List legs =
- transitPath.getTransitEdges().stream().map(this::toLeg).collect(Collectors.toList());
+ List legs = transitPath.getTransitEdges().stream().map(this::toLeg).toList();
return new Itinerary(legs);
}
private Leg toLeg(TransitEdge edge) {
return new Leg(
- voyageRepository.find(new VoyageNumber(edge.getVoyageNumber())),
- locationRepository.find(new UnLocode(edge.getFromUnLocode())),
- locationRepository.find(new UnLocode(edge.getToUnLocode())),
- edge.getFromDate(),
- edge.getToDate());
+ voyageRepository.find(new VoyageNumber(edge.voyageNumber())),
+ locationRepository.find(new UnLocode(edge.fromUnLocode())),
+ locationRepository.find(new UnLocode(edge.toUnLocode())),
+ edge.fromDate(),
+ edge.toDate());
}
}
diff --git a/src/main/java/org/eclipse/cargotracker/interfaces/Coordinates.java b/src/main/java/org/eclipse/cargotracker/interfaces/Coordinates.java
index ededd74d5..b3edc4d92 100644
--- a/src/main/java/org/eclipse/cargotracker/interfaces/Coordinates.java
+++ b/src/main/java/org/eclipse/cargotracker/interfaces/Coordinates.java
@@ -4,21 +4,4 @@
* At the moment, coordinates are effectively a shared DTO in the interface layer. It may be
* converted to a domain level concern at some point. *
*/
-public class Coordinates {
-
- private final double latitude;
- private final double longitude;
-
- public Coordinates(double latitude, double longitude) {
- this.latitude = latitude;
- this.longitude = longitude;
- }
-
- public double getLatitude() {
- return latitude;
- }
-
- public double getLongitude() {
- return longitude;
- }
-}
+public record Coordinates(double latitude, double longitude) {}
diff --git a/src/main/java/org/eclipse/cargotracker/interfaces/booking/facade/dto/CargoRoute.java b/src/main/java/org/eclipse/cargotracker/interfaces/booking/facade/dto/CargoRoute.java
index c4f371b83..3e55a2894 100644
--- a/src/main/java/org/eclipse/cargotracker/interfaces/booking/facade/dto/CargoRoute.java
+++ b/src/main/java/org/eclipse/cargotracker/interfaces/booking/facade/dto/CargoRoute.java
@@ -1,5 +1,6 @@
package org.eclipse.cargotracker.interfaces.booking.facade.dto;
+import java.io.Serial;
import java.io.Serializable;
import java.time.LocalDate;
import java.util.Collections;
@@ -9,7 +10,7 @@
/** DTO for registering and routing a cargo. */
public class CargoRoute implements Serializable {
- private static final long serialVersionUID = 1L;
+ @Serial private static final long serialVersionUID = 1L;
private final String trackingId;
private final Location origin;
diff --git a/src/main/java/org/eclipse/cargotracker/interfaces/booking/facade/dto/CargoStatus.java b/src/main/java/org/eclipse/cargotracker/interfaces/booking/facade/dto/CargoStatus.java
index ed1e8db4b..07b5ef343 100644
--- a/src/main/java/org/eclipse/cargotracker/interfaces/booking/facade/dto/CargoStatus.java
+++ b/src/main/java/org/eclipse/cargotracker/interfaces/booking/facade/dto/CargoStatus.java
@@ -1,64 +1,30 @@
package org.eclipse.cargotracker.interfaces.booking.facade.dto;
-import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
-public class CargoStatus {
+public record CargoStatus(
+ String trackingId,
+ String destination,
+ String statusText,
+ boolean misdirected,
+ String eta,
+ String nextExpectedActivity,
+ List events) {
- private final String trackingId;
- private final String destination;
- private final String statusText;
- private final boolean misdirected;
- private final String eta;
- private final String nextExpectedActivity;
- private final List events;
-
- public CargoStatus(
- String trackigId,
- String destination,
- String statusText,
- boolean misdirected,
- String eta,
- String nextExpectedActivity,
- List handlingEvents) {
- this.trackingId = trackigId;
- this.destination = destination;
- this.statusText = statusText;
- this.misdirected = misdirected;
- this.eta = eta;
- this.nextExpectedActivity = nextExpectedActivity;
- this.events = new ArrayList<>(handlingEvents.size());
-
- events.addAll(handlingEvents);
- }
-
- public String getTrackingId() {
- return trackingId;
+ public CargoStatus {
+ events = List.copyOf(events);
}
- public String getDestination() {
- return destination;
+ @Override
+ public List events() {
+ return Collections.unmodifiableList(events);
}
- /** @return A readable string describing the cargo status. */
+ /**
+ * @return A readable string describing the cargo status.
+ */
public String getStatusText() {
return statusText;
}
-
- public boolean isMisdirected() {
- return misdirected;
- }
-
- public String getEta() {
- return eta;
- }
-
- public String getNextExpectedActivity() {
- return nextExpectedActivity;
- }
-
- public List getEvents() {
- return Collections.unmodifiableList(events);
- }
}
diff --git a/src/main/java/org/eclipse/cargotracker/interfaces/booking/facade/dto/Leg.java b/src/main/java/org/eclipse/cargotracker/interfaces/booking/facade/dto/Leg.java
index d9e08497c..86220b61a 100644
--- a/src/main/java/org/eclipse/cargotracker/interfaces/booking/facade/dto/Leg.java
+++ b/src/main/java/org/eclipse/cargotracker/interfaces/booking/facade/dto/Leg.java
@@ -1,18 +1,15 @@
package org.eclipse.cargotracker.interfaces.booking.facade.dto;
+import java.io.Serial;
import java.io.Serializable;
import java.time.LocalDateTime;
import org.eclipse.cargotracker.application.util.DateConverter;
/** DTO for a leg in an itinerary. */
-public class Leg implements Serializable {
-
- private static final long serialVersionUID = 1L;
- private final String voyageNumber;
- private final Location from;
- private final Location to;
- private final String loadTime;
- private final String unloadTime;
+public record Leg(
+ String voyageNumber, Location from, Location to, String loadTime, String unloadTime)
+ implements Serializable {
+ @Serial private static final long serialVersionUID = 1L;
public Leg(
String voyageNumber,
@@ -20,11 +17,12 @@ public Leg(
Location to,
LocalDateTime loadTime,
LocalDateTime unloadTime) {
- this.voyageNumber = voyageNumber;
- this.from = from;
- this.to = to;
- this.loadTime = DateConverter.toString(loadTime);
- this.unloadTime = DateConverter.toString(unloadTime);
+ this(
+ voyageNumber,
+ from,
+ to,
+ DateConverter.toString(loadTime),
+ DateConverter.toString(unloadTime));
}
public String getVoyageNumber() {
@@ -36,11 +34,11 @@ public String getFrom() {
}
public String getFromUnLocode() {
- return from.getUnLocode();
+ return from.unLocode();
}
public String getFromName() {
- return from.getName();
+ return from.name();
}
public String getTo() {
@@ -48,11 +46,11 @@ public String getTo() {
}
public String getToName() {
- return to.getName();
+ return to.name();
}
public String getToUnLocode() {
- return to.getUnLocode();
+ return to.unLocode();
}
public String getLoadTime() {
@@ -62,20 +60,4 @@ public String getLoadTime() {
public String getUnloadTime() {
return unloadTime;
}
-
- @Override
- public String toString() {
- return "Leg{"
- + "voyageNumber="
- + voyageNumber
- + ", from="
- + from.getUnLocode()
- + ", to="
- + to.getUnLocode()
- + ", loadTime="
- + loadTime
- + ", unloadTime="
- + unloadTime
- + '}';
- }
}
diff --git a/src/main/java/org/eclipse/cargotracker/interfaces/booking/facade/dto/Location.java b/src/main/java/org/eclipse/cargotracker/interfaces/booking/facade/dto/Location.java
index 623fdde39..c4c794794 100644
--- a/src/main/java/org/eclipse/cargotracker/interfaces/booking/facade/dto/Location.java
+++ b/src/main/java/org/eclipse/cargotracker/interfaces/booking/facade/dto/Location.java
@@ -3,18 +3,9 @@
import java.io.Serializable;
/** Location DTO. */
-public class Location implements Serializable {
-
- private static final long serialVersionUID = 1L;
-
- private String unLocode;
- private String name;
-
- public Location(String unLocode, String name) {
- this.unLocode = unLocode;
- this.name = name;
- }
+public record Location(String unLocode, String name) implements Serializable {
+ // keeping this for compatibility with the original code
public String getUnLocode() {
return unLocode;
}
@@ -22,9 +13,4 @@ public String getUnLocode() {
public String getName() {
return name;
}
-
- @Override
- public String toString() {
- return name + " (" + unLocode + ")";
- }
}
diff --git a/src/main/java/org/eclipse/cargotracker/interfaces/booking/facade/dto/RouteCandidate.java b/src/main/java/org/eclipse/cargotracker/interfaces/booking/facade/dto/RouteCandidate.java
index cdcb2f051..effeb0810 100644
--- a/src/main/java/org/eclipse/cargotracker/interfaces/booking/facade/dto/RouteCandidate.java
+++ b/src/main/java/org/eclipse/cargotracker/interfaces/booking/facade/dto/RouteCandidate.java
@@ -1,26 +1,7 @@
package org.eclipse.cargotracker.interfaces.booking.facade.dto;
import java.io.Serializable;
-import java.util.Collections;
import java.util.List;
/** DTO for presenting and selecting an itinerary from a collection of candidates. */
-public class RouteCandidate implements Serializable {
-
- private static final long serialVersionUID = 1L;
-
- private List legs;
-
- public RouteCandidate(List legs) {
- this.legs = legs;
- }
-
- public List getLegs() {
- return Collections.unmodifiableList(legs);
- }
-
- @Override
- public String toString() {
- return "RouteCandidate{" + "legs=" + legs + '}';
- }
-}
+public record RouteCandidate(List legs) implements Serializable {}
diff --git a/src/main/java/org/eclipse/cargotracker/interfaces/booking/facade/dto/TrackingEvents.java b/src/main/java/org/eclipse/cargotracker/interfaces/booking/facade/dto/TrackingEvents.java
index 977ddfafd..16903a12d 100644
--- a/src/main/java/org/eclipse/cargotracker/interfaces/booking/facade/dto/TrackingEvents.java
+++ b/src/main/java/org/eclipse/cargotracker/interfaces/booking/facade/dto/TrackingEvents.java
@@ -1,26 +1,3 @@
package org.eclipse.cargotracker.interfaces.booking.facade.dto;
-public class TrackingEvents {
-
- private final boolean expected;
- private final String description;
- private final String time;
-
- public TrackingEvents(boolean expected, String description, String time) {
- this.expected = expected;
- this.description = description;
- this.time = time;
- }
-
- public boolean isExpected() {
- return expected;
- }
-
- public String getDescription() {
- return description;
- }
-
- public String getTime() {
- return time;
- }
-}
+public record TrackingEvents(boolean expected, String description, String time) {}
diff --git a/src/main/java/org/eclipse/cargotracker/interfaces/booking/facade/internal/DefaultBookingServiceFacade.java b/src/main/java/org/eclipse/cargotracker/interfaces/booking/facade/internal/DefaultBookingServiceFacade.java
index 334eed541..68397e1f0 100644
--- a/src/main/java/org/eclipse/cargotracker/interfaces/booking/facade/internal/DefaultBookingServiceFacade.java
+++ b/src/main/java/org/eclipse/cargotracker/interfaces/booking/facade/internal/DefaultBookingServiceFacade.java
@@ -1,12 +1,11 @@
package org.eclipse.cargotracker.interfaces.booking.facade.internal;
+import jakarta.enterprise.context.ApplicationScoped;
+import jakarta.inject.Inject;
+import java.io.Serial;
import java.io.Serializable;
import java.time.LocalDate;
-import java.util.ArrayList;
import java.util.List;
-import java.util.stream.Collectors;
-import jakarta.enterprise.context.ApplicationScoped;
-import jakarta.inject.Inject;
import org.eclipse.cargotracker.application.BookingService;
import org.eclipse.cargotracker.domain.model.cargo.Cargo;
import org.eclipse.cargotracker.domain.model.cargo.CargoRepository;
@@ -30,7 +29,7 @@
@ApplicationScoped
public class DefaultBookingServiceFacade implements BookingServiceFacade, Serializable {
- private static final long serialVersionUID = 1L;
+ @Serial private static final long serialVersionUID = 1L;
@Inject private BookingService bookingService;
@Inject private LocationRepository locationRepository;
@@ -86,22 +85,14 @@ public void changeDeadline(String trackingId, LocalDate arrivalDeadline) {
@Override
// TODO [DDD] Is this the correct DTO here?
public List listAllCargos() {
- List cargos = cargoRepository.findAll();
- List routes;
- routes = cargos.stream().map(cargoRouteDtoAssembler::toDto).collect(Collectors.toList());
-
- return routes;
+ return cargoRepository.findAll().stream().map(cargoRouteDtoAssembler::toDto).toList();
}
- @Override
public List listAllTrackingIds() {
- List trackingIds = new ArrayList<>();
- cargoRepository
- .findAll()
- .forEach(cargo -> trackingIds.add(cargo.getTrackingId().getIdString()));
-
- return trackingIds;
+ return cargoRepository.findAll().stream()
+ .map(cargo -> cargo.getTrackingId().getIdString())
+ .toList();
}
@Override
@@ -126,12 +117,6 @@ public List requestPossibleRoutesForCargo(String trackingId) {
List itineraries =
bookingService.requestPossibleRoutesForCargo(new TrackingId(trackingId));
- List routeCandidates =
- itineraries
- .stream()
- .map(itineraryCandidateDtoAssembler::toDto)
- .collect(Collectors.toList());
-
- return routeCandidates;
+ return itineraries.stream().map(itineraryCandidateDtoAssembler::toDto).toList();
}
}
diff --git a/src/main/java/org/eclipse/cargotracker/interfaces/booking/facade/internal/assembler/CargoRouteDtoAssembler.java b/src/main/java/org/eclipse/cargotracker/interfaces/booking/facade/internal/assembler/CargoRouteDtoAssembler.java
index af996a6a7..22cf58c40 100644
--- a/src/main/java/org/eclipse/cargotracker/interfaces/booking/facade/internal/assembler/CargoRouteDtoAssembler.java
+++ b/src/main/java/org/eclipse/cargotracker/interfaces/booking/facade/internal/assembler/CargoRouteDtoAssembler.java
@@ -1,10 +1,8 @@
package org.eclipse.cargotracker.interfaces.booking.facade.internal.assembler;
-import static java.util.stream.Collectors.toList;
-
-import java.util.List;
import jakarta.enterprise.context.ApplicationScoped;
import jakarta.inject.Inject;
+import java.util.List;
import org.eclipse.cargotracker.domain.model.cargo.Cargo;
import org.eclipse.cargotracker.domain.model.cargo.RoutingStatus;
import org.eclipse.cargotracker.domain.model.cargo.TransportStatus;
@@ -18,10 +16,7 @@ public class CargoRouteDtoAssembler {
public CargoRoute toDto(Cargo cargo) {
List legs =
- cargo
- .getItinerary()
- .getLegs()
- .stream()
+ cargo.getItinerary().getLegs().stream()
.map(
leg ->
new Leg(
@@ -30,7 +25,7 @@ public CargoRoute toDto(Cargo cargo) {
locationDtoAssembler.toDto(leg.getUnloadLocation()),
leg.getLoadTime(),
leg.getUnloadTime()))
- .collect(toList());
+ .toList();
return new CargoRoute(
cargo.getTrackingId().getIdString(),
diff --git a/src/main/java/org/eclipse/cargotracker/interfaces/booking/facade/internal/assembler/CargoStatusDtoAssembler.java b/src/main/java/org/eclipse/cargotracker/interfaces/booking/facade/internal/assembler/CargoStatusDtoAssembler.java
index 9d391902f..c8c8f549a 100644
--- a/src/main/java/org/eclipse/cargotracker/interfaces/booking/facade/internal/assembler/CargoStatusDtoAssembler.java
+++ b/src/main/java/org/eclipse/cargotracker/interfaces/booking/facade/internal/assembler/CargoStatusDtoAssembler.java
@@ -1,10 +1,9 @@
package org.eclipse.cargotracker.interfaces.booking.facade.internal.assembler;
-import java.time.LocalDateTime;
-import java.util.List;
-import java.util.stream.Collectors;
import jakarta.enterprise.context.ApplicationScoped;
import jakarta.inject.Inject;
+import java.time.LocalDateTime;
+import java.util.List;
import org.eclipse.cargotracker.application.util.DateConverter;
import org.eclipse.cargotracker.domain.model.cargo.Cargo;
import org.eclipse.cargotracker.domain.model.cargo.Delivery;
@@ -22,10 +21,9 @@ public CargoStatus toDto(Cargo cargo, List handlingEvents) {
List trackingEvents;
trackingEvents =
- handlingEvents
- .stream()
+ handlingEvents.stream()
.map(handlingEvent -> assembler.toDto(cargo, handlingEvent))
- .collect(Collectors.toList());
+ .toList();
return new CargoStatus(
cargo.getTrackingId().getIdString(),
@@ -39,21 +37,15 @@ public CargoStatus toDto(Cargo cargo, List handlingEvents) {
private String getCargoStatusText(Cargo cargo) {
Delivery delivery = cargo.getDelivery();
-
- switch (delivery.getTransportStatus()) {
- case IN_PORT:
- return "In port " + delivery.getLastKnownLocation().getName();
- case ONBOARD_CARRIER:
- return "Onboard voyage " + delivery.getCurrentVoyage().getVoyageNumber().getIdString();
- case CLAIMED:
- return "Claimed";
- case NOT_RECEIVED:
- return "Not received";
- case UNKNOWN:
- return "Unknown";
- default:
- return "[Unknown status]"; // Should never happen.
- }
+ return switch (delivery.getTransportStatus()) {
+ case IN_PORT -> "In port " + delivery.getLastKnownLocation().getName();
+ case ONBOARD_CARRIER ->
+ "Onboard voyage " + delivery.getCurrentVoyage().getVoyageNumber().getIdString();
+ case CLAIMED -> "Claimed";
+ case NOT_RECEIVED -> "Not received";
+ case UNKNOWN -> "Unknown";
+ default -> "[Unknown status]"; // Should never happen.
+ };
}
private String getEta(Cargo cargo) {
diff --git a/src/main/java/org/eclipse/cargotracker/interfaces/booking/facade/internal/assembler/ItineraryCandidateDtoAssembler.java b/src/main/java/org/eclipse/cargotracker/interfaces/booking/facade/internal/assembler/ItineraryCandidateDtoAssembler.java
index 24eeb4721..cd67fd166 100644
--- a/src/main/java/org/eclipse/cargotracker/interfaces/booking/facade/internal/assembler/ItineraryCandidateDtoAssembler.java
+++ b/src/main/java/org/eclipse/cargotracker/interfaces/booking/facade/internal/assembler/ItineraryCandidateDtoAssembler.java
@@ -1,10 +1,9 @@
package org.eclipse.cargotracker.interfaces.booking.facade.internal.assembler;
-import java.util.ArrayList;
-import java.util.List;
-import java.util.stream.Collectors;
import jakarta.enterprise.context.ApplicationScoped;
import jakarta.inject.Inject;
+import java.util.ArrayList;
+import java.util.List;
import org.eclipse.cargotracker.application.util.DateConverter;
import org.eclipse.cargotracker.domain.model.cargo.Itinerary;
import org.eclipse.cargotracker.domain.model.cargo.Leg;
@@ -23,7 +22,7 @@ public class ItineraryCandidateDtoAssembler {
public RouteCandidate toDto(Itinerary itinerary) {
List legDTOs =
- itinerary.getLegs().stream().map(this::toLegDTO).collect(Collectors.toList());
+ itinerary.getLegs().stream().map(this::toLegDTO).toList();
return new RouteCandidate(legDTOs);
}
@@ -41,10 +40,10 @@ public Itinerary fromDTO(
RouteCandidate routeCandidateDTO,
VoyageRepository voyageRepository,
LocationRepository locationRepository) {
- List legs = new ArrayList<>(routeCandidateDTO.getLegs().size());
+ List legs = new ArrayList<>(routeCandidateDTO.legs().size());
for (org.eclipse.cargotracker.interfaces.booking.facade.dto.Leg legDTO :
- routeCandidateDTO.getLegs()) {
+ routeCandidateDTO.legs()) {
VoyageNumber voyageNumber = new VoyageNumber(legDTO.getVoyageNumber());
Voyage voyage = voyageRepository.find(voyageNumber);
Location from = locationRepository.find(new UnLocode(legDTO.getFromUnLocode()));
diff --git a/src/main/java/org/eclipse/cargotracker/interfaces/booking/facade/internal/assembler/LocationDtoAssembler.java b/src/main/java/org/eclipse/cargotracker/interfaces/booking/facade/internal/assembler/LocationDtoAssembler.java
index 2bde65a6a..ea1eedbf2 100644
--- a/src/main/java/org/eclipse/cargotracker/interfaces/booking/facade/internal/assembler/LocationDtoAssembler.java
+++ b/src/main/java/org/eclipse/cargotracker/interfaces/booking/facade/internal/assembler/LocationDtoAssembler.java
@@ -1,9 +1,8 @@
package org.eclipse.cargotracker.interfaces.booking.facade.internal.assembler;
+import jakarta.enterprise.context.ApplicationScoped;
import java.util.Comparator;
import java.util.List;
-import java.util.stream.Collectors;
-import jakarta.enterprise.context.ApplicationScoped;
import org.eclipse.cargotracker.domain.model.location.Location;
@ApplicationScoped
@@ -16,14 +15,12 @@ public org.eclipse.cargotracker.interfaces.booking.facade.dto.Location toDto(Loc
public List toDtoList(
List allLocations) {
- List dtoList =
- allLocations
- .stream()
- .map(this::toDto)
- .sorted(
- Comparator.comparing(
- org.eclipse.cargotracker.interfaces.booking.facade.dto.Location::getUnLocode))
- .collect(Collectors.toList());
- return dtoList;
+
+ return allLocations.stream()
+ .map(this::toDto)
+ .sorted(
+ Comparator.comparing(
+ org.eclipse.cargotracker.interfaces.booking.facade.dto.Location::getUnLocode))
+ .toList();
}
}
diff --git a/src/main/java/org/eclipse/cargotracker/interfaces/booking/facade/internal/assembler/TrackingEventsDtoAssembler.java b/src/main/java/org/eclipse/cargotracker/interfaces/booking/facade/internal/assembler/TrackingEventsDtoAssembler.java
index e0a675f4f..ab7d6deab 100644
--- a/src/main/java/org/eclipse/cargotracker/interfaces/booking/facade/internal/assembler/TrackingEventsDtoAssembler.java
+++ b/src/main/java/org/eclipse/cargotracker/interfaces/booking/facade/internal/assembler/TrackingEventsDtoAssembler.java
@@ -25,20 +25,13 @@ private String timeFrom(HandlingEvent event) {
}
private String descriptionFrom(HandlingEvent.Type type, String location, String voyageNumber) {
- switch (type) {
- case LOAD:
- return "Loaded onto voyage " + voyageNumber + " in " + location;
- case UNLOAD:
- return "Unloaded off voyage " + voyageNumber + " in " + location;
- case RECEIVE:
- return "Received in " + location;
- case CLAIM:
- return "Claimed in " + location;
- case CUSTOMS:
- return "Cleared customs in " + location;
- default:
- return "[Unknown]";
- }
+ return switch (type) {
+ case LOAD -> "Loaded onto voyage " + voyageNumber + " in " + location;
+ case UNLOAD -> "Unloaded off voyage " + voyageNumber + " in " + location;
+ case RECEIVE -> "Received in " + location;
+ case CLAIM -> "Claimed in " + location;
+ case CUSTOMS -> "Cleared customs in " + location;
+ };
}
private String voyageNumberFrom(HandlingEvent handlingEvent) {
diff --git a/src/main/java/org/eclipse/cargotracker/interfaces/booking/sse/RealtimeCargoTrackingService.java b/src/main/java/org/eclipse/cargotracker/interfaces/booking/sse/RealtimeCargoTrackingService.java
index 087e20ea5..a78361959 100644
--- a/src/main/java/org/eclipse/cargotracker/interfaces/booking/sse/RealtimeCargoTrackingService.java
+++ b/src/main/java/org/eclipse/cargotracker/interfaces/booking/sse/RealtimeCargoTrackingService.java
@@ -1,7 +1,5 @@
package org.eclipse.cargotracker.interfaces.booking.sse;
-import java.util.logging.Level;
-import java.util.logging.Logger;
import jakarta.annotation.PostConstruct;
import jakarta.annotation.PreDestroy;
import jakarta.ejb.Singleton;
@@ -16,6 +14,8 @@
import jakarta.ws.rs.sse.Sse;
import jakarta.ws.rs.sse.SseBroadcaster;
import jakarta.ws.rs.sse.SseEventSink;
+import java.util.logging.Level;
+import java.util.logging.Logger;
import org.eclipse.cargotracker.domain.model.cargo.Cargo;
import org.eclipse.cargotracker.domain.model.cargo.CargoRepository;
import org.eclipse.cargotracker.infrastructure.events.cdi.CargoUpdated;
diff --git a/src/main/java/org/eclipse/cargotracker/interfaces/booking/web/Booking.java b/src/main/java/org/eclipse/cargotracker/interfaces/booking/web/Booking.java
index 5e580a58a..2abc7e473 100644
--- a/src/main/java/org/eclipse/cargotracker/interfaces/booking/web/Booking.java
+++ b/src/main/java/org/eclipse/cargotracker/interfaces/booking/web/Booking.java
@@ -1,16 +1,17 @@
package org.eclipse.cargotracker.interfaces.booking.web;
-import java.io.Serializable;
-import java.time.LocalDate;
-import java.time.temporal.ChronoUnit;
-import java.util.ArrayList;
-import java.util.List;
import jakarta.annotation.PostConstruct;
import jakarta.faces.application.FacesMessage;
import jakarta.faces.context.FacesContext;
import jakarta.faces.flow.FlowScoped;
import jakarta.inject.Inject;
import jakarta.inject.Named;
+import java.io.Serial;
+import java.io.Serializable;
+import java.time.LocalDate;
+import java.time.temporal.ChronoUnit;
+import java.util.ArrayList;
+import java.util.List;
import org.eclipse.cargotracker.interfaces.booking.facade.BookingServiceFacade;
import org.eclipse.cargotracker.interfaces.booking.facade.dto.Location;
import org.primefaces.PrimeFaces;
@@ -29,7 +30,7 @@
@FlowScoped("booking")
public class Booking implements Serializable {
- private static final long serialVersionUID = 1L;
+ @Serial private static final long serialVersionUID = 1L;
private static final long MIN_JOURNEY_DURATION = 1; // Journey should be 1 day minimum.
@@ -83,8 +84,7 @@ public String getOriginUnlocode() {
public void setOriginUnlocode(String originUnlocode) {
this.originUnlocode = originUnlocode;
this.originName =
- locations
- .stream()
+ locations.stream()
.filter(location -> location.getUnLocode().equalsIgnoreCase(originUnlocode))
.findAny()
.get()
@@ -102,8 +102,7 @@ public String getDestinationUnlocode() {
public void setDestinationUnlocode(String destinationUnlocode) {
this.destinationUnlocode = destinationUnlocode;
this.destinationName =
- locations
- .stream()
+ locations.stream()
.filter(location -> location.getUnLocode().equalsIgnoreCase(destinationUnlocode))
.findAny()
.get()
@@ -137,11 +136,7 @@ public boolean isBookable() {
public void deadlineUpdated() {
duration = ChronoUnit.DAYS.between(today, arrivalDeadline);
- if (duration >= MIN_JOURNEY_DURATION) {
- bookable = true;
- } else {
- bookable = false;
- }
+ bookable = duration >= MIN_JOURNEY_DURATION;
PrimeFaces.current().ajax().update("dateForm:durationPanel");
PrimeFaces.current().ajax().update("dateForm:bookBtn");
diff --git a/src/main/java/org/eclipse/cargotracker/interfaces/booking/web/ChangeArrivalDeadline.java b/src/main/java/org/eclipse/cargotracker/interfaces/booking/web/ChangeArrivalDeadline.java
index a085d5be6..c10e926cc 100644
--- a/src/main/java/org/eclipse/cargotracker/interfaces/booking/web/ChangeArrivalDeadline.java
+++ b/src/main/java/org/eclipse/cargotracker/interfaces/booking/web/ChangeArrivalDeadline.java
@@ -1,10 +1,11 @@
package org.eclipse.cargotracker.interfaces.booking.web;
-import java.io.Serializable;
-import java.time.LocalDate;
import jakarta.faces.view.ViewScoped;
import jakarta.inject.Inject;
import jakarta.inject.Named;
+import java.io.Serial;
+import java.io.Serializable;
+import java.time.LocalDate;
import org.eclipse.cargotracker.application.util.DateConverter;
import org.eclipse.cargotracker.interfaces.booking.facade.BookingServiceFacade;
import org.eclipse.cargotracker.interfaces.booking.facade.dto.CargoRoute;
@@ -24,7 +25,7 @@
@ViewScoped
public class ChangeArrivalDeadline implements Serializable {
- private static final long serialVersionUID = 1L;
+ @Serial private static final long serialVersionUID = 1L;
@Inject private BookingServiceFacade bookingServiceFacade;
diff --git a/src/main/java/org/eclipse/cargotracker/interfaces/booking/web/ChangeArrivalDeadlineDialog.java b/src/main/java/org/eclipse/cargotracker/interfaces/booking/web/ChangeArrivalDeadlineDialog.java
index 2458be2ef..1806d5698 100644
--- a/src/main/java/org/eclipse/cargotracker/interfaces/booking/web/ChangeArrivalDeadlineDialog.java
+++ b/src/main/java/org/eclipse/cargotracker/interfaces/booking/web/ChangeArrivalDeadlineDialog.java
@@ -1,12 +1,13 @@
package org.eclipse.cargotracker.interfaces.booking.web;
+import jakarta.enterprise.context.SessionScoped;
+import jakarta.inject.Named;
+import java.io.Serial;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
-import jakarta.enterprise.context.SessionScoped;
-import jakarta.inject.Named;
import org.primefaces.PrimeFaces;
import org.primefaces.event.SelectEvent;
@@ -14,7 +15,7 @@
@SessionScoped
public class ChangeArrivalDeadlineDialog implements Serializable {
- private static final long serialVersionUID = 1L;
+ @Serial private static final long serialVersionUID = 1L;
public void showDialog(String trackingId) {
Map options = new HashMap<>();
diff --git a/src/main/java/org/eclipse/cargotracker/interfaces/booking/web/ChangeDestination.java b/src/main/java/org/eclipse/cargotracker/interfaces/booking/web/ChangeDestination.java
index 3b07573e7..40525114a 100644
--- a/src/main/java/org/eclipse/cargotracker/interfaces/booking/web/ChangeDestination.java
+++ b/src/main/java/org/eclipse/cargotracker/interfaces/booking/web/ChangeDestination.java
@@ -1,11 +1,11 @@
package org.eclipse.cargotracker.interfaces.booking.web;
-import java.io.Serializable;
-import java.util.List;
-import java.util.stream.Collectors;
import jakarta.faces.view.ViewScoped;
import jakarta.inject.Inject;
import jakarta.inject.Named;
+import java.io.Serial;
+import java.io.Serializable;
+import java.util.List;
import org.eclipse.cargotracker.interfaces.booking.facade.BookingServiceFacade;
import org.eclipse.cargotracker.interfaces.booking.facade.dto.CargoRoute;
import org.eclipse.cargotracker.interfaces.booking.facade.dto.Location;
@@ -25,7 +25,7 @@
@ViewScoped
public class ChangeDestination implements Serializable {
- private static final long serialVersionUID = 1L;
+ @Serial private static final long serialVersionUID = 1L;
@Inject private BookingServiceFacade bookingServiceFacade;
@@ -51,19 +51,15 @@ public List getLocations() {
}
public List getPotentialDestinations() {
- // Potential destination = All Locations - Origin - Current Destination
- List destinationsToRemove =
- locations
- .stream()
- .filter(
- location ->
- location.getUnLocode().equalsIgnoreCase(cargo.getOriginCode())
- || location.getUnLocode().equalsIgnoreCase(cargo.getFinalDestinationCode()))
- .collect(Collectors.toList());
-
- locations.removeAll(destinationsToRemove);
-
- return locations;
+ String originCode = cargo.getOriginCode().toLowerCase();
+ String destinationCode = cargo.getFinalDestinationCode().toLowerCase();
+
+ return locations.stream()
+ .filter(
+ location ->
+ !location.getUnLocode().toLowerCase().equals(originCode)
+ && !location.getUnLocode().toLowerCase().equals(destinationCode))
+ .toList();
}
public String getDestinationUnlocode() {
diff --git a/src/main/java/org/eclipse/cargotracker/interfaces/booking/web/ChangeDestinationDialog.java b/src/main/java/org/eclipse/cargotracker/interfaces/booking/web/ChangeDestinationDialog.java
index bf8866a9a..3d7a36674 100644
--- a/src/main/java/org/eclipse/cargotracker/interfaces/booking/web/ChangeDestinationDialog.java
+++ b/src/main/java/org/eclipse/cargotracker/interfaces/booking/web/ChangeDestinationDialog.java
@@ -1,12 +1,13 @@
package org.eclipse.cargotracker.interfaces.booking.web;
+import jakarta.enterprise.context.SessionScoped;
+import jakarta.inject.Named;
+import java.io.Serial;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
-import jakarta.enterprise.context.SessionScoped;
-import jakarta.inject.Named;
import org.primefaces.PrimeFaces;
import org.primefaces.event.SelectEvent;
@@ -14,7 +15,7 @@
@SessionScoped
public class ChangeDestinationDialog implements Serializable {
- private static final long serialVersionUID = 1L;
+ @Serial private static final long serialVersionUID = 1L;
public void showDialog(String trackingId) {
Map options = new HashMap<>();
diff --git a/src/main/java/org/eclipse/cargotracker/interfaces/booking/web/ItinerarySelection.java b/src/main/java/org/eclipse/cargotracker/interfaces/booking/web/ItinerarySelection.java
index 9246579a0..1f55c52eb 100644
--- a/src/main/java/org/eclipse/cargotracker/interfaces/booking/web/ItinerarySelection.java
+++ b/src/main/java/org/eclipse/cargotracker/interfaces/booking/web/ItinerarySelection.java
@@ -1,10 +1,11 @@
package org.eclipse.cargotracker.interfaces.booking.web;
-import java.io.Serializable;
-import java.util.List;
import jakarta.faces.view.ViewScoped;
import jakarta.inject.Inject;
import jakarta.inject.Named;
+import java.io.Serial;
+import java.io.Serializable;
+import java.util.List;
import org.eclipse.cargotracker.interfaces.booking.facade.BookingServiceFacade;
import org.eclipse.cargotracker.interfaces.booking.facade.dto.CargoRoute;
import org.eclipse.cargotracker.interfaces.booking.facade.dto.RouteCandidate;
@@ -23,7 +24,7 @@
@ViewScoped
public class ItinerarySelection implements Serializable {
- private static final long serialVersionUID = 1L;
+ @Serial private static final long serialVersionUID = 1L;
@Inject private BookingServiceFacade bookingServiceFacade;
diff --git a/src/main/java/org/eclipse/cargotracker/interfaces/booking/web/ListCargo.java b/src/main/java/org/eclipse/cargotracker/interfaces/booking/web/ListCargo.java
index 57b602db7..2aa5dfb2c 100644
--- a/src/main/java/org/eclipse/cargotracker/interfaces/booking/web/ListCargo.java
+++ b/src/main/java/org/eclipse/cargotracker/interfaces/booking/web/ListCargo.java
@@ -2,11 +2,11 @@
import static java.util.stream.Collectors.toList;
-import java.util.List;
import jakarta.annotation.PostConstruct;
import jakarta.enterprise.context.RequestScoped;
import jakarta.inject.Inject;
import jakarta.inject.Named;
+import java.util.List;
import org.eclipse.cargotracker.interfaces.booking.facade.BookingServiceFacade;
import org.eclipse.cargotracker.interfaces.booking.facade.dto.CargoRoute;
diff --git a/src/main/java/org/eclipse/cargotracker/interfaces/booking/web/Track.java b/src/main/java/org/eclipse/cargotracker/interfaces/booking/web/Track.java
index daf93509d..6d422557e 100644
--- a/src/main/java/org/eclipse/cargotracker/interfaces/booking/web/Track.java
+++ b/src/main/java/org/eclipse/cargotracker/interfaces/booking/web/Track.java
@@ -1,11 +1,12 @@
package org.eclipse.cargotracker.interfaces.booking.web;
-import java.io.Serializable;
-import java.util.List;
import jakarta.annotation.PostConstruct;
import jakarta.faces.view.ViewScoped;
import jakarta.inject.Inject;
import jakarta.inject.Named;
+import java.io.Serial;
+import java.io.Serializable;
+import java.util.List;
import org.eclipse.cargotracker.interfaces.booking.facade.BookingServiceFacade;
import org.eclipse.cargotracker.interfaces.booking.facade.dto.CargoStatus;
@@ -23,7 +24,7 @@
@ViewScoped
public class Track implements Serializable {
- private static final long serialVersionUID = 1L;
+ @Serial private static final long serialVersionUID = 1L;
@Inject private BookingServiceFacade bookingServiceFacade;
diff --git a/src/main/java/org/eclipse/cargotracker/interfaces/handling/HandlingEventRegistrationAttempt.java b/src/main/java/org/eclipse/cargotracker/interfaces/handling/HandlingEventRegistrationAttempt.java
index 094223f94..9771b4e19 100644
--- a/src/main/java/org/eclipse/cargotracker/interfaces/handling/HandlingEventRegistrationAttempt.java
+++ b/src/main/java/org/eclipse/cargotracker/interfaces/handling/HandlingEventRegistrationAttempt.java
@@ -1,5 +1,6 @@
package org.eclipse.cargotracker.interfaces.handling;
+import java.io.Serial;
import java.io.Serializable;
import java.time.LocalDateTime;
import org.eclipse.cargotracker.domain.model.cargo.TrackingId;
@@ -15,7 +16,7 @@
*/
public class HandlingEventRegistrationAttempt implements Serializable {
- private static final long serialVersionUID = 1L;
+ @Serial private static final long serialVersionUID = 1L;
private final LocalDateTime registrationTime;
private final LocalDateTime completionTime;
diff --git a/src/main/java/org/eclipse/cargotracker/interfaces/handling/file/EventFilesCheckpoint.java b/src/main/java/org/eclipse/cargotracker/interfaces/handling/file/EventFilesCheckpoint.java
index 57f8988de..0a017d9ec 100644
--- a/src/main/java/org/eclipse/cargotracker/interfaces/handling/file/EventFilesCheckpoint.java
+++ b/src/main/java/org/eclipse/cargotracker/interfaces/handling/file/EventFilesCheckpoint.java
@@ -1,13 +1,14 @@
package org.eclipse.cargotracker.interfaces.handling.file;
import java.io.File;
+import java.io.Serial;
import java.io.Serializable;
import java.util.LinkedList;
import java.util.List;
public class EventFilesCheckpoint implements Serializable {
- private static final long serialVersionUID = 1L;
+ @Serial private static final long serialVersionUID = 1L;
private List files = new LinkedList<>();
private int fileIndex = 0;
diff --git a/src/main/java/org/eclipse/cargotracker/interfaces/handling/file/EventItemReader.java b/src/main/java/org/eclipse/cargotracker/interfaces/handling/file/EventItemReader.java
index f96ccb8dc..5b85c2500 100644
--- a/src/main/java/org/eclipse/cargotracker/interfaces/handling/file/EventItemReader.java
+++ b/src/main/java/org/eclipse/cargotracker/interfaces/handling/file/EventItemReader.java
@@ -1,5 +1,10 @@
package org.eclipse.cargotracker.interfaces.handling.file;
+import jakarta.batch.api.chunk.AbstractItemReader;
+import jakarta.batch.runtime.context.JobContext;
+import jakarta.enterprise.context.Dependent;
+import jakarta.inject.Inject;
+import jakarta.inject.Named;
import java.io.File;
import java.io.RandomAccessFile;
import java.io.Serializable;
@@ -8,11 +13,6 @@
import java.util.Arrays;
import java.util.logging.Level;
import java.util.logging.Logger;
-import jakarta.batch.api.chunk.AbstractItemReader;
-import jakarta.batch.runtime.context.JobContext;
-import jakarta.enterprise.context.Dependent;
-import jakarta.inject.Inject;
-import jakarta.inject.Named;
import org.eclipse.cargotracker.application.util.DateConverter;
import org.eclipse.cargotracker.domain.model.cargo.TrackingId;
import org.eclipse.cargotracker.domain.model.handling.HandlingEvent;
@@ -141,11 +141,8 @@ private Object parseLine(String line) throws EventLineParseException {
throw new EventLineParseException("Cannot parse event type", e, line);
}
- HandlingEventRegistrationAttempt attempt =
- new HandlingEventRegistrationAttempt(
- LocalDateTime.now(), completionTime, trackingId, voyageNumber, eventType, unLocode);
-
- return attempt;
+ return new HandlingEventRegistrationAttempt(
+ LocalDateTime.now(), completionTime, trackingId, voyageNumber, eventType, unLocode);
}
@Override
diff --git a/src/main/java/org/eclipse/cargotracker/interfaces/handling/file/EventItemWriter.java b/src/main/java/org/eclipse/cargotracker/interfaces/handling/file/EventItemWriter.java
index 834f007da..9ef15220c 100644
--- a/src/main/java/org/eclipse/cargotracker/interfaces/handling/file/EventItemWriter.java
+++ b/src/main/java/org/eclipse/cargotracker/interfaces/handling/file/EventItemWriter.java
@@ -1,17 +1,17 @@
package org.eclipse.cargotracker.interfaces.handling.file;
-import java.io.BufferedWriter;
-import java.io.File;
-import java.io.FileWriter;
-import java.io.PrintWriter;
-import java.io.Serializable;
-import java.util.List;
import jakarta.batch.api.chunk.AbstractItemWriter;
import jakarta.batch.runtime.context.JobContext;
import jakarta.enterprise.context.Dependent;
import jakarta.inject.Inject;
import jakarta.inject.Named;
import jakarta.transaction.Transactional;
+import java.io.BufferedWriter;
+import java.io.File;
+import java.io.FileWriter;
+import java.io.PrintWriter;
+import java.io.Serializable;
+import java.util.List;
import org.eclipse.cargotracker.application.ApplicationEvents;
import org.eclipse.cargotracker.application.util.DateConverter;
import org.eclipse.cargotracker.interfaces.handling.HandlingEventRegistrationAttempt;
@@ -49,9 +49,8 @@ public void writeItems(List