IPF 4.4 comes with some major changes that must be considered when upgrading from IPF 4.3.
The underlying NIO component of IHE MLLP components was changed from Apache Mina to Netty, using camel-netty instead of camel-mina as Camel component. Although the inbound and outbound data formats remained the same, some changes were necessary when configuring the endpoint:
- The endpoint parameters
optionProviderhave been renamed to
iheOptionProvider, respectively, for all affected components, because
optionsis already used in camel-netty.
cachedAddressparameter (for caching InetAddress instances after a DNS lookup) is not available with camel-netty. This parameter was useful for container setups where hosts tend to change their virtual IPs. Netty uses the JDK resolution mechanism that can be configured by setting the security property
java.securityto a few seconds only (defaults to 30s usually). You can override this value by providing this in a separate properties file and start your JVM with the system property
-Djava.security.properties=<URL of file>.
hl7codecbean (for the MLLP codec) must be replaced by
hl7encoderbeans of type
ipf-hl7-spring-boot-starterhas been been updated accordingly.
A new feature is connection multiplexing. Concurrent MLLP requests and responses can be transferred over a single connection; responses are associated with their requests via a correlation strategy that relies an MSH-10/MSA-2 values. This can be achieved by setting
producerPoolEnabled=false&correlationManager=#hl7Correlation on the producer side, where hl7CorrelationManager is a bean instance of type
Starting with this release, the value in field MSH-18 can determine the charset used for parsing and rendering HL7 messages. The
hl7decoder bean must be configured to pass on the decoded MLLP message as a byte array to the HL7 parser; this can be achieved by setting the property
Interceptor*classes in the package
org.openehealth.ipf.platform.camel.ihe.coredon’t use an
Endpointtype parameter anymore.