16.19. Sending Objects to JBoss Rules Using Channels

  1. To send an object to a JBoss Rules engine channel, use this DRL syntax. (It goes on the right-hand side of the rule definition.)
    channels["mychannel"].send(myobject);
    
  2. For the above code to work, register mychannel as your channel. To do this you add a channels property section to the jboss-esb.xml configuration file.
    Define as many channels as you want. For each particular channel name, the channels will be executed in the same order as they appear in the configuration file.
  3. The following channels are supported:
    • The ServiceChannel (default). Specify the channel-name, service-category and service-name as attributes of the send-to element.
      There are also optional attributes, including async, timeout and set-payload-location (where the object sent to that channel will be placed in a new ESB message).
      This code shows you how to set an attribute:
      <property name="channels">
          <send-to channel-name="mychannel"
              service-category="cat1" service-name="svc1" />
      </property>
      

      Important

      Make sure you have invmScope="GLOBAL" defined on the target service.
    • Specify the custom channels by using your own org.drools.runtime.Channel implementation class. The send-to attribute for this is channel-class. Your implementation requires a public no-arg constructor.
      If you want your implementation to be configurable, implement the org.jboss.soa.esb.Configurable interface so your setConfiguration(ConfigTree() method will be called. This allows it to pass the attributes and sub- property elements to your custom channel.
      This code sample shows how to configure a custom channel:
      <property name="channels">
          <send-to channel-name="mychannel"
              channel-class="com.example.MyChannel" />
      </property>
      
Red Hat logoGithubRedditYoutubeTwitter

Learn

Try, buy, & sell

Communities

About Red Hat Documentation

We help Red Hat users innovate and achieve their goals with our products and services with content they can trust.

Making open source more inclusive

Red Hat is committed to replacing problematic language in our code, documentation, and web properties. For more details, see the Red Hat Blog.

About Red Hat

We deliver hardened solutions that make it easier for enterprises to work across platforms and environments, from the core datacenter to the network edge.

© 2024 Red Hat, Inc.