camel-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "ASF GitHub Bot (JIRA)" <>
Subject [jira] [Commented] (CAMEL-9416) Creation of Camel-MLLP component
Date Mon, 28 Dec 2015 18:40:49 GMT


ASF GitHub Bot commented on CAMEL-9416:

GitHub user hqstevenson opened a pull request:

    CAMEL-9416 - Added camel-mllp component

    New PR with a single commit for the camel-mllp component

You can merge this pull request into a Git repository by running:

    $ git pull CAMEL-9416

Alternatively you can review and apply these changes as the patch at:

To close this pull request, make a commit to your master/trunk branch
with (at least) the following in the commit message:

    This closes #748
commit ad8a6981fa6bcbbe6d330778c133b13555774201
Author: Quinn Stevenson <>
Date:   2015-12-28T18:38:14Z

    Added camel-mllp component


> Creation of Camel-MLLP component
> --------------------------------
>                 Key: CAMEL-9416
>                 URL:
>             Project: Camel
>          Issue Type: New Feature
>    Affects Versions: 2.16.1
>            Reporter: Jamie goodyear
> The camel-mllp component is specifically designed to handle the nuances of the MLLP protocol
and provide the functionality required by Healthcare providers to communicate with other systems
using the MLLP protocol.
> The component is capable of handling both byte[] and String payloads which allows using
other HL7 Libraries (i.e. HAPI) to parse the messages. When String payloads are specified,
the component will use the systems default Charset for encoding/decoding, but this can be
> The component provides a simple URI for configuring MLLP endpoints: MLLP-Producers: to(
"mllp://:" ) MLLP-Consumers: from("mllp://:) to listen on a specific address from("mllp://port")
to listen on all local addresses
> MLLP-Producers also interrogate the HL7 Acknowledgment received from the external system
and if a negative acknowledgment is received, the producer sets an exception on the exchange
indicating the type of negative acknowledgement that was received (i.e. a HL7 Application
Reject Acknowledgement or a HL7 Application Error Acknowledgement). This enables the use of
Camel Redelivery Policies to configure redelivery attempts and routing erroneous messages
to alternate endpoints for analysis.
> MLLP-Consumers will, by default, automatically generate an acknowledgement (a HL7 Application
Accept Acknowledgment for successfully processed messages, or a HL7 Application Error Acknowledgement
for messages where an exception is generated). This behaviour can be disabled with the autoAck=false
URI parameter, which allows the user to generated their own HL7 Acknowledgment.
> The component also provides a Camel Processor that is capable of generating HL7 Acknowledgements.
Therefore, the HAPI is not required to generate HL7 Acknowledgements - however, it can be
used if desired.
> By default, the processor will generate a HL7 Application Accept Acknowledgement if there
is not an exception on the Camel Exchange - otherwise it will generate a HL7 Application Error
Acknowledgement. The generated acknowledgement is placed in the "Out" Message of the Exchange
by default in order to preserve the original HL7 message for later processing (i.e. log the
HL7 message and the acknowledgment together).
> Since the MLLP protocol does not typically use a large number of concurrent connections,
the camel-mllp component uses a simple thread-per-connection model based an standard Java
Sockets. This keeps the implementation simple, and also eliminates the dependencies on other
camel components.
> An initial code base has been developed here:

This message was sent by Atlassian JIRA

View raw message