Good job Tihomir!
We added a couple of new features to the seam-drools integration:
1. Support for Decision Tables (JBSEAM-4188):
<drools:rule-base name="ruleBase" rule-files="myDecisionTable.xls"/>
You can now compile rules from your Decision Table (xls) when using the drools:rule-base component in components.xml
2. Support for Drools Custom Consequence Exception Handlers (JBSEAM-4049):
<drools:rule-base name="ruleBase" rule-files="myDecisionTable.xls" consequence-exception-handler="#{myConsequenceExceptionHandler}"/>
You can use the new consequence-exception-handler attribute to add a new exception handler. This exception handler can be a Seam component and can look like:
Scope(ScopeType.APPLICATION)
@Startup
@Name("myConsequenceExceptionHandler")
public class MyConsequenceExceptionHandler implements ConsequenceExceptionHandler, Externalizable {
public void readExternal(ObjectInput in) throws IOException, ClassNotFoundException {
}
public void writeExternal(ObjectOutput out) throws IOException {
}
public void handleException(Activation activation,
WorkingMemory workingMemory,
Exception exception) {
throw new ConsequenceException( exception,
activation.getRule() );
}
}
3. Support for Drools Event Listeners (JBSEAM-4225):
<drools:managed-working-memory name="workingMemory" rule-base="#{ruleBase}">
<drools:event-listeners>
<value>org.drools.event.DebugWorkingMemoryEventListener</value>
<value>org.drools.event.DebugAgendaEventListener</value>
</drools:event-listeners>
</drools:managed-working-memory>
This allows you to be notified of rule engine events, including rules firing, objects being asserted, etc by simply adding the drools:event-listeners element to your managed-working-memory component in components.xml as shown in the example
These updates will be available in Seam 2.2.0.CR1. We are also working on adding RuleFlow support in the near future.

asd
ReplyDelete8
ReplyDelete