eclipse-ee4j/cargotracker
35.7
Weak · 21 September 2026
6k
lines of production code
Java
primary language
4
measurements over time
What this system is
This system is a cargo tracking and logistics management application that manages the booking, routing, and handling of shipments. It provides interfaces for users to book new cargo, track real-time status and handling events, and view interactive maps of shipment locations. The platform supports administrative tasks such as modifying destinations and deadlines, while also processing bulk handling event data via batch jobs and messaging queues.
How it got here
2019 — Jakarta EE 10 migration and infrastructure modernization
15 changes.
The project underwent a comprehensive migration to Jakarta EE 10, updating the persistence layer, JSF components, and build configuration. This period also involved removing legacy application logic, UI components, and test suites, while introducing modern containerized deployment and build automation infrastructure.
2020 — Jakarta EE 10 migration and domain modernization
31 changes.
This period focused on migrating the codebase to Jakarta EE 10, which involved renaming all packages from \net.java.cargotracker\ to \org.eclipse.cargotracker\ and updating all \javax\ imports to \jakarta\. The domain models for cargo, handling, location, and voyage were modernized with improved validation and Java 8+ features. Additionally, new features were introduced for external routing integration, mobile handling event registration, and public cargo tracking interfaces.
2021–2026 — Web UI and real-time tracking enhancements
11 changes.
This period focused on expanding the web-based administrative interface with new forms for tracking and managing cargo details, alongside the introduction of real-time cargo tracking via Server-Sent Events. The work also included adding map visualization capabilities and configuring the application for deployment on Open Liberty, supported by corresponding infrastructure and test updates.
Features
Add deployment, build, and dependency tracking infrastructure
The project now includes Kubernetes deployment descriptors (cargo-tracker.yml, postgres.yml) and a GitHub Actions workflow (nightly.yml) to automate nightly builds and deployments. A Dockerfile and docker-compose.yml are added to support containerized local development and cloud deployment. The Maven wrapper (mvnw, mvnw.cmd) is introduced to ensure consistent builds. Additionally, a DEPENDENCIES file is added to track third-party library licenses and origins, and legacy NetBeans-specific configuration files (nb-configuration.xml, nbactions.xml) are removed.
(repo-wide) · high confidence
Add interface layer utilities for coordinates and JSF configuration
The interface layer now includes a Coordinates class to represent latitude and longitude as a shared DTO, along with a CoordinatesFactory that maps location UnLocodes to their geographic coordinates. Additionally, a FacesConfiguration class has been added to configure Jakarta Faces with application-scoped beans.
src/main/java/org/eclipse/cargotracker/interfaces · high confidence
Add public cargo tracking web interface
Introduced a new public-facing cargo tracking feature, exposing a web interface that allows users to look up a cargo's status and handling history by tracking ID. The implementation adds a JSF backing bean (Track.java) that queries the Cargo and HandlingEvent repositories, and a view adapter (CargoTrackingViewAdapter.java) that formats domain data for the UI, including origin, destination, estimated time of arrival, and a timeline of handling events.
src/main/java/org/eclipse/cargotracker/interfaces/tracking · high confidence
Add server-sent events (SSE) service for real-time cargo tracking
A new SSE-based REST endpoint at /cargo enables real-time updates for all tracked cargo. The RealtimeCargoTrackingService broadcasts CargoUpdated events to connected clients, while view adapters (RealtimeCargoTrackingViewAdapter, LocationViewAdapter) format cargo and location data for the SSE stream.
src/main/java/org/eclipse/cargotracker/interfaces/booking/sse · high confidence
Added CDI qualifier for cargo update events
A new CDI qualifier annotation, CargoUpdated, has been introduced in the infrastructure events layer to support context-dependent injection of cargo update events. This change adds the necessary infrastructure to distinguish and inject specific event types within the application's event handling mechanism.
src/main/java/org/eclipse/cargotracker/infrastructure/events · high confidence
Added HandlingEventRegistrationAttempt transfer object for handling events
A new Java class, HandlingEventRegistrationAttempt, has been introduced in the org.eclipse.cargotracker.interfaces.handling package. This class serves as a transfer object for passing incoming handling event registration attempts to the proper registration procedure, acting as a message queue element. It encapsulates details such as registration and completion times, tracking ID, voyage number, event type, and location code.
src/main/java/org/eclipse/cargotracker/interfaces/handling · high confidence
Added Leaflet 1.6.0 map library
The Leaflet 1.6.0 JavaScript library (including source and source map files) has been added to the application's webapp resources, enabling interactive map functionality.
src/main/webapp/resources/leaflet · high confidence
Added Open Liberty server configuration for the Cargo Tracker application
New configuration files (server.xml and bootstrap.properties) have been added to the src/main/liberty directory to enable the application to run on Open Liberty. The server.xml defines the necessary Java EE/Jakarta EE features (such as CDI, JMS, JDBC, and EJB timers), configures the embedded HSQLDB data source, sets up JMS queues and activation specs for message-driven beans, and maps the web application context root. The bootstrap.properties file configures HTTP/HTTPS ports and logging limits, allowing the application to be deployed and tested on the Open Liberty runtime.
src/main/liberty · high confidence
Added admin dialogs for changing arrival deadline and destination
Users can now update a shipment's arrival deadline or change its final destination through new admin dialog interfaces. The arrival deadline dialog allows editing the expected arrival date, while the destination dialog provides a dropdown to select a new destination from a list of potential locations.
src/main/webapp/admin/dialogs · high confidence
Added application utilities and sample data generation
Introduced new utility classes for the application: ApplicationSettings to track sample data loading status, DateConverter for date/time formatting, RestConfiguration for JAX-RS setup, and SampleDataGenerator to populate the database with initial demo data including locations, voyages, and cargo. These components support the demo environment by providing infrastructure for data seeding and date handling.
src/main/java/org/eclipse/cargotracker/application/util · high confidence
Added event logger wizard form for tracking ID, location, and event details
A new multi-step wizard form has been added to the event-logger module, allowing users to input and confirm tracking ID, location, event type, voyage number, and completion date. The form utilizes PrimeFaces components and is styled with the application's CSS, culminating in a confirmation screen that displays the entered data before submission.
src/main/webapp/event-logger · high confidence
Added external routing service integration
A new ExternalRoutingService implementation was added to the routing infrastructure, enabling the application to communicate with an external Path-Finder routing API. This service translates domain models to and from the external API, fetching itineraries based on route specifications and validating them against the user's constraints.
src/main/java/org/eclipse/cargotracker/infrastructure/routing · high confidence
Added internal booking service facade implementation
A new internal facade, DefaultBookingServiceFacade, was added to handle booking-related operations such as creating new cargo bookings, assigning cargo to routes, changing destinations or deadlines, and retrieving cargo status or route information. This implementation relies on injected repositories and DTO assemblers to bridge the domain model with the booking interface, providing the concrete logic for the booking API.
src/main/java/org/eclipse/cargotracker/interfaces/booking/facade/internal · high confidence
Added jQuery 3.5.1 library
The project now includes the jQuery library (version 3.5.1) in the webapp resources, enabling client-side DOM manipulation and event handling capabilities for the application's frontend.
src/main/webapp/resources/js · high confidence
Added mobile handling event registration interface
Introduced a new mobile web interface for registering handling events, implemented via the new EventLogger managed bean and its associated package documentation. This component provides a user-facing form for logging cargo handling events, allowing users to select a cargo tracking ID, location, voyage, and event type, with validation to ensure required fields like voyage number are present for load/unload operations.
src/main/java/org/eclipse/cargotracker/interfaces/handling/mobile · high confidence
Added package documentation for the pathfinder module
A new package.html file was added to the org.eclipse.pathfinder package, providing an HTML-based description of the pathfinder application context. This documentation clarifies that the pathfinder is a separate context from the core cargo domain model, serving as a routing domain service implementation that works against the API exposed by this specific context.
src/main/java/org/eclipse/pathfinder · high confidence
Introduce BookingServiceFacade interface for cargo booking operations
A new BookingServiceFacade interface has been added to the booking package, defining the public API for booking and managing cargo. This facade shields the domain layer from UI and remote communication concerns, providing methods to book new cargo, load routing and tracking information, assign routes, and manage destination or deadline changes.
src/main/java/org/eclipse/cargotracker/interfaces/booking/facade · high confidence
Introduce CDI-based logger injection for the Cargo Tracker application
The Cargo Tracker application now provides a new way to obtain Java Util Logging loggers via CDI injection. A new \LoggerProducer\ class in the \infrastructure.logging\ package uses the \@Produces\ annotation to create loggers dynamically based on the injection point, allowing developers to inject \Logger\ instances directly into their classes. This replaces the need for manual logger instantiation or static logger fields, aligning the application with Jakarta EE 9 standards as indicated by the \jakarta.enterprise\ imports.
src/main/java/org/eclipse/cargotracker/infrastructure/logging · high confidence
Introduce RoutingService interface for route specification
Added a new RoutingService interface in the domain service layer that accepts a RouteSpecification and returns a list of possible Itineraries. This introduces a domain-level contract for fetching routes, with an accompanying package documentation file.
src/main/java/org/eclipse/cargotracker/domain/service · high confidence
Introduce application layer interfaces for cargo tracking and handling
The application layer now exposes a set of new Java interfaces that define the system's use cases. The BookingService interface allows users to register new cargo, request possible routes, and modify destination or arrival deadlines. The HandlingEventService interface enables the registration of handling events, while the CargoInspectionService interface supports inspection and notification of cargo status. Additionally, the ApplicationEvents interface provides a mechanism for the system to notify other components about cargo handling, misdirection, and arrival events.
src/main/java/org/eclipse/cargotracker/application · high confidence
Introduce internal application service implementations for cargo tracking and handling
Added new internal implementations for the application layer: DefaultBookingService, DefaultCargoInspectionService, and DefaultHandlingEventService. These classes provide the concrete logic for booking new cargo, inspecting cargo status, and registering handling events, effectively implementing the corresponding interfaces within the org.eclipse.cargotracker.application.internal package.
src/main/java/org/eclipse/cargotracker/application/internal · high confidence
Introduced file-based handling event processing via Jakarta Batch
Added a new file-based interface for processing handling events, including a scheduled scanner that triggers a batch job to read, parse, and archive event files. The implementation uses Jakarta Batch (JSR-352) with new components: EventItemReader/Writer for chunk processing, a JobListener for logging, and a SkipReadListener to handle malformed lines by writing them to a failed directory. The package was also migrated from net.java.cargotracker to org.eclipse.cargotracker.
src/main/java/org/eclipse/cargotracker/interfaces/handling/file · high confidence
New DTO assemblers for cargo tracking and routing data
The booking interface now exposes structured data transfer objects (DTOs) for cargo tracking and route information. New assembler classes (CargoRouteDtoAssembler, CargoStatusDtoAssembler, ItineraryCandidateDtoAssembler, LocationDtoAssembler, and TrackingEventsDtoAssembler) map internal domain models to external-facing DTOs. This enables the UI to display detailed cargo status, handling events with timestamps, and available route candidates with leg details, improving the visibility of shipment progress and itinerary options.
src/main/java/org/eclipse/cargotracker/interfaces/booking/facade/internal/assembler · high confidence
New admin tracking pages for cargo status and live map
Added new JSF templates for the admin tracking section: a 'Track Cargo' page (track.xhtml) that allows administrators to search for a cargo by ID and view its status, handling history, and ETA, and a 'Live Map' page (map.xhtml/mapFrame.xhtml) that displays real-time cargo locations on an OpenStreetMap using the Leaflet library and Server-Sent Events for live updates.
src/main/webapp/admin/tracking · high confidence
New cargo status tables in the admin interface
The admin dashboard now includes three new pages for managing cargo: a table for claimed cargoes, a table for not-yet-routed cargoes (with inline actions to update destination and deadline), and a table for routed but unclaimed cargoes (showing last known location and status). These new views allow administrators to track and modify cargo details directly from the web interface.
src/main/webapp/admin/tables · high confidence
Removals
Removed cargo tracking application layer and UI components
The cargo tracking application layer has been removed, including the \ApplicationEvents\ interface and the \BookingService\, \CargoInspectionService\, and \HandlingEventService\ interfaces along with their default implementations. Additionally, utility classes such as \DateUtil\, \LocationUtil\, and \RestConfiguration\ have been deleted, as have the \BookingBackingBean\ (JSF UI component) and the \SampleDataGenerator\ used for demo data. This removes the core application logic and associated UI components for booking and tracking cargo.
src/main/java/net, src/main/resources/net · high confidence
Behavioural changes
Added domain model documentation
New package-level documentation files (package.html) were added to the domain model and domain/model directories. These HTML files provide an overview of the application's core domain logic, explaining that the domain model is the heart of the application, containing aggregates, repositories, and factories, and utilizing ubiquitous language familiar to cargo shipping experts.
src/main/java/org/eclipse/cargotracker/domain · high confidence
Domain shared classes migrated to org.eclipse.cargotracker package
The domain shared classes (Specification interface, AbstractSpecification, AndSpecification, OrSpecification, and NotSpecification) have been moved from the net.java.cargotracker package to the org.eclipse.cargotracker package. This package rename affects all classes in the domain/shared directory, updating their package declarations and import statements accordingly.
src/main/java/org/eclipse/cargotracker/domain/shared · high confidence
Improved validation for handling report submissions
The REST endpoint for registering handling events now enforces stricter validation rules on incoming data. Specifically, the completion time field now requires 15 to 19 characters (previously 16), and all required string fields (completion time, tracking ID, event type, and UN location code) now include explicit error messages for missing or invalid values. This ensures that users receive clear feedback when submitting handling reports with malformed or incomplete data.
src/main/java/org/eclipse/cargotracker/interfaces/handling/rest · high confidence
Migrate booking UI to Jakarta EE 10 and PrimeFaces
The booking flow pages (booking, booking-destination, booking-date) and their configuration have been updated to use the Jakarta EE 10 namespace (jakarta.faces.\*) and the Jakarta Faces 4.0 schema. The JSF backing bean references were changed from bookingBackingBean to booking, and the layout was adjusted to use PrimeFaces grid classes (ui-g-2, ui-g-8) instead of the previous grid system. These changes align the booking interface with the upgraded server environment.
src/main/webapp/booking · high confidence
Migrate location domain model to Jakarta EE 10 and Eclipse namespace
The location domain model, including the Location, UnLocode, and SampleLocations classes, has been migrated from the legacy javax.persistence and javax.validation APIs to the new jakarta.persistence and jakarta.validation APIs. Additionally, the package structure has been updated from net.java.cargotracker to org.eclipse.cargotracker, aligning with the Eclipse project namespace. This change ensures compatibility with modern Jakarta EE 10 environments and removes dependencies on the older Java EE 8/Java SE 8 specific annotations and validation constraints.
src/main/java/org/eclipse/cargotracker/domain/model/location · high confidence
Migrate pathfinder API to Eclipse package structure and Jakarta EE 10
The pathfinder API classes have been moved from the \net.java\ package to \org.eclipse.pathfinder.api\ and \org.eclipse.pathfinder.internal\. This includes the new \GraphTraversalService\ resource, which provides a REST endpoint for finding the shortest transit path between two UN location codes, along with updated \TransitEdge\ and \TransitPath\ models. The codebase has also been upgraded to use Jakarta EE 10 annotations (e.g., \jakarta.\*\ imports) and modern Java 8+ syntax.
src/main/java/org/eclipse/pathfinder/api · high confidence
Migrate persistence layer to Jakarta EE 9 and Java 8
The JPA repository implementations (JpaCargoRepository, JpaHandlingEventRepository, JpaLocationRepository, and JpaVoyageRepository) have been updated to use Jakarta EE 9 APIs (e.g., jakarta.persistence, jakarta.enterprise) and Java 8 syntax, replacing the previous javax.\* namespace usage. This change ensures compatibility with modern Jakarta EE 9+ servers and aligns the persistence infrastructure with current Java standards.
src/main/java/org/eclipse/cargotracker/infrastructure/persistence · high confidence
Migrate voyage domain models to Jakarta EE 9+ and modernize validation
The voyage domain model classes (CarrierMovement, Schedule, Voyage, VoyageNumber) have been migrated from the legacy javax.\* namespace to the new jakarta.\* namespace, reflecting the Jakarta EE 9+ package rename. Additionally, validation annotations have been updated (e.g., @NotEmpty replacing @NotNull in some contexts) and date-time handling has been modernized to use java.time.LocalDateTime with nanosecond truncation to resolve Hibernate persistence issues. The package structure has also been updated from net.java.cargotracker to org.eclipse.cargotracker.
src/main/java/org/eclipse/cargotracker/domain/model/voyage · high confidence
Migrate web controllers to Jakarta EE 10 and restructure the booking UI layer
The web controllers for the cargo booking interface have been migrated to Jakarta EE 10, updating all imports from the \javax\ namespace to \jakarta\ and adjusting the package structure to \org.eclipse.cargotracker.interfaces.booking.web\. This change includes the addition of new controllers for handling cargo details, itinerary selection, and deadline changes, while refactoring existing controllers like \ChangeDestination\ and \ItinerarySelection\ to align with the new framework standards and improve separation between the user interface and the domain model.
src/main/java/org/eclipse/cargotracker/interfaces/booking/web · high confidence
Migrated JMS messaging infrastructure to Jakarta EE 9+ namespaces
The JMS messaging layer has been updated to use the \jakarta.\\ package namespaces (e.g., \jakarta.ejb\, \jakarta.jms\) and the \org.eclipse.cargotracker\ package structure, replacing the previous \javax.\\ and \net.java.cargotracker\ conventions. This includes renaming \JmsApplicationEvents\ and introducing new message-driven consumers (\CargoHandledConsumer\, \DeliveredCargoConsumer\, \HandlingEventRegistrationAttemptConsumer\, \MisdirectedCargoConsumer\, \RejectedRegistrationAttemptsConsumer\) to handle asynchronous events for cargo tracking and handling.
src/main/java/org/eclipse/cargotracker/infrastructure/messaging · high confidence
Migrated cargo domain model to Jakarta EE 10 and updated validation
The cargo domain model classes (Cargo, Delivery, Itinerary, etc.) have been migrated from the \javax\ to the \jakarta\ namespace, reflecting an upgrade to Jakarta EE 10. This includes updating all \javax.persistence\ imports to \jakarta.persistence\ and \javax.validation\ to \jakarta.validation\. Additionally, the \RouteSpecification\ class now uses \java.time.LocalDate\ for the arrival deadline instead of \java.util.Date\, and validation annotations have been updated to use \@NotEmpty\ and \@NotNull\ from the Jakarta validation API. The package name has also been updated from \net.java.cargotracker\ to \org.eclipse.cargotracker\.
src/main/java/org/eclipse/cargotracker/domain/model/cargo · high confidence
Modernize HandlingEvent domain model and refactor HandlingHistory
The handling domain model has been modernized to align with current Java and Jakarta EE standards. The \HandlingEvent\ class and its associated factory, repository interface, and exception classes have been updated with improved validation, time handling, and dependency injection. Additionally, the \HandlingHistory\ class has been refactored to use modern Java features, such as \List.of()\ and \Comparator.comparing()\, replacing older patterns like \Collections.sort()\ and anonymous inner classes.
src/main/java/org/eclipse/cargotracker/domain/model/handling · medium confidence
Redesign of public tracking and about pages
The public tracking and about pages have been redesigned to modernize the user interface and improve usability. The tracking page now uses a card-based layout with a dedicated input field for the tracking ID, and the handling history now displays timestamps for each event. A new interactive map view has been added to the tracking page, allowing users to see the origin, destination, and last known location of their cargo on a map. The about page has also been updated with a cleaner layout and updated links.
src/main/webapp/public · high confidence
Redesigned admin and public page templates with new layout and navigation
The admin and public site templates have been restructured to use a side-panel navigation menu instead of the previous top-header layout. The admin template now features a vertical menu with links to Live, Book, Track, About, and Dashboard, while the public template includes a side-panel with About and Tracking links. Both templates have been updated to use the Jakarta Faces namespace (jakarta.faces.\*) and include JavaScript handlers that make the logo images clickable to return to the home page.
src/main/webapp/WEB-INF/templates · high confidence
Relocated i18n message resources to the new org.eclipse.cargotracker package
The internationalization (i18n) message properties for cargo status and delivery history events have been moved to the new org.eclipse.cargotracker package structure. This change reflects the broader package rename from jakarta.cargotracker to org.eclipse.cargotracker, ensuring that all localized text resources are correctly aligned with the updated namespace.
src/main/resources/org · high confidence
Removal of custom and third-party frontend resources
The application's static assets have been removed, specifically the custom calendar and CargoTracker CSS stylesheets, the jQuery jvectormap styles, and the bundled jQuery 3.4.1 library. This change eliminates the associated UI components and dependencies, meaning the application no longer provides the calendar picker, map visualization, or the specific jQuery functionality previously available in these resources.
src/main/webapp/resources, src/main/webapp/resources/primefaces · medium confidence
Removed Foundation CSS framework
The Foundation CSS framework stylesheets (foundation.css and foundation.min.css) have been removed from the application. This change eliminates the dependency on the external CSS framework, likely to reduce bundle size or migrate to a different styling approach.
src/main/webapp/resources/css · high confidence
Removed handling\_events.csv resource file
The CSV file handling\_events.csv has been removed from the application's resources. This file previously contained sample event data (including timestamps, identifiers, and locations), and its removal means the application no longer has access to this specific set of event records.
src/main/resources · high confidence
Removed legacy admin UI components and migrated to Jakarta EE 10
The admin interface has been significantly restructured to support Jakarta EE 10 and Payara 6. Several older XHTML views (changeDestination, listClaimed, listNotRouted, listRouted, map, mapFrame, track) were removed, while others (about, dashboard, route, selectItinerary) were updated to use Jakarta namespace URIs (jakarta.faces.\*) and modernized layouts. This change reflects a broader migration of the application's presentation layer to the new Java EE/Jakarta EE standards.
src/main/webapp/admin · high confidence
Removed the eventLogger JSF UI components
The eventLogger feature's web layer has been removed. Specifically, the JSF flow definition (eventLogger-flow.xml), the XHTML templates for the first and second screens (eventLogger.xhtml), and the root redirect page (root.xhtml) have all been deleted. This eliminates the user-facing interface for logging events via the PrimeFaces mobile UI.
src/main/webapp/eventLogger · high confidence
Updated Maven wrapper to version 3.9.16
The project's Maven wrapper has been upgraded to version 3.9.16, ensuring that all developers and CI systems use a consistent, up-to-date version of the build tool. This change updates the \maven-wrapper.properties\ file to reference the new wrapper version and distribution URL, which helps prevent build inconsistencies caused by varying local Maven installations.
.mvn · high confidence
Updated cargo tracking and booking data transfer objects
The booking facade's data transfer objects have been refactored to improve the tracking and routing information available to the user. CargoStatus now includes a list of handling events for the track page, while CargoRoute and Leg DTOs have been updated to use the new Location DTO and standardize date/time handling. These changes ensure that the booking interface presents accurate, up-to-date cargo status, itinerary details, and tracking events.
src/main/java/org/eclipse/cargotracker/interfaces/booking/facade/dto · high confidence
Updated homepage and removed legacy error/mobile pages
The homepage (index.xhtml) has been updated to reflect the Eclipse Cargo Tracker branding and Jakarta EE 10 compatibility, including updated links and styling. Additionally, the legacy error handling pages (error.xhtml, error\_404.xhtml) and the mobile.xhtml page have been removed from the webapp directory.
src/main/webapp · medium confidence
Upgrade to Jakarta EE 10 persistence configuration
The persistence configuration has been updated to Jakarta EE 10 (JPA 3.0), which changes the XML namespace and schema location. The configuration now enables shared caching for the 'CargoTrackerUnit' and is set to load initial data from 'initital-data.sql' to support application settings checks. Additionally, the file includes a SQL script to insert a default application settings record.
src/main/resources/META-INF · medium confidence
Test coverage
Add sample data for handling events; Added and migrated application-layer integration tests; Added unit tests for Cargo, Itinerary, and RouteSpecification domain models; Added unit tests for HandlingEvent and HandlingHistory; Added unit tests for location model and DTO assembler; Removed legacy test suite for cargo tracking.
Dependencies
Updated Maven dependencies and build configuration
The project's Maven build has been updated to use newer versions of several key dependencies, including upgrading JUnit from 4.12 to 4.13.1, Hibernate Validator to 6.0.16.Final, and PrimeFaces to 6.2. Additionally, the build configuration was simplified by removing the explicit dependency on the ui-lightness theme and updating the Arquillian BOM version to 1.1.10.Final.
(dependencies) · high confidence
Written by watchdog.canine.dev from the codebase's own history, inside the signed delivery this page is composed from.
How this codebase got here
This is the PUBLIC form of this artifact. Findings are listed in full, but the details of SECURITY findings — which rule fired, in which file, on which line, and how to fix it — are deliberately withheld, and any secret-scanner results are excluded entirely. Where detail is absent here it was REMOVED FOR PUBLICATION; it is not missing from the analysis. The complete artifact is available from the repository owner.
Score
- CAI 35 → 36 (+0.5)
- Rubric changed (rubric-2026.08.19 → rubric-2026.09.15) — scores are not directly comparable.
Lenses
- Code Health 94 → 93 (-0.3)
- Architecture 100 → 98 (-2.1)
- Maturity 52 → 36 (-15.9)
- Readiness 30 → 34 (+3.6)
- Security 60 → 52 (-7.9)
- Domain Modelling 63 → 69 (+6.3)
- Accessibility 21 → 26 (+4.8)
Resolved (36)
- Coverage not included — suite not readable by the collector
- Dependency hygiene not measured — dependency manifest found but not parsed for hygiene
- Duplicated block (10 lines × 3) (src/main/java/org/eclipse/cargotracker/application/util/SampleDataGenerator.java)
- Duplicated block (12 lines × 2) (src/main/java/org/eclipse/cargotracker/interfaces/booking/facade/internal/assembler/CargoStatusDtoAssembler.java)
- Duplicated block (16 lines × 2) (src/main/java/org/eclipse/cargotracker/application/util/SampleDataGenerator.java)
- Duplicated block (7 lines × 2) (src/main/java/org/eclipse/cargotracker/application/util/SampleDataGenerator.java)
- Duplicated block (8 lines × 2) (src/main/java/org/eclipse/cargotracker/application/util/SampleDataGenerator.java)
- Duplicated block (8 lines × 2) (src/main/java/org/eclipse/cargotracker/interfaces/booking/web/ChangeArrivalDeadlineDialog.java)
- Duplicated block (8 lines × 3) (src/main/java/org/eclipse/cargotracker/application/util/SampleDataGenerator.java)
- Duplicated block (9 lines × 2) (src/main/java/org/eclipse/cargotracker/application/util/SampleDataGenerator.java)
- Duplicated block (9 lines × 2) (src/main/java/org/eclipse/cargotracker/application/util/SampleDataGenerator.java)
- Duplicated block (9 lines × 2) (src/main/java/org/eclipse/cargotracker/domain/model/cargo/Itinerary.java)
- High: security finding (details withheld)
- High: security finding (details withheld)
- High: security finding (details withheld)
- High: security finding (details withheld)
- High: security finding (details withheld)
- High: security finding (details withheld)
- High: security finding (details withheld)
- High: security finding (details withheld)
- …and 16 more
New (107)
- Dependency hygiene PARTLY measured — Maven/Gradle declarations read, no dependency graph resolved
- Documentation: no usage examples (README.md)
- Duplicated block (10–11 lines × 3) (src/main/java/org/eclipse/cargotracker/application/util/SampleDataGenerator.java)
- Duplicated block (11 lines × 2) (src/main/java/org/eclipse/cargotracker/application/util/SampleDataGenerator.java)
- Duplicated block (13 lines × 3) (src/main/java/org/eclipse/cargotracker/domain/model/cargo/TrackingId.java)
- Duplicated block (16 lines × 2) (src/main/java/org/eclipse/cargotracker/application/util/SampleDataGenerator.java)
- Duplicated block (16 lines × 2) (src/main/java/org/eclipse/cargotracker/interfaces/booking/web/ChangeArrivalDeadlineDialog.java)
- Duplicated block (25 lines × 2) (src/main/java/org/eclipse/cargotracker/interfaces/booking/facade/internal/assembler/CargoStatusDtoAssembler.java)
- Duplicated block (33 lines × 3) (src/main/java/org/eclipse/cargotracker/infrastructure/messaging/jms/DeliveredCargoConsumer.java)
- Duplicated block (7 lines × 2) (src/main/java/org/eclipse/cargotracker/application/util/SampleDataGenerator.java)
- Duplicated block (8 lines × 2) (src/main/java/org/eclipse/cargotracker/application/util/SampleDataGenerator.java)
- Duplicated block (8 lines × 3) (src/main/java/org/eclipse/cargotracker/application/util/SampleDataGenerator.java)
- Duplicated block (8 lines × 3) (src/main/java/org/eclipse/cargotracker/application/util/SampleDataGenerator.java)
- Duplicated block (8–9 lines × 5) (src/main/java/org/eclipse/cargotracker/application/util/SampleDataGenerator.java)
- Duplicated block (9 lines × 2) (src/main/java/org/eclipse/cargotracker/application/util/SampleDataGenerator.java)
- Duplicated block (9 lines × 2) (src/main/java/org/eclipse/cargotracker/application/util/SampleDataGenerator.java)
- Edited copy of a member (27 corresponding lines) (src/main/java/org/eclipse/cargotracker/interfaces/booking/facade/internal/assembler/CargoStatusDtoAssembler.java)
- High: security finding (details withheld)
- High: security finding (details withheld)
- High: security finding (details withheld)
- …and 87 more
Written by watchdog.canine.dev from the codebase's own history, inside the signed delivery this page is composed from.
Survey your own repository
eclipse-ee4j/cargotracker was measured the same way every project in this corpus was: the same rubric, at a pinned commit, with the result published in full. Point a surveyor at a repository you know and see whether you agree with it.
About this page
- The score is its most recent published measurement, taken on 21 September 2026 at a pinned commit. It is not a live figure and does not change until the project is measured again.
- Measured at commit 4d26b8fd59a7f0bac6e42d5d19a8cd1b379353b5 — the exact code this score is about.
- Scored under rubric-2026.09.15 — the same rubric and the same method as every other entry in this index.
- Measured by watchdog.canine.dev using codehealth-analyzer preprod-fa71c66cabd8.