[rules-users] Drools5M3 Issues

Mark Proctor mproctor at codehaus.org
Fri Nov 28 15:38:43 EST 2008


one option is to put drools api under a totaly new namespace - 
org.drools5 instead of org.drools. But I'm not keen to do this, although 
I know hibernate did it moving to hibernate 3. I'm trying to get a CR 
out in a week or so, so what ever we decide, we are rapidly running out 
of time.

Mark
Mark Proctor wrote:
> keithnielsen wrote:
>> Ok,
>>
>> I tried to upgrade from M2 to M3. Big Mistake
>>
>> I see that you have attempted to separate the interface from the
>> implementation by moving most of
>> the interfaces that are intended for public consumption from 
>> drools-core to
>> a new jar file called drools-api. Unfortunately there appears a few 
>> different problems with this
>>
>> 1) Unfortunately you have duplicated package names (drools.core) as well
>> duplicated numerous classes across the two jar files
>> (WorkingMemoryEntryPoint and FactHandle to name a few)   
> Some Classes remain, now in a deprecated manner, in drools-core. 
> Duplicate names are always in a different pacage to avoid clashing. It 
> is recommended that you use the org.drools.runtime.rule.FactHandle, 
> which is now considered the stable api. Over time core/compiler will 
> implement drools-api instead of bridging and adapting it, and 
> drools4.0 classes/interfaces will go to an optional jar. But we didn't 
> want to change too much at the beginning, so as to retain backwards 
> compatability.
>> 2) StatefulSession interface has not been moved to drools-api and 
>> only exist
>> in drools-core
>>   
> That is correct. You should now use StatefulKnowledgeSession. You can 
> continue to use StatefulSession, we have tried to not break any 
> Drools4.0 code, for a level of backwards
> compatability, but any interfaces/classes that you use in Drools4.0, 
> should be considered deprecated. As mentioned above, we will move 
> these 4.0 specific classes to an optional jar over time.
>> This makes this build unusable in Eclipse 3.4 as is. Also I am using 
>> Eclipse
>> as a runtime platform and this makes it impossible to simply expose 
>> the api
>> classes as intended, because when you you embed the rules engine as a 
>> plugin
>> you have to expose those packages containing the api you wish to 
>> expose, in
>> drools case that would be drools-api, unfortunately StatefulSession 
>> is still
>> in drools-core for example forcing me to export both drools-core and
>> drools-api which defeats the purpose of having drools-api since I 
>> have to
>> expose implementation classes from drools-core which also now exposes
>> duplicate classes, such as FactHandle and WorkingMemoryEntryPoint
>>   
> If you are writting new software, use the new drools-api interfaces, 
> not the deprecated ones and you won't have this issue.
>
> Mark
>
>
> _______________________________________________
> rules-users mailing list
> rules-users at lists.jboss.org
> https://lists.jboss.org/mailman/listinfo/rules-users
>
>





More information about the rules-users mailing list