Skip to content

Conversation

@vpaturet
Copy link
Contributor

@vpaturet vpaturet commented Feb 3, 2026

Summary

Upgrade the NeTEx schema from version 1.16 to 2.0.

Changes

JAXB Bindings (bindings.xjb)

  • Updated XPath for TariffZone_TariffZone_Dummy (renamed in 2.0)
  • Removed obsolete HeadwayJourneyGroupGroup/Description binding (element removed in 2.0)
  • Added bindings to resolve ObjectFactory name collisions for bookingArrangements vs BookingArrangements in multiple XSD files

Test Updates

Updated all tests for NeTEx 2.0 API changes:

  • MultilingualString now uses mixed content model (withContent()/getContent() instead of withValue()/getValue())
  • Collection getters renamed with _Dummy suffix (e.g., getLine_()getLine_Dummy())
  • StopPlacesInFrame_RelStructure now returns List<StopPlace> directly instead of wrapped JAXBElements
  • AllVehicleModesOfTransportEnumeration renamed to AllPublicTransportModesEnumeration
  • PublicCode and PrivateCode now use structure types with .getValue() method
  • Replaced removed DatedCall class tests with AvailabilityCondition tests
  • Added helper method getStringValue(MultilingualString) for extracting text from mixed content

Testing

All 18 tests pass with mvn clean install -Dexec.skip=true

@vpaturet vpaturet force-pushed the upgrade-netex-2.0 branch 2 times, most recently from 11e1aef to 0e84185 Compare February 3, 2026 00:45
@sonarqubecloud
Copy link

sonarqubecloud bot commented Feb 3, 2026

vpaturet added a commit to entur/OpenTripPlanner that referenced this pull request Feb 3, 2026
This update adapts OTP to the breaking changes in netex-java-model 3.0.0-SNAPSHOT
based on the NeTEx 2.0 schema. Key changes include:

Breaking API changes addressed:
- MultilingualString: Uses mixed content model - getContent() returns
  List<Serializable> instead of getValue() returning String. Added
  MultilingualStringMapper.getStringValue() helper method.
- Enum rename: AllVehicleModesOfTransportEnumeration renamed to
  AllPublicTransportModesEnumeration.
- Collection getter naming: Some methods renamed with _Dummy suffix
  (e.g., getLine_Dummy(), getRoute_Dummy()).
- PublicCode/PrivateCode: Now return structure types requiring .getValue()
  to get String.
- StopPlacesInFrame_RelStructure: Now returns List<StopPlace> directly
  instead of wrapped JAXBElements.
- DatedServiceJourney: getJourneyRef() returns single element instead of
  List, uses getReplacedJourneys() for replacements.
- ServiceAlterationEnumeration: New PROVISIONAL value added, mapped to
  PLANNED.

See: entur/netex-java-model#270
- Update bindings.xjb for NeTEx 2.0 schema changes:
  - TariffZone_ renamed to TariffZone_Dummy
  - Remove obsolete HeadwayJourneyGroupGroup/Description binding
  - Add bindings to resolve ObjectFactory collisions for bookingArrangements

- Update tests for NeTEx 2.0 API changes:
  - MultilingualString now uses mixed content (withContent/getContent)
  - Collection getters renamed with _Dummy suffix
  - StopPlacesInFrame returns List<StopPlace> directly
  - AllVehicleModesOfTransportEnumeration -> AllPublicTransportModesEnumeration
  - PublicCode/PrivateCode now use structure types
  - Replace removed DatedCall tests with AvailabilityCondition tests
  - Add helper method getStringValue() for MultilingualString
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants