Skip to content

v6.0.0

Latest

Choose a tag to compare

@ohr ohr released this 13 Oct 10:38
· 5 commits to master since this release

See https://github.com/oehf/ipf/milestone/43?closed=1 for all fixed issues

IPF 6.0.0 is a major release. It moves IPF to Spring Boot 4.1 and Jakarta EE 11 and removes FHIR STU3 support. See the 6.0 Migration Guide for details.

Highlights

  • Spring Boot 4.1, Jakarta EE 11, Jackson 3: IPF and its major dependencies (Camel, CXF, Spring Boot, HAPI FHIR) are aligned with Jakarta EE 11. JDK 17 is still the minimum; IPF is also tested on 21 and 25 (#513).
  • New mapping service (#520): ipf-commons-map is now a parent POM over ipf-commons-map-core, which holds the model and the typed Mappings API that returns Optional. Each mapping file format has its own module: ipf-commons-map-xml, ipf-commons-map-yaml, and ipf-commons-map-groovy for legacy .map scripts. A FHIR ConceptMap loader, including versioned ConceptMaps, lives in ipf-commons-ihe-fhir-r4-core. A mapping can also delegate to another mapping under its own name.
  • PIXm Patient Identity Feed FHIR [ITI-104] (pixm-iti104), with translators to and from PIX Feed V2 [ITI-8] (#368).
  • MHD 4.2.4 (#518): entryUUID and uniqueId Identifiers are now told apart by Identifier.type instead of Identifier.use (CP-ITI-1328-01). 4.2.3 remains backwards-compatible. The Target Communities Option (CP-ITI-1326-02) is supported through the homeCommunityId extension on DocumentReference and List, and through the targetCommunityIdList search parameter of [ITI-66] and [ITI-67].
  • Camel Telemetry: IPF ships SpanDecorators for the IHE components, and HL7v2 trace propagation now follows the camel-telemetry SPI. MessageTracer has been removed in favor of Camel telemetry (#476).
  • FHIR Binary streaming uploads via Base64SplittingFilter (#517).

Other changes and fixes

  • XML processing hardened against XXE and SSRF. Object pools get idle eviction, and two DomBuildersPool defects are fixed (#516).
  • ATNA audit rules updated to the latest DICOM CPs. Netty-based auditing is safer and more efficient (#513).
  • URI schemes and URN namespace identifiers are case-insensitive, as RFC 3986 and RFC 8141 require (#526).
  • HL7v2 DSL fixes: Groovy and Kotlin DSL behavior has been aligned (#527).
  • Paging of FHIR search results now uses a copy of RequestDetails populated with the data of the previous page request (#525).
  • SslAwareApacheRestfulClient5Factory now honors a configured HostnameVerifier such as NoopHostnameVerifier. Before, the TLS handshake rejected the hostname before the verifier was consulted (#524).
  • A lot of needless generic type parameters were removed. The return types of ClientRequestFactory#getClientExecutable are more specific.

Breaking changes and removals

  • FHIR STU3 support has been removed (#519). The modules ipf-commons-ihe-fhir-stu3-*, ipf-platform-camel-ihe-fhir-stu3-* and ipf-fhir-stu3-spring-boot-starter no longer exist.
  • The deprecated ContentMap and DomBuildersPool have been removed (#516).
  • MessageTracer has been removed (#476).
  • Composite mappings and typed mappings of the old mapping service are gone. The Groovy behavior for empty values ('') has changed (#520).

Deprecations

  • The Configurer SPI is deprecated for removal (#521). Holders and registrars now collect their own contributions from the Spring application context. Configurer, OrderedConfigurer, SpringConfigurationPostProcessor, CustomMappingsConfigurer, CustomModelClassFactoryConfigurer (Java and Kotlin) and DynamicExtensionConfigurer are no longer needed and will be removed in the next major release.

Dependency updates

Camel 4.22.1, CXF 4.2.4, Spring Boot 4.1.1, HAPI FHIR 8.12.1, HAPI HL7v2 2.6.0, Groovy 5.1.3, Kotlin 2.4.21, Jackson 3.1.7, Woodstox 7.2.2, Saxon-HE 13.0, ipf-gazelle 3.5.0

Full Changelog: ipf-5.3.0...ipf-6.0.0