]
Kevin Conner updated JBESB-2831:
--------------------------------
Fix Version/s: 4.8
Add Exit Point support to BusinessRulesProcessor
------------------------------------------------
Key: JBESB-2831
URL:
https://jira.jboss.org/jira/browse/JBESB-2831
Project: JBoss ESB
Issue Type: Feature Request
Security Level: Public(Everyone can see)
Reporter: Jeff DeLong
Fix For: 4.8
ExitPoint support should be provided with BusinessRulesProcess. This would allow one or
more ExitPoints to be declared in the ESB service configuration. Basically exit point
support would take the object inserted into the exit point from the rule, create a new
ESBMessage, copy the object into the ESB Message based on the exit point configuration,
and send the ESB message to a configured "destination" (similar to a router
configuration).
This would require configuration such as
<action class="org.jboss.soa.esb.actions.BusinessRulesProcessor"
name="OrderCountHistory">
<property name="ruleSet" value="OrderCount.drl"/>
<property name="ruleReload" value="true"/>
<property name="stateful" value="true"/>
<property name="object-paths">
<object-path entry-point="OrderEntryPoint"
esb="body.TheOrderHeader"/>
</property>
<property name="exitPoint value="OrderExitPoint"
<route-to destination-name="x" service-category="y"
service-name="z"/>
<need to either use set-payload-location or object mapper to map location of
added data in new message>
</property>
</action>
The configuration of multiple exit points should be allowed.
A class would then need to be added that implemented the ExitPointInterface and was
instantiated and configured from the BusinessRulesProcessor such as:
public class RulesExitPointServiceInvoker implements ExitPoint
{
// constructor with configuration details
// service category, service name, and object mapping or set-payload-location details
// required method
public void insert(Object object) {
try {
ServiceInvoker invoker = new ServiceInvoker(service-category, service-name);
Message requestMessage;
requestMessage = MessageFactory.getInstance().getMessage(MessageType.JBOSS_XML);
// add payload stuff /object mapping
requestMessage.getBody().add(object);
invoker.deliverAsync(requestMessage);
} catch (MessageDeliverException mde) {
System.out.println("Eating this Exception: " + mde);
}
}
}
where the BRP code looked like:
RulesExitPointServiceInvokerr exit = new RulesExitPointServiceInvoker();
KnowledgeRuntime kruntime = (KnowledgeRuntime) ksession.getEnvironment();
kruntime.registerExitPoint("exit-point", exit);
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: