Hi Folks,

Here is the progress update about the $Subject so far. (For more details
about the project approach refer [0])

I've attached the initial implementation of EIP library at [0].

As per the discussion, these are tasks I came across.

*Task 1*
Provided a patch [1] to define whether the template parameter is optional
or not and define parameter default value.

*Task 2*
As of now, following patterns are implemented.

- Recipient List
Forward the message to all channels associated with the defined set of
recipients.
parameters - recipient_list

- Callout Block
Blocks external service invocation during mediation. And useful in
scenarios such as service chaining. Here I had to write a class mediator
for the EIP library to support xpath for serviceURL in Callout mediator. As
default values are assigned to source & target xpaths, one can simply
utilize this pattern by just defining serviceURL.
parameters - service_URL
                   [action]
                   [source_xpath | source_key]
                   [target_xpath | target_key]

- Splitter
This break out the composite message into a series of individual messages.
parameters - iterate_exp
                   [attach_path]
                   endpoint_url
                   [attach_path_enabled]

- Aggregator
Builds a single message distilled from the individual messages.
parameters - aggregator_exp
                    oncomplete_seq_enabled]
                    [sequence_ref]

- SplitterAggregator
Provides the combined functionality of Splitter & Aggregator patterns.
parameters - iterate_exp
                   [attach_path]
                   endpoint_url
                   [attach_path_enabled]
                   aggregator_exp
                   [oncomplete_seq_enabled]
                   [sequence_ref]

*Task 3*
Created sample scenarios for all above patterns. Later those will be added
to the documentation.
ex:- Service Chaining via Callout block

*Task 4*
Wrote a test case for Recipient List lib pattern. Writing Test cases for
other patterns are in progress.

In further steps several other well known EIP ( Content-Based Router, Dead
Letter Channel, Wire Tap, Scatter-Gather, etc..) will be implemented. And
samples and Test integration into Synapse for EIP libraries will also be
added.

Feedback / Suggestions are much appreciated.

[0] https://issues.apache.org/jira/browse/SYNAPSE-745
[1] https://issues.apache.org/jira/browse/SYNAPSE-884

Thanks,
Malith

Reply via email to