[rules-dev] Why are fundamental API functions not part of "stable"?

Mark Proctor mproctor at codehaus.org
Mon Aug 9 07:49:42 EDT 2010


  On 09/08/2010 09:58, Wolfgang Laun wrote:
> Trying to provide some debugging functions, I find that
> org.drools.runtime.rule.WorkingMemory (a "stable" interface) lets you retrieve
> org.drools.runtime.rule.Agenda (another "stable" interface). But this
> one does not provide access to the current set of Activation objects.
>
> In contrast to this, org.drools.Agenda, which is part of the
> "unstable" Core API, does provide Activation[] getActivations().
We plan to refactor the entire of drools-core and drools-compiler to 
reflect drools-api more, so it'll all change. We couldn't do this in one 
go, as many people where already using those interfacaes and 
implementations; including some JBoss projects.

So instead we decided to introduce a new cleaner api that is knowledge 
oriented, rather than rules oriented, and have that wrap the old api. So 
that we could move forward with a new api, while not upsetting any of 
our old user base, giving them time to move across.

We have taken a very conservative approach with drools-api minimising 
what we expose. We instead prefer to wait for valid use cases to 
determine what we expose, rather than exposing wait for those use cases 
to arise. The reason for this is that the more you expose the harder it 
is to change a library over time, due to backwards compatability. So the 
conservative aspect gives us more flexability in the long run.

I also have plans around agenda-groups, ruleflow-groups and other types 
of groups. I want to completely redesign the concept here to something 
more consistent and uniform and also more powerful and flexible. So 
again I'm reluctant to expose things, that might stop us making those 
changes.

Mark
> Since there is org.drools.runtime.rule.Activation in the "stable"
> part, why is it not possible to retrieve the current activations by
> just using the "stable" API? I would think that concepts such as
> "agenda" and its current set of activations are here to stay. What
> should one do when one wants to implement support functions for Drools
> applications that should have long term stability??
>
> Best
> Wolfgang
> _______________________________________________
> rules-dev mailing list
> rules-dev at lists.jboss.org
> https://lists.jboss.org/mailman/listinfo/rules-dev
>
>




More information about the rules-dev mailing list