Petals-SE-EIP 2.5

compared with
Key
This line was removed.
This word was removed. This word was added.
This line was added.

Changes (84)

View Page History

If an invoked service returns a {{Fault}} or an {{Error}} status, the behavior of process can be configured:
* The process can terminated and the {{Fault}} or the {{Error}} is sent back to the original consumer
* The process can continue, ignoring the {{Fault}} or the {{Error}} received.

{center}{*}Configuration of a Service Unit to provide a service (Aggregator)*{center}
{table-plus}

|| Parameter || Description || Default || Required by pattern ||
| eip | The name of the pattern to execute : {{aggregator}} | \- {center}-{center} | All |
| test | XPath condition applied on the message to complete or not the sequence by the invocation of the targeted service | \- {center}-{center} | aggregator \\
splitter \\
router \\
dynamic-router |
| aggregator-correlation | XPath condition that is applied on the incoming message to correlate them together | \- {center}-{center} | aggregator |
{table-plus}

{center} !scattergather.gif!{center}

{center}*Configuration of a Service Unit to provide a service (EIP)*{center}
{table-plus}
|| Parameter || Description || Default ||
| eip | The name of the pattern to execute : {{scatter-gather}} | {center}-{center} |








|| Parameter || Description || Default || Required by pattern ||
| eip | The name of the pattern to execute : {{scatter-gather}} | \- | All |
| fault-robust | If true, a fault thrown by a target exchange don't stop the process and don't change the original status to {{FAULT}} | {center}false{center} | scatter-gather \\
splitter |
| aggregator-correlation | If true, an exception thrown by a targer exchange don't stop the process and don't change the original exchange status to {{ERROR}}. | {center}false{center} | scatter-gather \\
spliter |
{table-plus}


The EIP Component forwards the message to all the services referenced in the consumes sections. The EIP component waits for all the responses from these services, and aggregates them. The aggregation is returned to the original consumer :

{center} !routingslip.gif!{center}

{center}*Configuration of a Service Unit to provide a service (EIP)*{center}
{table-plus}
|| Parameter || Description || Default ||
| eip | The name of the pattern to execute : {{routing-slip}}. | {center}-{center} |








|| Parameter || Description \\ || Default \\ || Required by pattern \\ ||
| eip | The name of the pattern to execute : {{routing-slip}}. \\ | \- | all |
| fault-to-exception \\ | If true, a fault received from the target service is transformed to an exception into the source exchange. \\ | {center}false{center} | bridge \\
router \\
dynamicrouter \\
routing-slip \\
dispatcher |
{table-plus}

</jbi:jbi>{code}
\\
{note:title=Caution}{{{}consumes}} sections cardinality is [1-n|1-n]{note}

{note}
\\
{note:title=Caution}by default, the {{process}} stops when a Fault is returned by the provider if it doesn't use the InOnly Message Exchange Pattern{note}
\\
{note:title=Caution}by default, the process stops when an Exception is returned by the provider{note}
\\
{note:title=Caution}message exchange pattern of all the target exchanges, except the last, is {{InOut{}}}{note}
\\
{note:title=Caution}all the Message Exchange Pattern are accepted for the source exchange{note}


h3. Wire-Tap Pattern

{center} !wiretap.gif!{center}

{center}*Configuration of a Service Unit to provide a service (EIP)*{center}
{table-plus}
|| Parameter || Description || Default ||
| eip | The name of the pattern to execute {{wire-tap}} | {center}-{center} |








|| Parameter || Description \\ || Default \\ || Required by pattern \\ ||
| eip | The name of the pattern to execute :&nbsp;{{wire-tap}} \\ | \- | All |
| wiretap-way | Exchange way on which the message should be copied and sent to the monitoring service. \\
Values are request (copy IN), response (copy OUT/Fault),&nbsp;{{request-response}}&nbsp;(copy IN and OUT/Fault),&nbsp;{{request-on-response}}&nbsp;(copy IN after OUT is received; not copied if Fault or Error) \\ | \- | wire-tap |
Values are request (copy IN), response (copy OUT/Fault), {{request-response}} (copy IN and OUT/Fault), {{request-on-response}} (copy IN after OUT is received; not copied if Fault or Error) | {center}-{center} |
{table-plus}
\\
</jbi:jbi>{code}

{note:title=Caution}
{{consumes}} sections cardinality is 2.
{note}
{note:title=Caution}{{consumes}} sections cardinality is 2.{note}
{note:title=Caution}message exchange pattern of the second target exchange, the "monitoring" exchange, is {{InOnly}}{note}
{note:title=Caution}all the Message Exchange Pattern are accepted for the source exchange{note}

{note:title=Caution}
message exchange pattern of the second target exchange, the "monitoring" exchange, is {{InOnly}}
{note}

{note:title=Caution}
all the Message Exchange Pattern are accepted for the source exchange
{note}


h3. Splitter Pattern

{center} !splitter.gif!{center}

{center}*Configuration of a Service Unit to provide a service (EIP)*{center}
{table-plus}
|| Parameter || Description || Default ||
| eip | The name of the pattern to execute : {{splitter}} | {center}-{center} |
| test | XPath condition applied on the message to split the source exchange | {center}-{center} |
| attachment | true to split the source exchange on the attachments, false to split it on the IN content | {center}false{center} |






|| Parameter \\ || Description \\ || Default \\ || ||
| eip \\ | The name of the pattern to execute : {{splitter}} \\ | \- | All |
| test \\ | XPath condition applied on the message to split the source exchange \\ | \- | aggregator \\
splitter \\
router \\
dynamic-router \\
aggregator \\
splitter \\
router \\
dynamic-router |
| attachment \\ | true to split the source exchange on the attachments, false to split it on the IN content | false | splitter |
| fault-robust \\ | If true, a fault thrown by a target exchange don't stop the process and don't change the original exchange status to FAULT | {center}false{center} | scatter-gather \\
splitter |
| exception-robust \\ | If true, an exception thrown by a target exchange don't stop the process and don't change the original exchange status to ERROR | {center}false{center} | scatter |
{table-plus}
\\
The EIP Component acts as an exchange pattern splitter, and allows you to split your message into multiple elements, each of these elements are sent to a specified service. A {{consumes}} section defines the target service. The IN message of the source exchange is splitted with the Xpath expression specified with the parameter 'test'. The list of attachment into the source exchange is splitted file by file if the parameter attachment is true.

{center} !bridge.gif!{center}

{center}*Configuration of a Service Unit to provide a service (EIP)*{center}

{table-plus}
|| Parameter || Description || Default ||
| eip | The name of the pattern to execute {{bridge}} | {center}-{center} |








|| Parameter \\ || Description \\ || Default \\ || Required by pattern \\ ||
| eip \\ | The name of the pattern to execute:&nbsp;{{bridge}} \\ | \- | All |
| fault-to-exception \\ | if true, a fault&nbsp;{{received}}&nbsp;from the target service is transformed to an exception into the source exchange \\ | false | bridge \\
router \\
dynamic-router \\
routing-slip \\
dispatcher |
| fault-to-exception | if true, a fault received from the target service is transformed into an exception and set to the 'orginal' exchange | false |
{table-plus}
\\
The EIP Component acts as an exchange pattern bridge, and allows you, for instance, to transform an InOnly invocation pattern into an InOut one. It is used, for example, when the consumer of a service "MyService" sends its request as InOnly, and the provider is waiting an {{InOut}} message. Define in a {{consumes}} section the service you want to call, and the EIP component will match the incoming and outgoing exchange pattern as better as possible. So :
* If the source exchange needs a response (InOut or InOptionalOut patterns) and no response are received (InOnly,
{center} !router.gif!{center}

{center}*Configuration of a Service Unit to provide a service (EIP)*{center}

{table-plus}
|| Parameter || Description || Default ||
| eip | The name of the pattern to execute : {{router}} | {center}-{center} |
| test | XPath condition applied on the message to choose the target service | {center}-{center} |







|| Parameter \\ || Description \\ || Default \\ || Required by pattern \\ ||
| eip | The name of the pattern to execute : {{router}} \\ | \- | All |
| test | XPath condition applied on the message to choose the target service \\ | \- | aggregator \\
splitter \\
router \\
dynamic-router \\ |
| fault-to-exception \\ | if true, a fault received from the target service is transformed to an exception into the source exchange \\ | false | bridge \\
router \\
dynamic-router \\
routing-slip \\
dispatcher \\ |
| fault-to-exception | if true, a fault received from the target service is transformed into an exception and set to the 'original' exchange | false |
{table-plus}

</jbi:services>
</jbi:jbi>{code}
{note:title=Caution}{{{}consumes}} sections cardinality is the number of conditions plus 1 (the last one is the default service).{note}
{note:title=Caution}
{note:title=Caution}the last {{consumes}} section is the default service to invoke if no condition has been fullfilled.{note}
{note}

h3. Dynamic Router Pattern
{center} !dynamicrouter.gif!{center}

{center}*Configuration of a Service Unit to provide a service (EIP)*{center}
{table-plus}
|| Parameter || Description || Default ||
| eip | The name of the pattern to execute : {{dynamic-router}} | {center}-{center} |
| test | XPath condition applied on the message to choose the target service | {center}-{center} |







|| Parameter || Description || Default || Required by pattern ||
| eip | The name of the pattern to execute : {{dynamic-router}} | \- | All |
| test | XPath condition applied on the message to choose the target service | \- | aggregator \\
splitter \\
router \\
dynamic-router \\ |
| fault-to-exception \\ | if true, a fault received from the target service is transformed to an exception into the source exchange | false | bridge \\
router \\
dynamic-router \\
routing-slip \\
dispatcher \\ |
| fault-to-exception | if true, a fault received from the target service is transformed into an exception and set to the 'original' exchange | false |
{table-plus}
\\
</jbi:jbi>{code}

{note:title=Caution}
{note:title=Caution}{{consumes}} sections cardinality is the number of conditions plus 2 2{note}
{note}
{note:title=Caution}the first {{consumes}} section is the service to invoke to get the message to evaluate. So its pattern is {{InOut}}{note}
{note:title=Caution}the last {{consumes}} section is the default service to invoke if no condition has been fullfilled.{note}

{note:title=Caution}
the first {{consumes}} section is the service to invoke to get the message to evaluate. So its pattern is {{InOut}}
{note}

{note:title=Caution}
the last {{consumes}} section is the default service to invoke if no condition has been fullfilled.
{note}

h3. Dispatcher Pattern

{center} !dispatcher.gif!{center}

{center}*Configuration of a Service Unit to provide a service (EIP)*{center}
{table-plus}
|| Parameter || Description || Default ||
| eip | The name of the pattern to execute : {{dispatcher}}. | {center}-{center} |








|| Parameter || Description || Default || Required by pattern ||
| eip | The name of the pattern to execute : {{dispatcher}}. | \- \\ | All |
| fault-to-exception | if true, a fault received from the target service is transformed to an exception into the source exchange. | false \\ {center}false{center} | bridge \\
router \\
dynamic-router \\
routing-slip \\
dispatcher \\ |
{table-plus}
\\
The EIP Component dispatches the incoming IN message toward the configured service in consumes sections. No response message is returned.

The component can be extended by any contributor to provide the support of new EIP pattern.


To add a new pattern, provide a Java class implementing the interface {{Pattern}} :




|| Parameter || Description || Default || Required ||
| your-pattern-name | Name of the java class implementing your pattern. The name of the pattern at runtime will be the one you give as parameter name | {center}\-{center} | {center}No{center} |