Hi, all.
I'm feeding an XML message into a drools service-unit, which acts as a
routing engine.

If a piece of the XML message is missing, I have a rule (number 1) that will
route the message to a service that will fill it in.  The message should
then be re-evaluated by the rules.  Since the missing piece is filled in,
other rules will fire (including number 2 as shown).  I expect that I should
be able to do this through the following on a "then" clause:

rule "Rule number 2"
        when
                me : Exchange( status == Exchange.ACTIVE, in : in != null )
                eval( in.xpath("//*[local-name() = 'TheMissingPart']") )
        then
                jbi.route("service:urn:CompletionService");
end

rule "Rule number 1"
        when
                me : Exchange( status == Exchange.ACTIVE, in : in != null )
                eval(!( in.xpath("//*[local-name() = 'TheMissingPart']") ))
        then
                jbi.route("service:urn:MissingPartService");
                modify(me);
end

The missing part is being filled in by the MissingPartService, but the rules
are never re-executed on the new message exchange, which I figured should
happen using the "modify(me)" call.
Can anyone shed light on this issue?

Thanks.
Justin
-- 
View this message in context: 
http://www.nabble.com/Question%3A-servicemix-drools-with-route-modify-tf4249723s12049.html#a12094551
Sent from the ServiceMix - User mailing list archive at Nabble.com.

Reply via email to