Skip to content

Releases: lbkulinski/cta4j-java-sdk

cta4j-api v4.0.3

14 Apr 23:29
c220042

Choose a tag to compare

Changed

  • Bumped tools.jackson.core:jackson-databind from 3.1.13.1.2

cta4j-api v4.0.2

06 Apr 19:06
c4bdb46

Choose a tag to compare

Changed

  • Updated project URL from cta4j.com to https://github.com/lbkulinski/cta4j-java-sdk.
  • Bumped tools.jackson.core:jackson-databind from 3.1.03.1.1

cta4j-api v4.0.1

15 Mar 21:02

Choose a tag to compare

Changed

  • Updated project URL from cta4j.app to cta4j.com.
  • Excluded internal packages from published Javadoc.

cta4j-api v4.0.0

15 Mar 19:26
94de041

Choose a tag to compare

Added

  • JSpecify nullability annotations (using @NullMarked / @Nullable) on public API types and methods for improved
    nullability contracts.
  • org.jspecify:jspecify:1.0.0 dependency 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.
  • 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.

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-databind from 3.0.43.1.0
  • Bumped org.jetbrains:annotations from 26.0.2-126.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/TrainApi and 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

30 Dec 19:14
f5e0369

Choose a tag to compare

Changed

  • Bumped tools.jackson.core:jackson-databind from 3.0.23.0.3
  • Bumped org.apache.httpcomponents.client5:httpclient5 from 5.5.15.6
  • Bumped org.apache.maven.plugins:maven-source-plugin from 3.3.13.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

29 Nov 03:02
1d43f12

Choose a tag to compare

Changed

  • Changed edge case where coordinates could be null in Follow Train API responses.
    • If both the position is null and the arrivals list is empty, an empty Optional is returned.

cta4j-api v3.0.2

29 Nov 02:15
2cca66d

Choose a tag to compare

Fixed

  • Fixed edge case where coordinates could be null in Follow Train API responses.

cta4j-api v3.0.1

28 Nov 22:46
2988717

Choose a tag to compare

Changed

  • Separated GitHub Actions workflows for build and release.
  • Corrected LICENSE file copyright.
  • Migrated from jackson-databind 2.20.1 to 3.0.2.

cta4j-java-sdk v3.0.0

18 Oct 18:03
836358d

Choose a tag to compare

Added

  • A new type UpcomingBusArrival representing upcoming bus arrival information.
  • A new type BusCoordinates representing bus coordinates (latitude, longitude, heading).
  • An arrivals field of type List<UpcomingBusArrival> has been added to the Bus class to provide information about upcoming bus arrivals.

Changed

  • BREAKING CHANGE: Organized classes into packages by functionality:
    • com.cta4j.bus for bus-related classes
    • com.cta4j.train for train-related classes
    • com.cta4j.common for shared/common classes
  • BREAKING CHANGE: Public concrete client classes replaced by interfaces with a fluent Builder API (e.g. BusClient, TrainClient)
    • Create clients via XxxClient.builder()...build() instead of instantiating implementation classes.
  • BREAKING CHANGE: The Bus class has moved latitude, longitude, and heading fields into a field of type BusCoordinates.
  • Implementation classes are now internal and may be excluded from source/javadoc artifacts.

cta4j-java-sdk v2.0.2

18 Oct 04:28
a749bab

Choose a tag to compare

Removed

  • ch.qos.logback:logback-classic:1.5.19
  • ch.qos.logback:logback-core:1.5.19