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