[rules-users] Rules compilation error with OSGi integration (6.1.0.Beta3)

Ephemeris Lappis ephemeris.lappis at gmail.com
Tue May 20 10:40:00 EDT 2014


Hello.

I have no such kind test with Pax Exam. Should you send me a simple maven
project example using a Karaf container ?

Back to the problem, a very simple rule with something like that in the RHS
always fails when deployed in a bundle whose class loader is the felix one :

List<String> l = new ArrayList<>();
that must be fixed with :
List<String> l = new ArrayList<String>();

or

int n = 1_000;
that fails instead of :
int n = 1000;

FYI, I use ServiceMix 4.5.3.

Thanks again.
Regards.



2014-05-20 15:41 GMT+02:00 Charles Moulliard <ch007m at gmail.com>:

> A test case will be required to reproduce your problem. Do you have a
> pax-exam test ?
>
>
> On Tue, May 20, 2014 at 1:03 PM, Ephemeris Lappis <
> ephemeris.lappis at gmail.com> wrote:
>
>> Hello.
>>
>> Here is the first lines of the error message :
>>
>>
>> 14:58:57,457 | ERROR | tp1946301910-151 | AbstractKieModule
>>  |
>> 239 - org.drools.compiler - 6.1.0.20140429-1643 | Unable to build
>> KieBaseModel:MyKBase
>> Rule Compilation error : [Rule name='Main Rule']
>>         my/tests/drools/osgi/expert/rules/Rule_Main_Rule1409557233.java
>> (8:649) :
>> Incorrect number of arguments for type HashMap<K,V>; it cannot be
>> parameterized with arguments <?>
>>         my/tests/drools/osgi/expert/rules/Rule_Main_Rule1409557233.java
>> (8:666) :
>> Syntax error on token "<", ? expected after this token
>>
>>
>> I have found the explanation and a workaround : put it all with a strict
>> "1.5" syntax in the RHS ! In this current case, do not use <> to infere
>> the
>> generic type, but use the expected declared types instead.
>>
>> After a rather touchy remote debug of the ServiceMix runtime to inspect
>> what
>> is different from the Junit tests, I think that the problem comes from the
>> classloader that is associated with the Kie container. Before compilation
>> the language source and target level is  set with version 1.7 as expected,
>> but in the nameEnvironment that is passed to the JavaCompiler (indeed, ecj
>> compiler), the droolsClassloader is of type
>> "org/apache/felix/framework/ModuleImpl$ModuleClassLoaderJava5". As its
>> name
>> seems to incidate, I'm afraid that the Karaf/Felix loader is originally
>> built in 1.5.
>>
>> I've read some posts about the eclipse compiler that perhaps takes into
>> account the caller compliance to adapt its compilation language level.
>>
>> Class loaders seem to be a serious problem when using Drools in complex
>> environment such as a OSGi one...
>>
>> Please, could you confirm my analysis, and, if you have one, propose any
>> better solution ? I don't know, for example, if it's possible to influence
>> Karaf to use different levels of bundle class loaders...
>>
>> Thanks a lot.
>>
>> Regards.
>>
>>
>>
>> --
>> View this message in context:
>> http://drools.46999.n3.nabble.com/Rules-compilation-error-with-OSGi-integration-6-1-0-Beta3-tp4029601p4029622.html
>> Sent from the Drools: User forum mailing list archive at Nabble.com.
>> _______________________________________________
>> rules-users mailing list
>> rules-users at lists.jboss.org
>> https://lists.jboss.org/mailman/listinfo/rules-users
>>
>
>
>
> --
> Charles Moulliard
> Apache Committer / Architect @RedHat
> Twitter : @cmoulliard | Blog :  http://cmoulliard.github.io
>
>
> _______________________________________________
> rules-users mailing list
> rules-users at lists.jboss.org
> https://lists.jboss.org/mailman/listinfo/rules-users
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.jboss.org/pipermail/rules-users/attachments/20140520/729fc202/attachment.html 


More information about the rules-users mailing list