|
Key
This line was removed.
This word was removed. This word was added.
This line was added.
|
Changes (28)
View Page History|| Parameter || Description || Default ||
| eip | The name of the pattern to execute : {{aggregator}} | {center}\-{center} |
| eip | The name of the pattern to execute : {{aggregator}} | {center}\-{center} |
{note:title=Caution}Message order is kept from incoming sequence to the outgoing message.{note}
{note:title=Caution}{{{}Consumes}} sections cardinality is \[1-1\].{note}
{note:title=Caution}{{{}Consumes}} sections cardinality is \[1-1\].{note}
{note:title=Caution}All Message Exchange Patterns are accepted for the 'original' consumer{note}
{note:title=Caution}All MEPs are accepted for the 'original' consumer.{note}
h3. Scatter-Gather Pattern
{table-plus}
|| Parameter || Description || Default ||
| eip | The name of the pattern to execute : {{scatter-gather}} | {center}\-{center} |
| eip | The name of the pattern to execute : {{scatter-gather}} | {center}\-{center} |
|| Parameter || Description || Default ||
| eip | The name of the pattern to execute : {{routing-slip}}. | {center}\-{center} |
| eip | The name of the pattern to execute : {{routing-slip}}. | {center}\-{center} |
|| Parameter || Description || Default ||
| eip | The name of the pattern to execute {{wire-tap}} | {center}\-{center} |
| eip | The name of the pattern to execute {{wire-tap}} | {center}\-{center} |
|| Parameter || Description || Default ||
| eip | The name of the pattern to execute : {{splitter}} | {center}\-{center} |
| eip | The name of the pattern to execute : {{splitter}} | {center}\-{center} |
If {{attachment}} parameter is not set, the {{IN}} message of the exchange is split against the Xpath expression specified in the parameter {{test}}.
If {{attachment}} parameter is set to true, The attachments contained in the 'original' exchange is split, element by element, to new messages.
If {{attachment}} parameter is set to true, The attachments contained in the 'original' exchange is split, element by element, to new messages.
Each message splitted is sendt to the configured 'sub-service'.
The aggregation of the responses is returned to the 'original' consumer, in the following form :
{table-plus}
\\
\\
The EIP Component acts as exchange MEP bridge. For instance, it transforms an {{InOnly}} invocation into an {{InOut}} one. It is useful to correlate incompatible MEPs services.
Define in the {{Consumes}} section the 'sub-service' to invoke with its MEP, and the EIP component will match the incoming 'original' exchange against the outgoing exchange patterns as best as possible :
* If the 'original' exchange demands a response ({{InOut}} patterns) and no response are received ({{InOnly}},
* If the 'original' exchange demands a response ({{InOut}} patterns) and no response are received ({{InOnly}},
{{RobustInOnly}} or InOptionalOut patterns), a default response is returned in the following form:
{code:lang=xml}<result xmlns="http://petals.ow2.org/petals-se-eip/bridge">
Bridge: no content into the final target exchange
</result>{code}
Bridge: no content into the final target exchange
</result>{code}
* If the source exchange doesn't accept a response (InOnly or RobustInOnly patterns) and a response is received (InOut or InOptionalOut patterns), the response is ignored.
* If the source exchange doesn't accept a fault (InOnly pattern) and a fault is received (RobustInOnly, InOut or InOptionalOut patterns), the fault is ignored.
* If the source exchange doesn't accept a fault (InOnly pattern) and a fault is received (RobustInOnly, InOut or InOptionalOut patterns), the fault is ignored.
* If the 'original' exchange do not expect a response ({{InOnly}} or {{RobustInOnly}} patterns) and a response is received ({{InOut}} or {{InOptionalOut}} patterns), the response is ignored.
* If the 'original' exchange do not expect a fault ({{InOnly}} pattern) and a fault is received ({{RobustInOnly}}, {{InOut}} or {{InOptionalOut}} patterns), the fault is ignored.
* If the 'original' exchange do not expect a fault ({{InOnly}} pattern) and a fault is received ({{RobustInOnly}}, {{InOut}} or {{InOptionalOut}} patterns), the fault is ignored.
An example of service unit configuration :
An example of Service Unit configuration for the *bridge* pattern :
{code:lang=xml}<?xml version="1.0"?>
</jbi:services>
</jbi:jbi>{code}
</jbi:jbi>{code}
{note:title=Caution}{{{}consumes}} sections cardinality is 1{note}
{note:title=Caution}{{Consumes}} sections cardinality is 1.{note}
h3. Router Pattern
{center} !router.gif!{center}
{center}{*}Configuration {center}*Configuration of a Service Unit to provide a service (EIP)*{center} (Router)*{center}
{table-plus}
|| Parameter || Description || Default ||
| eip | The name of the pattern to execute : {{router}} | {center}\-{center} |
| 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} |
| fault-to-exception | if true, a fault received from the target service is transformed into an exception and set to the 'original' exchange | false |
| fault-to-exception | if true, a fault received from the target service is transformed into an exception and set to the 'original' exchange | false |
| test[] | XPath condition(s) applied on the message to select the 'sub-service' | {center}\-{center} |
| test-operation[] | Operation condition(s) applied on the message to select the 'sub-service' | {center}\-{center} |
| fault-to-exception | If true, a fault received from a 'sub-service' service is transformed to an exception into the 'original' exchange. | {center}false{center} |
| test-operation[] | Operation condition(s) applied on the message to select the 'sub-service' | {center}\-{center} |
| fault-to-exception | If true, a fault received from a 'sub-service' service is transformed to an exception into the 'original' exchange. | {center}false{center} |
{table-plus}
\\
The EIP Component evaluates the list of conditions against the 'original' exchange.
Once a condition is matched, the message is forwarded to the 'sub-service' configured in the {{Consumes}} section at the same position than the condition.
The kind of condition can be either a XPath expression processed against the content of the 'original' {{IN}} message (parameter {{test}}), or a qualified operation processed against the 'original' exchange operation (parameter {{test-operation}}).
If none of the conditions are matched, the exchange is forwarded to the default 'sub-service', referenced in the last {{Consumes}} section.
The EIP Component evaluates the list of conditions against the 'original' exchange.
Once a condition is matched, the message is forwarded to the 'sub-service' configured in the {{Consumes}} section at the same position than the condition.
The kind of condition can be either a XPath expression processed against the content of the 'original' {{IN}} message (parameter {{test}}), or a qualified operation processed against the 'original' exchange operation (parameter {{test-operation}}).
If none of the conditions are matched, the exchange is forwarded to the default 'sub-service', referenced in the last {{Consumes}} section.
The EIP Component evaluates expressions on IN message from the source exchange. Conditions are valuated against the message until a {{true}} result. Then, the exchange is forwarded to the service referenced in the {{consumes}} section matching the position of the condition. If none of the conditions are true, the exchange is forwarded to the service referenced in the last {{consumes}} section (default).
An example of service unit configuration :
An example of service unit configuration :
An example of Service Unit configuration for the *Router* pattern :
{code:lang=xml}<?xml version="1.0"?>
</jbi:services>
</jbi:jbi>{code}
</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}the last {{consumes}} section is the default service to invoke if no condition has been fullfilled.{note}
{note:title=Caution}the last {{consumes}} section is the default service to invoke if no condition has been fullfilled.{note}
{note:title=Caution}{{Consumes}} sections cardinality is the number of defined conditions plus 1.{note}
{note:title=Caution}The last {{Consumes}} section is the default service to invoke if no condition has been matched.{note}
{note:title=Caution}The last {{Consumes}} section is the default service to invoke if no condition has been matched.{note}
h3. Dynamic Router Pattern
{center}{*}Configuration of a Service Unit to provide a service (EIP)*{center}
{table-plus}
{table-plus}
|| Parameter || Description || Default ||
| eip | The name of the pattern to execute : {{dynamic-router}} | {center}\-{center} |
| eip | The name of the pattern to execute : {{dynamic-router}} | {center}\-{center} |
|| Parameter || Description || Default ||
| eip | The name of the pattern to execute : {{dispatcher}}. | {center}\-{center} |
| eip | The name of the pattern to execute : {{dispatcher}}. | {center}\-{center} |
|| 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} |
| 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} |