Releases: lbkulinski/cta4j-java-sdk
Releases · lbkulinski/cta4j-java-sdk
cta4j-api v4.0.3
Changed
- Bumped
tools.jackson.core:jackson-databindfrom 3.1.1 → 3.1.2
cta4j-api v4.0.2
Changed
- Updated project URL from
cta4j.comtohttps://github.com/lbkulinski/cta4j-java-sdk. - Bumped
tools.jackson.core:jackson-databindfrom 3.1.0 → 3.1.1
cta4j-api v4.0.1
Changed
- Updated project URL from
cta4j.apptocta4j.com. - Excluded internal packages from published Javadoc.
cta4j-api v4.0.0
Added
- JSpecify nullability annotations (using
@NullMarked/@Nullable) on public API types and methods for improved
nullability contracts. org.jspecify:jspecify:1.0.0dependency to provide these annotations.- A new composed Bus API surface (
BusApi) that exposes domain-specific sub-APIs (e.g. routes, stops, vehicles,
predictions, detours) instead of a flat client.- Dedicated API interfaces for each Bus domain (e.g.
RoutesApi,StopsApi,VehiclesApi,PredictionsApi,
DetoursApi, etc.), improving discoverability and separation of concerns. - Clear separation between public domain models, internal wire models, and implementation details, enabling safer
evolution of the SDK.
- Dedicated API interfaces for each Bus domain (e.g.
- A new composed Train API surface (
TrainApi) that similarly organizes train-related functionality into
domain-specific sub-APIs.- Dedicated API interfaces for each Train domain (e.g.
StationsApi,ArrivalsApi,FollowApi, etc.), improving
discoverability and separation of concerns. - Clear separation between public domain models, internal wire models, and implementation details, enabling safer
evolution of the SDK.
- Dedicated API interfaces for each Train domain (e.g.
Changed
- Major refactor of the Bus/Train API architecture, replacing the previous flat
Bus/TrainClient-style interface with
a hierarchical, capability-based API. - Method names across the Bus/Train API were aligned to more consistent, domain-driven naming conventions.
- Error-handling behavior for some Bus/Train endpoints was standardized to better reflect CTA API semantics.
- Package structure was reorganized to clearly distinguish public APIs, internal implementations, and wire / CTA
response models. - Public APIs are now explicitly null-annotated, tightening contracts and surfacing potential misuse at compile time.
- Bumped
tools.jackson.core:jackson-databindfrom 3.0.4 → 3.1.0 - Bumped
org.jetbrains:annotationsfrom 26.0.2-1 → 26.1.0
Removed
- Deprecated or legacy Bus/Train client entry points that no longer fit the new API model.
Breaking Changes ⚠️
- This release is not source-compatible with earlier versions.
- Consumers must migrate from the previous Bus/Train client interfaces to the new
BusApi/TrainApiand its sub-APIs. - Method signatures, return types, and package names for Bus/Train-related APIs have changed as part of the refactor.
cta4j-api v3.0.4
Changed
- Bumped
tools.jackson.core:jackson-databindfrom 3.0.2 → 3.0.3 - Bumped
org.apache.httpcomponents.client5:httpclient5from 5.5.1 → 5.6 - Bumped
org.apache.maven.plugins:maven-source-pluginfrom 3.3.1 → 3.4.0 - BREAKING CHANGE: Removed
module-info.java, dropping explicit JPMS module support. The library is now an automatic module, which may change the effective module name and impact consumers using the Java module system.
cta4j-api v3.0.3
Changed
- Changed edge case where coordinates could be null in Follow Train API responses.
- If both the position is
nulland the arrivals list is empty, an emptyOptionalis returned.
- If both the position is
cta4j-api v3.0.2
Fixed
- Fixed edge case where coordinates could be null in Follow Train API responses.
cta4j-api v3.0.1
Changed
- Separated GitHub Actions workflows for build and release.
- Corrected LICENSE file copyright.
- Migrated from
jackson-databind2.20.1to3.0.2.
cta4j-java-sdk v3.0.0
Added
- A new type
UpcomingBusArrivalrepresenting upcoming bus arrival information. - A new type
BusCoordinatesrepresenting bus coordinates (latitude, longitude, heading). - An
arrivalsfield of typeList<UpcomingBusArrival>has been added to theBusclass to provide information about upcoming bus arrivals.
Changed
- BREAKING CHANGE: Organized classes into packages by functionality:
com.cta4j.busfor bus-related classescom.cta4j.trainfor train-related classescom.cta4j.commonfor shared/common classes
- BREAKING CHANGE: Public concrete client classes replaced by interfaces with a fluent
BuilderAPI (e.g.BusClient,TrainClient)- Create clients via
XxxClient.builder()...build()instead of instantiating implementation classes.
- Create clients via
- BREAKING CHANGE: The
Busclass has moved latitude, longitude, and heading fields into a field of typeBusCoordinates. - Implementation classes are now internal and may be excluded from source/javadoc artifacts.
cta4j-java-sdk v2.0.2
Removed
ch.qos.logback:logback-classic:1.5.19ch.qos.logback:logback-core:1.5.19