...
The ServiceMix Drools component provides JBI integration to the Drools Rules Engine.
This Service Engine It can be used to deploy a rules set that will implement a router or an actual service.
...
This component can also be used to implement a real service, as shown in the Fibonnacci example. The service can act as a consumer and create / send exchanges by using the client provided by the jbi
helper.
Note that this component is only available in releases >= 3.1 and deprecate the older lightweight Drools component
Maven Archetype
You can create a Drools Service Unit using the servicemix-drools-service-unit Maven archetype:
Code Block |
---|
mvn archetype:create \
-DarchetypeGroupId=org.apache.servicemix.tooling \
-DarchetypeArtifactId=servicemix-drools-service-unit \
-DarchetypeVersion=2010.01 \
-DgroupId=your.group.id \
-DartifactId=your.artifact.id \
-Dversion=your-version
|
Once you've customized the service unit, simply install the SU:
Code Block |
---|
mvn install
|
Info | ||
---|---|---|
Remember that to be deployable in ServiceMix, the ServiceUnit has to be embedded in a Service Assembly: only the Service Assembly zip file can be deployed in ServiceMix.
|
Endpoint Configuration
Code Block | ||
---|---|---|
| ||
<beans xmlns:drools="http://servicemix.apache.org/drools/1.0"
xmlns:replaceMe="http://servicemix.apache.org/replaceMe">
<drools:endpoint service="replaceMe:serviceName" endpoint="drools"
ruleBaseResource="classpath:router.drl"
namespaceContext="#nsContext"/>
<drools:namespace-context id="nsContext">
<drools:namespaces>
<drools:namespace prefix="bar">http://servicemix.apache.org/bar</drools:namespace>
</drools:namespaces>
</drools:namespace-context>
|
...
</beans>
|
Info | |||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| |||||||||||||||||||||
|
JBI Helper
DRL files deployed to the servicemix-drools
engine have access to a JbiHelper
class in a global variable named jbi
which provides the following attributes and methods:
...