I'd like to add two sub projects to Drools to enable better spring and
guice support - especially now we have the RuleAgent. Any volunteers for
this? I'd like to try and standardise, as much as possible, how Drools
works and integrates with IoC containers.
Ultimiately the integration should be quite lightweight - mostly about
creating rulebases and working memory and probably the scoping and
caching of these. I guess you could also have some life cycle management
about objects themselves and auto assertion/retraction to named working
memories. We'd need to define a set of agreed annotations to define
these things, that would work across containers. I believe the JBoss MC
people have done some work in this area, I have cc'd to see if they have
any input or documentation pointers.
The core dev team don't have the time and aren't spring/guice
specialists - so anyone willing to take this up? If we can get
reasonable implementations we will add them to subversion (and the
authors commit rights), and make part of the next release - assuming
they are of good enough quality.
So any takers, maybe we could atleast start at defining what this level
of integration should look like?
The Google Summer of Code <http://code.google.com/soc/2008/> is
beginning. Drools, being a Red Hat project, has to participate under the
Fedora banner. So I've put a few project ideas up on the JBoss GSoC
<http://labs.jboss.com/wiki/GSoC> page. If you're able to enter as a
student please do take a look and don't hesitate to contact if anything
I've also listed the ideas below, please leave comments if you have any
other ideas you think might make good student projects. Or maybe you are
a student and you want to propose a GSoC project.
# Subversion/CVS and JCR synchronisation. This allows our web based BRMS,
called Guvnor, to synchronise it's content with what's used in an IDE,
such as Eclipse
# Eclipse file upload tool with meta-data properties editing. You should
be able to right click a file or a folder and upload to the web based
Guvnor. Previously uploaded files(assets) should be recognised and
uploaded as a modify.
# SBVR <http://www.businessrulesgroup.org/sbvr.shtml>, structured natural
language, implementation for Drools. Can do either or both the frontend
or the backend.
# Eclipse tooling enhancements including any of the following: search,
# Animate the Rete view to represent network propagation.
# Improve the DSL capabilities of Drools, supporting more complex grammars.
# Improve the Guvnor, web based BRMS, to handle the management of more
asset types. Including images, video, sound etc. Guvnor involves JCR,
Seam and GWT work.
# Create a Web based process designer for Drools ruleflow using GWT
I will be at the RuleML conference again this year. Last year was a
great event with lots of good presentations and knowledge sharing. While
the conference is organised by the RuleML group it is not specific to
the RuleML standard and various standards and technologies are discussed
at this event - which is what makes it so important.
As always these things can't happen without funding. This year Red Hat
will be a RuleML sponsor and I strongly encourage others to help sponsor
this fantastic event. Sponsorship starts from as little as $500 for
Bronze. You can view the pdf detailing these sponsorship packages here
International RuleML Symposium on Rule Interchange and Applications
The 2008 International RuleML Symposium on Rule Interchange and
Applications, RuleML-2008 (http://2008.ruleml.org
<http://2008.ruleml.org/>), is the primary industrial-oriented meeting
place to discuss the applicability and commercialisation of web rule
technologies for enterprises and public organizations. At this,
RuleML-2008 addresses users, system providers, practitioners, developers
and researchers as well as representatives of rule/event standardization
efforts and open source rule communities. After last year's highly
successful RuleML-2007 (http://2007.ruleml.org
<http://2007.ruleml.org/>), RuleML-2008 again joins the established,
practically oriented Business Rules Forum
to help cross-fertilizing between Web and Business Logic technology.
The symposium will be again held in Orlando, Florida, US, October 30/31,
2008. Participants will be offered an exciting venue to exchange new
ideas, practical developments and experiences on issues related to the
engineering, management, integration, interoperation and interchange of
rules in open distributed environments such as the Web. RuleML-2008 will
enable delegates to better understand web rules and event processing
technologies and their potential, and how to exploit these technologies
in their organizations
The RuleML-2008 highlights will include:
1. Plenary keynotes and a panel discussion featuring prominent and
2. A RuleML-2008 Challenge with prizes to demonstrate tools, use
cases, and applications.
3. Scientific research, industry, and demo papers and presentations
advancing and assessing the state of the art in event and
rule-based systems selected in a peer-reviewed fashion by an
international program committee.
4. Invited talks given by world-class scientists and industrials
featuring conceptual topics on event and rule-based computing and
industry success stories.
5. Social events to promote networking among the symposium delegates
in an informal setting.
The RuleML-2008 Challenge with prestigious prizes provides an excellent
opportunity to showcase your organization and become associated with
this innovation driven technology market, characterized by strong market
growth, visibility and commercial opportunities.
To share your ideas, results and experiences, and to learn more about
rules technology, RuleML-2008 invites all of you, including:
* IT Services, Rules and Event Processing system providers
* Representatives of, and participants in, rule standardization efforts
* Members of open source rules communities
* CTOs and Strategists of technology firms
* Information Architects and Strategic Technology Planners
* CIOs and Information Technology Managers
* Venture Capitalists and Investors
* CEOs of software start-ups
* Product Managers from software and hardware companies
* Data Analysts from major public and private organizations
* Academics and Researchers
* Software Developers
* Press and Analysts
* Technology Consultants
For further details please see the Symposium website
For more information please contact: ruleml2008(a)easychair.org.
I have found this:
....you can use the following snippet of code to convert the brl to a drl rule:
BRXMLPersitence read = BRXMLPersitence.getInstance();
BRDRLPersistence write = BRDRLPersistence.getInstance();
String brl = ... read from the .brl file as needed...
String outputDRL = write.marshall(read.unmarshal(brl));
//then pass the outputDRL to the PackageBuilder as normal
Can you explain please: "String brl = ... read from the .brl file as needed..."
for example if I have "first.brl" and I want "first.drl"
Hi Group Members,
In Drools 4.0.5 release most of the bugs with *"Working Memory
serialization"* are fixed. But still the feature has few bugs.
The bug scenario :
1. Create a rule Base & Working Memory (Stateful Session).
2. Assert some objects in Working Memory & call fireAll()
3. Serialize both Rule Base & Working Memory.
4. De Serialize Rule Base & Working Memory.
5. Remove Pkg/rule from Rule Base.
6. Serialize both Rule Base & Working Memory.
7. De Serialize Rule Base & Working Memory. --------->* In this step Working
Memory De Serialization fails with java.lang.ClassNotFoundException.
*8. Assert some more objects in Working Memory & call fireAll()
I have tested the scenario using *"MarshallingTest.java"* from Drools
Codebase. In the *
MarshallingTest.testSerializeAddRemove_NoClassDefFoundError()* test case,
I have appended bellow mentioned code snippet at end:
ruleBase = (RuleBase) serializeIn( serializedRulebase );
session = ruleBase.newStatefulSession( new ByteArrayInputStream(
serializedSession ) ); *// throws java.lang.ClassNotFoundExceptionException
* results = (List) session.getGlobal( "results" );
InternalFactHandle stilton5 = (InternalFactHandle) session.insert(
new Cheese( "stilton", 30 ) );
InternalFactHandle brie5 = (InternalFactHandle) session.insert( new
Cheese( "brie", 30 ) );
InternalFactHandle bob7 = (InternalFactHandle) session.insert( new
Person( "bob", 30 ) );
InternalFactHandle bob8 = (InternalFactHandle) session.insert( new
Person( "bob", 40 ) );
results.get( 6 ) );
results.get( 7 ) );
serializedSession = null;
serializedRulebase = null;
serializedSession = serializeOut( session );
serializedRulebase = serializeOut( ruleBase );
*One more bug is:* Can not serialize Working Memory if Rule contains *
Accumulate* or *Collect* Conditional element. Because, both of them have
nested static class "*AccumulateMemory*" & "*CollectMemory*" respectively,
which are not serializable.
We want to use Drools in our project with its *"Working Memory
serialization"* feature to maintain state of Rule Engine between executions.
So Fix of All bugs related to *"Working Memory serialization"* feature is
very important for us.
Hi Drools Team,
I have checked out *Drools 4.0.x branch* & found that all my test scenarios
with *"Dynamic Rules"* are now *working fine* *:-)*.
Thanks a lot for fixing the issues so promptly. I appreciate it !!!
Now, we will definitely use Drools in our application.
I have a *Good To have* feature request for Drools: "Include check for
duplicate objects being asserted into Working Memory & don't generate any
activation for such objects or silently don't assert them at all in WM." I
tested this scenario with *JESS*, they are already doing that. This will
save Drools user from doing duplicate check, which is bit costly now.
Or can you please suggest me any simple way, by which still I can achieve
this in Drools ?
Thanks & Happy Drooling
We've fixed a huge number of things for 4.0.5. We are going to try and
get the release out this friday. So please hurry if you have a bug then
let us know, especially if you have a fix :) And don't forget to try
your bug out on 4.0.x in svn in case its already fixed:
Mark Proctor wrote:
> Narendra Valada wrote:
>> I had reported an issue a couple of weeks ago with nested inner
>> classes not being handled correctly.
>> I made some changes to the org.drools.base.ClassTypeResolver class to
>> resolve it and everything appears to work fine.
>> How do I provide the fix and test case to you? Do you want me to
>> raise a JIRA?
> Yes you will need to raise a JIRA. At this stage we have no plans to
> fix this, as we can consider inner inner classes esoteric enough to
> say it's unsupported. Although if someone can provide a clean patch,
> it would be nice to fix. You'll have to be quick though, if you want
> the fix in 4.0.5
>> On 3/8/08, *Mark Proctor* <mproctor(a)codehaus.org
>> <mailto:firstname.lastname@example.org>> wrote:
>> We are about to release 4.0.5, next week. This has a large number
>> of bug
>> fixes, especially multi-threading bugs. Anyone that has production
>> issues can you please do a checkout for the 4.0.x branch asap and
>> provide us with a test case if it is not fixed. If you don't get your
>> test case to us by end of monday, start of tuesday, you'll have
>> to wait
>> another 2 months+ for 4.0.6.
>> rules-users mailing list
>> rules-users(a)lists.jboss.org <mailto:email@example.com>
>> rules-users mailing list
> rules-users mailing list