IPF is based on Apache Camel. For an overview of Camel's rich feature set (which can be fully used in IPF applications) refer to the project's integration patterns and integration components pages.
With IPF you define integration routes with the Groovy programming language. It is more than a mere usage of Camel's domain-specific language (internal DSL or fluent API) inside Groovy: Camel's native DSL has been extended to support e.g. the usage of closures (for inline definitions of message processors, routing rules ...) and also provides a DSL extension mechanism to define custom extensions to the Camel DSL.
The DSL extension mechanism is a Groovy meta-programming-based mechanism for defining new DSL elements to be used in integration routes. This is especially useful if you want to provide custom language elements for re-occurring message processing patterns or if you want to design a project-specific message processing DSL (e.g. one that is related to the HL7 domain).
These are domain-neutral message processors and DSL extensions usable for general-purpose message processing. The core features also enhance existing Camel DSL elements for usage with Groovy-specific language elements such as closures. For XML message processing there is special Groovy XML support.
Enables the deployment of IPF components (bundles) to OSGi platforms. IPF service bundles register platform services at the OSGi service registry for consumption by IPF applications. Extender bundles control the activation of DSL extensions inside an OSGi environment. A reference implementation of IPF on top of Eclipse Equinox is available as IPF runtime.
An infrastructure for unified publishing of system-events and application-events. Subscriber components can be configured to translate application events to e.g. Atom/RSS feeds, log files or IHE ATNA-compliant log servers.
An infrastructure for including platform-independent message processing libraries into platform-specific message processing routes. An alternative is Camel's bean integration mechanism.
Maven archetypes for most commonly used IPF project types, ranging from simple embedded integration solutions to cluster configurations supporting high-availability scenarios. Usage examples of IPF features are provided as well.
Upgrade notes
IPF 1.6.0 now uses Camel 1.6.0. Please read the Camel 1.6.0 release notes to see if any API breakings or known issues affect your existing IPF applications.
With IPF 1.6.0 new application configuration guidelines exist. For a comparison of these new guidelines to those that have been established with IPF 1.5 refer to the consiguration changes page.
The inOnly DSL extension provided by platform-camel-core has been removed because it is now natively provided by Camel 1.6.0.
Known issues
IPF 1.6.0 now uses Spring 2.5.6 (included via Camel 1.6.0). This version has a major bug in the spring-jms component that affects routes that use the Camel JMS component. This bug may cause IPF applications to hang in shutdown phases. So far, we didn't observe any issues during normal operations of JMS-based routes.
Further notes
Javadocs for Groovy sources have been generated from Java 'stubs' which have been derived from the Groovy sources via the gmaven-plugin.
Source cross-references also include Java 'stubs' which have been derived from the Groovy sources. These sources do not represent the logic implemented in the Groovy source files.
Source jars deployed to the Open eHealth Maven repository also include Java 'stubs' which have been derived from the Groovy sources. These sources do not represent the logic implemented in the Groovy source files.