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

2014-05-19 Thread Ephemeris Lappis
Hello.

We have a very simple rules file that works as expected when running as a
JUnit test in Eclipse with Maven dependencies, but fails when it is
executing in ServiceMix with OSGi integration.

The code is just like :

raw>
Map dialog = new LinkedHashMap<>();
KieSession kieSession = kieContainer.newKieSession("MyKSession");
kieSession.setGlobal("dialog", dialog);
kieSession.insert(problem);
kieSession.fireAllRules();
kieSession.dispose();


The rules file :



And the kmodule.xml :



The compilation error is about Java 7 syntax elements (as generics or
thousand separators in number literals for example), and seems to indicate
that in this case the compiler is not the same, and it expects another Java
syntax. No error is reported when the KieContainer is created from the
KModule.xml, but the following error occurs when using it for KSession
creation.



This occurs both with the prepackaged feature
(http://repo1.maven.org/maven2/org/drools/drools-karaf-features/6.1.0.Beta3/drools-karaf-features-6.1.0.Beta3-features.xml),
or with an adapted one. For example, the Maven dependancies classpath in
eclipse mentions newer versions of the Eclipse's ECJ. But changing the
version of bundles has no effect...

What is missing in the feature to activate the correct rules compiler ?

Thanks for your help ?

Regards.




--
View this message in context: 
http://drools.46999.n3.nabble.com/Rules-compilation-error-with-OSGi-integration-6-1-0-Beta3-tp4029601.html
Sent from the Drools: User forum mailing list archive at Nabble.com.
___
rules-users mailing list
rules-users@lists.jboss.org
https://lists.jboss.org/mailman/listinfo/rules-users


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

2014-05-20 Thread Charles Moulliard
Can you provide us the compilation error reported (gist link) and a test
case to allow us to reproduce your issue ?


On Mon, May 19, 2014 at 4:00 PM, Ephemeris Lappis <
ephemeris.lap...@gmail.com> wrote:

> Hello.
>
> We have a very simple rules file that works as expected when running as a
> JUnit test in Eclipse with Maven dependencies, but fails when it is
> executing in ServiceMix with OSGi integration.
>
> The code is just like :
>
> raw>
> Map dialog = new LinkedHashMap<>();
> KieSession kieSession = kieContainer.newKieSession("MyKSession");
> kieSession.setGlobal("dialog", dialog);
> kieSession.insert(problem);
> kieSession.fireAllRules();
> kieSession.dispose();
>
>
> The rules file :
>
>
>
> And the kmodule.xml :
>
>
>
> The compilation error is about Java 7 syntax elements (as generics or
> thousand separators in number literals for example), and seems to indicate
> that in this case the compiler is not the same, and it expects another Java
> syntax. No error is reported when the KieContainer is created from the
> KModule.xml, but the following error occurs when using it for KSession
> creation.
>
>
>
> This occurs both with the prepackaged feature
> (
> http://repo1.maven.org/maven2/org/drools/drools-karaf-features/6.1.0.Beta3/drools-karaf-features-6.1.0.Beta3-features.xml
> ),
> or with an adapted one. For example, the Maven dependancies classpath in
> eclipse mentions newer versions of the Eclipse's ECJ. But changing the
> version of bundles has no effect...
>
> What is missing in the feature to activate the correct rules compiler ?
>
> Thanks for your help ?
>
> Regards.
>
>
>
>
> --
> View this message in context:
> http://drools.46999.n3.nabble.com/Rules-compilation-error-with-OSGi-integration-6-1-0-Beta3-tp4029601.html
> Sent from the Drools: User forum mailing list archive at Nabble.com.
> ___
> rules-users mailing list
> rules-users@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@lists.jboss.org
https://lists.jboss.org/mailman/listinfo/rules-users

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

2014-05-20 Thread Ephemeris Lappis
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; 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@lists.jboss.org
https://lists.jboss.org/mailman/listinfo/rules-users


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

2014-05-20 Thread Charles Moulliard
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.lap...@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; 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@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@lists.jboss.org
https://lists.jboss.org/mailman/listinfo/rules-users

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

2014-05-20 Thread Ephemeris Lappis
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 l = new ArrayList<>();
that must be fixed with :
List l = new ArrayList();

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 :

> 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.lap...@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; 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@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@lists.jboss.org
> https://lists.jboss.org/mailman/listinfo/rules-users
>
___
rules-users mailing list
rules-users@lists.jboss.org
https://lists.jboss.org/mailman/listinfo/rules-users

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

2014-05-20 Thread Charles Moulliard
Is it a list that you would like to use as global param ? If this is the
case, maybe change your rule & code like that

//GET A KSESSION
StatefulKnowledgeSession ksession =
kbase.newStatefulKnowledgeSession();

//now create some test data
ksession.insert( new Cheese( "stilton",
   42 ) );
ksession.insert( new Person( "michael",
   "stilton",
   42 ) );
final List list = new ArrayList();
ksession.setGlobal( "list",
  list );

ksession.fireAllRules();

System.out.println(list);

ksession.dispose();

Rule

template header
age
type
log

package org.drools.examples.templates;

global java.util.List list;

template "cheesefans"

rule "Cheese fans_@{row.rowNumber}"
when
Person(age == @{age})
Cheese(type == "@{type}")
then
list.add("@{log}");
end
end template



On Tue, May 20, 2014 at 4:40 PM, Ephemeris Lappis <
ephemeris.lap...@gmail.com> wrote:

> 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 l = new ArrayList<>();
> that must be fixed with :
> List l = new ArrayList();
>
> 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 :
>
> 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.lap...@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; 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@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@lists.jboss.org
>> https://lists.jboss.org/mailman/listinfo/rules-users
>>
>
>
> ___
> rules-users mailing list
> rules-users@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@lists.jboss.org
ht

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

2014-05-20 Thread Ephemeris Lappis
In this case it's not a global, but a temporary variable in the rule
consequence. Indeed, the problem is not only about generics, but impacts
all the syntax elements that may have changed since Java 1.5, and make the
rules Java compiler fails when running in ServiceMix.

As I said before, the workaround is quite easy, changing all the Java code
to be compliant with the compilation level. The question is just about a
confirmation of the Felix's class loader (org/apache/felix/framework/
ModuleImpl$ModuleClassLoaderJava5) in the compiler's behavior, and a better
solution to be able to write RHS with a 'modern' syntax.

Thanks.


2014-05-20 16:56 GMT+02:00 Charles Moulliard [via Drools] <
ml-node+s46999n4029628...@n3.nabble.com>:

> Is it a list that you would like to use as global param ? If this is the
> case, maybe change your rule & code like that
>
> //GET A KSESSION
> StatefulKnowledgeSession ksession =
> kbase.newStatefulKnowledgeSession();
>
> //now create some test data
> ksession.insert( new Cheese( "stilton",
>42 ) );
> ksession.insert( new Person( "michael",
>"stilton",
>42 ) );
> final List list = new ArrayList();
> ksession.setGlobal( "list",
>   list );
>
> ksession.fireAllRules();
>
> System.out.println(list);
>
> ksession.dispose();
>
> Rule
>
> template header
> age
> type
> log
>
> package org.drools.examples.templates;
>
> global java.util.List list;
>
> template "cheesefans"
>
> rule "Cheese fans_@{row.rowNumber}"
> when
> Person(age == @{age})
> Cheese(type == "@{type}")
> then
> list.add("@{log}");
> end
> end template
>
>
>
> On Tue, May 20, 2014 at 4:40 PM, Ephemeris Lappis <[hidden 
> email]
> > wrote:
>
>> 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 l = new ArrayList<>();
>> that must be fixed with :
>> List l = new ArrayList();
>>
>> 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 <[hidden 
>> email]
>> >:
>>
>> 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 <[hidden 
>>> email]
>>> > 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; 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 mes

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

2014-05-20 Thread Charles Moulliard
n "<", ? 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
>>>>> [hidden email] <http://user/SendEmail.jtp?type=node&node=4029628&i=3>
>>>>> 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
>>>> [hidden email] <http://user/SendEmail.jtp?type=node&node=4029628&i=4>
>>>> https://lists.jboss.org/mailman/listinfo/rules-users
>>>>
>>>
>>>
>>> ___
>>> rules-users mailing list
>>> [hidden email] <http://user/SendEmail.jtp?type=node&node=4029628&i=5>
>>> 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
>> [hidden email] <http://user/SendEmail.jtp?type=node&node=4029628&i=6>
>> https://lists.jboss.org/mailman/listinfo/rules-users
>>
>> --
>>  If you reply to this email, your message will be added to the
>> discussion below:
>>
>> http://drools.46999.n3.nabble.com/Rules-compilation-error-with-OSGi-integration-6-1-0-Beta3-tp4029601p4029628.html
>>  To unsubscribe from Rules compilation error with OSGi integration
>> (6.1.0.Beta3), click here.
>> NAML<http://drools.46999.n3.nabble.com/template/NamlServlet.jtp?macro=macro_viewer&id=instant_html%21nabble%3Aemail.naml&base=nabble.naml.namespaces.BasicNamespace-nabble.view.web.template.NabbleNamespace-nabble.view.web.template.NodeNamespace&breadcrumbs=notify_subscribers%21nabble%3Aemail.naml-instant_emails%21nabble%3Aemail.naml-send_instant_email%21nabble%3Aemail.naml>
>>
>
>
> --
> View this message in context: Re: [rules-users] Rules compilation error
> with OSGi integration 
> (6.1.0.Beta3)<http://drools.46999.n3.nabble.com/Rules-compilation-error-with-OSGi-integration-6-1-0-Beta3-tp4029601p4029629.html>
>
> Sent from the Drools: User forum mailing list 
> archive<http://drools.46999.n3.nabble.com/Drools-User-forum-f47000.html>at 
> Nabble.com.
>
> ___
> rules-users mailing list
> rules-users@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@lists.jboss.org
https://lists.jboss.org/mailman/listinfo/rules-users

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

2014-05-20 Thread Charles Moulliard
;>> > 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; 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
>>>>> [hidden email] <http://user/SendEmail.jtp?type=node&node=4029628&i=3>
>>>>> 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
>>>> [hidden email] <http://user/SendEmail.jtp?type=node&node=4029628&i=4>
>>>> https://lists.jboss.org/mailman/listinfo/rules-users
>>>>
>>>
>>>
>>> ___
>>> rules-users mailing list
>>> [hidden email] <http://user/SendEmail.jtp?type=node&node=4029628&i=5>
>>> 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
>> [hidden email] <http://user/SendEmail.jtp?type=node&node=4029628&i=6>
>> https://lists.jboss.org/mailman/listinfo/rules-users
>>
>> --
>>  If you reply to this email, your message will be added to the
>> discussion below:
>>
>> http://drools.46999.n3.nabble.com/Rules-compilation-error-with-OSGi-integration-6-1-0-Beta3-tp4029601p4029628.html
>>  To unsubscribe from Rules compilation error with OSGi integration
>> (6.1.0.Beta3), click here.
>> NAML<http://drools.46999.n3.nabble.com/template/NamlServlet.jtp?macro=macro_viewer&id=instant_html%21nabble%3Aemail.naml&base=nabble.naml.namespaces.BasicNamespace-nabble.view.web.template.NabbleNamespace-nabble.view.web.template.NodeNamespace&breadcrumbs=notify_subscribers%21nabble%3Aemail.naml-instant_emails%21nabble%3Aemail.naml-send_instant_email%21nabble%3Aemail.naml>
>>
>
>
> --
> View this message in context: Re: [rules-users] Rules compilation error
> with OSGi integration 
> (6.1.0.Beta3)<http://drools.46999.n3.nabble.com/Rules-compilation-error-with-OSGi-integration-6-1-0-Beta3-tp4029601p4029629.html>
>
> Sent from the Drools: User forum mailing list 
> archive<http://drools.46999.n3.nabble.com/Drools-User-forum-f47000.html>at 
> Nabble.com.
>
> ___
> rules-users mailing list
> rules-users@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@lists.jboss.org
https://lists.jboss.org/mailman/listinfo/rules-users

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

2014-05-21 Thread Ephemeris Lappis
Hello.

Although without much conviction, I've tried the
"Bundle-RequiredExecutionEnvironment: J2SE-1.7", but it doesn't change the
compilation level of the rules...

As I said in a previous answer, I don't know exactly how to do it, but I
think the solution may be in the way that Drools takes the classloader
passed by the application to have access to specific classes like the
usually imported beans used in the rules. Indeed, perhaps that instead of
using directly this classloader, for its tasks, among of them the rules
compilation, it should be possible to use some kind of enriched classloader
that carries all the Drools needed packages, and delegates application
classes resolution to the application's one.

What do you think of that ?

Regards.



--
View this message in context: 
http://drools.46999.n3.nabble.com/Rules-compilation-error-with-OSGi-integration-6-1-0-Beta3-tp4029601p4029635.html
Sent from the Drools: User forum mailing list archive at Nabble.com.
___
rules-users mailing list
rules-users@lists.jboss.org
https://lists.jboss.org/mailman/listinfo/rules-users


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

2014-05-21 Thread Charles Moulliard
If you look to my example posted previously there are no issues. Can you
make a test using just Apache Karaf 2.3.x with Drools 6.1.0.Beta3 and tell
me what happen. Which JDK do you sue ?


On Wed, May 21, 2014 at 9:03 AM, Ephemeris Lappis <
ephemeris.lap...@gmail.com> wrote:

> Hello.
>
> Although without much conviction, I've tried the
> "Bundle-RequiredExecutionEnvironment: J2SE-1.7", but it doesn't change the
> compilation level of the rules...
>
> As I said in a previous answer, I don't know exactly how to do it, but I
> think the solution may be in the way that Drools takes the classloader
> passed by the application to have access to specific classes like the
> usually imported beans used in the rules. Indeed, perhaps that instead of
> using directly this classloader, for its tasks, among of them the rules
> compilation, it should be possible to use some kind of enriched classloader
> that carries all the Drools needed packages, and delegates application
> classes resolution to the application's one.
>
> What do you think of that ?
>
> Regards.
>
>
>
> --
> View this message in context:
> http://drools.46999.n3.nabble.com/Rules-compilation-error-with-OSGi-integration-6-1-0-Beta3-tp4029601p4029635.html
> Sent from the Drools: User forum mailing list archive at Nabble.com.
> ___
> rules-users mailing list
> rules-users@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@lists.jboss.org
https://lists.jboss.org/mailman/listinfo/rules-users

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

2014-05-21 Thread Ephemeris Lappis
Hello.

I could try to test on ServiceMix 5 that embeds Karaf  2.3.4, but for my
concrete project, the customer current platform uses a ServiceMix 4.5.3
which is not really possible to change today while many other modules are
already deployed.

Did you try in your environment the test project that I attached yesterday
? There is a rule in the project with an "accumulate" that generates java
code that is not compiled because of missing indirect dependancy despite of
the Import-Package that I've copied from your examples. Hence my idea of a
"proxy" classloader between Drools and its compiler and the classloader
provided by the application bundle, and avoid the dynamic import that
breaks the good practices...


2014-05-21 11:48 GMT+02:00 Charles Moulliard :

> If you look to my example posted previously there are no issues. Can you
> make a test using just Apache Karaf 2.3.x with Drools 6.1.0.Beta3 and tell
> me what happen. Which JDK do you sue ?
>
>
> On Wed, May 21, 2014 at 9:03 AM, Ephemeris Lappis <
> ephemeris.lap...@gmail.com> wrote:
>
>> Hello.
>>
>> Although without much conviction, I've tried the
>> "Bundle-RequiredExecutionEnvironment: J2SE-1.7", but it doesn't change the
>> compilation level of the rules...
>>
>> As I said in a previous answer, I don't know exactly how to do it, but I
>> think the solution may be in the way that Drools takes the classloader
>> passed by the application to have access to specific classes like the
>> usually imported beans used in the rules. Indeed, perhaps that instead of
>> using directly this classloader, for its tasks, among of them the rules
>> compilation, it should be possible to use some kind of enriched
>> classloader
>> that carries all the Drools needed packages, and delegates application
>> classes resolution to the application's one.
>>
>> What do you think of that ?
>>
>> Regards.
>>
>>
>>
>> --
>> View this message in context:
>> http://drools.46999.n3.nabble.com/Rules-compilation-error-with-OSGi-integration-6-1-0-Beta3-tp4029601p4029635.html
>> Sent from the Drools: User forum mailing list archive at Nabble.com.
>> ___
>> rules-users mailing list
>> rules-users@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@lists.jboss.org
> https://lists.jboss.org/mailman/listinfo/rules-users
>
___
rules-users mailing list
rules-users@lists.jboss.org
https://lists.jboss.org/mailman/listinfo/rules-users

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

2014-05-21 Thread Charles Moulliard
I can reproduce your error when I deploy the project (compiled with 1.7)
and running with JDK 1.7 on Karaf 2.2.1/Felix 3.2.2 (= SMX 4.5.3)

2014-05-21 13:30:25,020 | INFO  | l Console Thread | ClasspathKieProject
   | 211 - org.drools.compiler - 6.0.3.redhat-1 | Found kmodule:
bundle://214.4:1/META-INF/kmodule.xml
2014-05-21 13:30:25,024 | DEBUG | l Console Thread | ClasspathKieProject
   | 211 - org.drools.compiler - 6.0.3.redhat-1 | Discovered
classpath module org.drools.example:simple:1.0.0-SNAPSHOT
2014-05-21 13:30:25,024 | INFO  | l Console Thread | KieRepositoryImpl
   | 211 - org.drools.compiler - 6.0.3.redhat-1 | KieModule was
added:org.drools.osgi.compiler.OsgiKieModule@501d0b5a
2014-05-21 13:30:25,044 | ERROR | l Console Thread | AbstractKieModule
   | 211 - org.drools.compiler - 6.0.3.redhat-1 | Unable to build
KieBaseModel:sampleKBase
Rule Compilation error : [Rule name='CanDrink']
org/drools/example/drink/Rule_CanDrink1955060708.java (8:541) : ArrayList
cannot be resolved to a type
org/drools/example/drink/Rule_CanDrink1955060708.java (8:550) : Syntax
error on token "<", ? expected after this token

BTW you have a workaround which is to define your code like this

List l = new ArrayList();

Is it because the server runs with JDK 5 in production that you cannot
change the code of the rules ?
As ServiceMix is just a packaging of Karaf + Camel + Cxf + ActiveMQ, why
don't you use directly Karaf and a more recent version of Felix (4.x) ?





On Wed, May 21, 2014 at 12:55 PM, Ephemeris Lappis <
ephemeris.lap...@gmail.com> wrote:

> Hello.
>
> I could try to test on ServiceMix 5 that embeds Karaf  2.3.4, but for my
> concrete project, the customer current platform uses a ServiceMix 4.5.3
> which is not really possible to change today while many other modules are
> already deployed.
>
> Did you try in your environment the test project that I attached yesterday
> ? There is a rule in the project with an "accumulate" that generates java
> code that is not compiled because of missing indirect dependancy despite of
> the Import-Package that I've copied from your examples. Hence my idea of a
> "proxy" classloader between Drools and its compiler and the classloader
> provided by the application bundle, and avoid the dynamic import that
> breaks the good practices...
>
>
> 2014-05-21 11:48 GMT+02:00 Charles Moulliard :
>
> If you look to my example posted previously there are no issues. Can you
>> make a test using just Apache Karaf 2.3.x with Drools 6.1.0.Beta3 and tell
>> me what happen. Which JDK do you sue ?
>>
>>
>> On Wed, May 21, 2014 at 9:03 AM, Ephemeris Lappis <
>> ephemeris.lap...@gmail.com> wrote:
>>
>>> Hello.
>>>
>>> Although without much conviction, I've tried the
>>> "Bundle-RequiredExecutionEnvironment: J2SE-1.7", but it doesn't change
>>> the
>>> compilation level of the rules...
>>>
>>> As I said in a previous answer, I don't know exactly how to do it, but I
>>> think the solution may be in the way that Drools takes the classloader
>>> passed by the application to have access to specific classes like the
>>> usually imported beans used in the rules. Indeed, perhaps that instead of
>>> using directly this classloader, for its tasks, among of them the rules
>>> compilation, it should be possible to use some kind of enriched
>>> classloader
>>> that carries all the Drools needed packages, and delegates application
>>> classes resolution to the application's one.
>>>
>>> What do you think of that ?
>>>
>>> Regards.
>>>
>>>
>>>
>>> --
>>> View this message in context:
>>> http://drools.46999.n3.nabble.com/Rules-compilation-error-with-OSGi-integration-6-1-0-Beta3-tp4029601p4029635.html
>>> Sent from the Drools: User forum mailing list archive at Nabble.com.
>>> ___
>>> rules-users mailing list
>>> rules-users@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@lists.jboss.org
>> https://lists.jboss.org/mailman/listinfo/rules-users
>>
>
>
> ___
> rules-users mailing list
> rules-users@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@lists.jboss.org
https://lists.jboss.org/mailman/listinfo/rules-users