Repository navigation
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-mapis now a parent POM overipf-commons-map-core, which holds the model and the typed Mappings API that returnsOptional. Each mapping file format has its own module:ipf-commons-map-xml,ipf-commons-map-yaml, andipf-commons-map-groovyfor legacy.mapscripts. A FHIR ConceptMap loader, including versioned ConceptMaps, lives inipf-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.typeinstead ofIdentifier.use(CP-ITI-1328-01). 4.2.3 remains backwards-compatible. The Target Communities Option (CP-ITI-1326-02) is supported through thehomeCommunityIdextension on DocumentReference and List, and through thetargetCommunityIdListsearch 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.
MessageTracerhas 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
DomBuildersPooldefects 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
RequestDetailspopulated with the data of the previous page request (#525). SslAwareApacheRestfulClient5Factorynow honors a configuredHostnameVerifiersuch asNoopHostnameVerifier. 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#getClientExecutableare 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-*andipf-fhir-stu3-spring-boot-starterno longer exist. - The deprecated
ContentMapandDomBuildersPoolhave been removed (#516). MessageTracerhas 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) andDynamicExtensionConfigurerare 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