JBI Support deprecated in Apache ServiceMix 4

JBI 1.0 support is available in Apache ServiceMix 4 to allow existing users to migrate more easily to this latest version - if you're a new user, you should consider JBI deprecated and not use it for your project. Take a look at our technology selection guidelines for more information.



The ServiceMix Drools component provides JBI integration to the Drools Rules Engine.

This Service Engine can be used to deploy a rules set that will implement a router or an actual service.

A router will mostly act as a transparent proxy between the consumer and the target service provider mad will mostly be implemented by the jbi.route(uri) method below. This method creates a new exchange identical to the one received by the component and will send it to the specified destination. You can also send back a Fault if needed. A router can also be implemented by using directly the JBI Apis (available with the jbi helper) by using the provided client.

Namespace and xbean.xml

The namespace URI for the servicemix-bean JBI component is http://servicemix.apache.org/drools/1.0. This is an example of an xbean.xml file with a namespace definition with prefix bean.

<beans xmlns:drools="http://servicemix.apache.org/drools/1.0">

  <!-- add drools:endpoint definitions here -->


Endpoint types

The servicemix-drools component defines one endpoint type:

  • drools:endpoint :: no description yet


Endpoint properties

Property Name Type Description
assertedObjects (java.lang.Object)\* List of additional objects to be inserted into the drools working memory for evaluating rules.
autoReply boolean Will this endpoint automatically reply to any exchanges not handled by the Drools rulebase?
component org.apache.servicemix.common.DefaultComponent
defaultTargetService javax.xml.namespace.QName The default service that the exchange will be sent to if none of the rules have handled it.
defaultTargetURI java.lang.String The default endpoint URI that the exchange will be sent to if none of the rules have handled it.
endpoint java.lang.String <p> Get the endpoint implementation. </p>
globals java.util.Map The global variables that are available while evaluating the rule base.
interfaceName javax.xml.namespace.QName <p> Get the qualified name of the endpoint interface. </p>
namespaceContext javax.xml.namespace.NamespaceContext The namespace context to use when evaluating the rules.
ruleBase org.drools.RuleBase Set the rule base to be used for handling the exchanges
ruleBaseResource org.springframework.core.io.Resource Specifies the resource location to load the rule base from (.drl file)
ruleBaseURL java.net.URL Specifies a URL to load the rule base from (.drl file)
service javax.xml.namespace.QName <p> Get the service qualified name of the endpoint. </p>
su org.apache.servicemix.common.ServiceUnit