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(a)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(a)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-integ...
> Sent from the Drools: User forum mailing list archive at
Nabble.com.
> _______________________________________________
> rules-users mailing list
> rules-users(a)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(a)lists.jboss.org
https://lists.jboss.org/mailman/listinfo/rules-users