The
third project I was given in ESB was an improvement to Message Injector task in
ESB. A task can be scheduled on the ESB to execute periodically. The Message
Injector can inject the message to ESB environment. At the time of assigning
this project ESB Message Injector could only inject the message to the main
sequence and that message should be routed from the main sequence. Therefore it
was hard to run lots of tasks in the same time, because there was no way to
directly inject a message to a sequence other than the main sequence.
My
task was to improve Message Injector task in a way that it can directly send
messages to a given sequence. Message Injector task reads some properties from
its configuration when it is defined. Therefore I added a new property called
“sequence” to task configuration. This sequence property is an optional
requirement. If sequence property is not given in the configuration messages
will be injected to the main sequence. That means the default sequence of the
Message Injector task is the main sequence.
Message Injector Architecture |
I added a new
attribute called “injectSequence” to MessageContext. Getters and setters of the
injectSequence attribute are included in Axis2MessageContext class which is a
child class of MessageContext class. Before Message injector class calls the
injectMessage method in Axis2SyanapseEnvironment class, injectSequence
attribute is set. If the injectSequence attribute is no null, message will be
injected to the sequence specified by injectSequence attribute at the
injectMessage method. Above figure shows what I described above. Below figure shows
the User interface of the Message Injector task with sequence property.
|