Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

To test Drools, send some message to session1. As a result, session3 will receive this message.

4.2 This example describes mixed DSL/Drools calls.

Add the following business rules configuration:

  1. Routing- Other blocks besides messageRules can be called

  2. Rule1- General Routing based on message type

  3. Rule2- Custom Drools call

    Code Block
    import com.epam.fej.routing.RoutingContext
    import com.epam.fej.routing.drools.DroolsEngine
    
    import static dsl.CommonRulesDsl.rulesDSL
    
    DroolsEngine dre = drools as DroolsEngine
    rulesDSL(routingContext as RoutingContext) {
        routing {
            from "session1" to "session2"
            from "JMSProducer" to "JMSConsumer"
        }
        messageRules {
            messageRule("Rule 1: Route FIX messages only through DSL instructions.") {
                condition { msgType "AE" }
                action {
                    sendTo "sessionAE"
                    context exit
      }
            }
            messageRule("Rule 2: Route FIX messages only through Drools rules.") {
                source { id "ksession1" }
                condition { msgType "B" }
                action {
                    custom { ctx ->
                        dre.runStatefulAndClean("ksession1", ctx)
                        routingContext.getDestinationById(ctx.messageEvent.getHeader 
                        ("destination")).send(ctx.messageEvent)
                    }
                    context exit
                }
            }
        }
    }