I still seem to be having problems getting it working. The problem
did
not go away.
I still get the same error. Would anyone know of a simple step-by-step
tutorial for using Drools in a Felix OSGi environment? Preferrably
within Eclipse and with Pax Runner.
Any help would be very much appreciated.
Thank you for your time!
Kind regards
Aerv
2010/4/6 AervTerrh <woutervanisterdael(a)gmail.com
<mailto:woutervanisterdael@gmail.com>>
Thanks for the reply. I will try this tomorrow and keep you posted!
2010/4/5 Jason Davidson [via Drools - Java Rules Engine] <[hidden
email]
<
http://n3.nabble.com/user/SendEmail.jtp?type=node&node=698969&i=0...
I don't know if this helps, but I had to turn the MVEL JIT
compiler off in the Equinox OSGi container:
OptimizerFactory.setDefaultOptimizer("reflective");
Also, we used pre-compiled packages instead of compiling the
DRL files at runtime. For example:
....
RuleBaseConfiguration ruleBaseConfig = new
RuleBaseConfiguration();
ruleBaseConfig.setClassLoader(this.getClass().getClassLoader());
//MVEL in OSGi is a complete CF - this turns off
the MVEL JIT - potential resource hog but that's the nature of
OSGi classloading
//and Drools...
OptimizerFactory.setDefaultOptimizer("reflective");
RuleBase ruleBase =
RuleBaseFactory.newRuleBase(ruleBaseConfig);
InputStream pkgIs =
this.getClass().getResourceAsStream("/com/cjs/hazel/rules/com.cjs.hazel.rules.pkg");
addPackage(ruleBase,pkgIs);
.....
On Fri, Apr 2, 2010 at 4:42 PM, AervTerrh <[hidden email]
<
http://n3.nabble.com/user/SendEmail.jtp?type=node&node=698731&i=0...
wrote:
Hey,
Okay. I know this problem can be found all over. But I
can't seem to figure
out a solution to it. Somehow I must be doing something
wrong. I've created
a simple application that evaluates some rules and changes
some objects
based on that. Everything worked fine, not a single
problem there. All
libraries could be easily found etc.
Now I wanted to convert this to a Felix OSGi bundle.
So, what I did, was creating a bundle (new plugin project
based on existing
jars) with the drools jars (core, compiler, api, jsr) and
tried the next
code in the RuleEngine class:
Properties props = new Properties();
props.setProperty("drools.dialect.java.compiler",
"JANINO");
KnowledgeBuilderConfiguration config =
KnowledgeBuilderFactory.newKnowledgeBuilderConfiguration(props,
null);
(here's where it fails)
KnowledgeBuilder kbuilder =
KnowledgeBuilderFactory.newKnowledgeBuilder(config);
kbuilder.add(ResourceFactory.newClassPathResource(fileName,
RuleEngine.class), ResourceType.DRL);
This is pretty much the loading of the rule file. The
RuleEngine is started
in an Activator. The file is found and everything. But I
keep getting the
same error when starting the bundle.
org.drools.RuntimeDroolsException: Unable to load dialect
'org.drools.rule.builder.dialect.mvel.MVELDialectConfigurati
on:mvel:null'
at
org.drools.compiler.PackageBuilderConfiguration.addDialect(P
ackageBuilderConfiguration.java:274)
at
org.drools.compiler.PackageBuilderConfiguration.buildDialect
ConfigurationMap(PackageBuilderConfiguration.java:259)
at
org.drools.compiler.PackageBuilderConfiguration.init(Package
BuilderConfiguration.java:176)
at
org.drools.compiler.PackageBuilderConfiguration.<init>(PackageBuilderConfiguration.java:148)
at
org.drools.builder.impl.KnowledgeBuilderProviderImpl.newKnow
ledgeBuilderConfiguration(KnowledgeBuilderProviderImpl.java:
21)
at
org.drools.builder.KnowledgeBuilderFactory.newKnowledgeBuild
erConfiguration(KnowledgeBuilderFactory.java:68)
at test.Activator$RuleCreator.createRule(Activator.java:52)
at test.Activator.start(Activator.java:32)
at
org.apache.felix.framework.util.SecureAction.startActivator(
SecureAction.java:639)
at
org.apache.felix.framework.Felix.activateBundle(Felix.java:1
700)
at
org.apache.felix.framework.Felix.startBundle(Felix.java:1622 )
at
org.apache.felix.framework.Felix.setActiveStartLevel(Felix.j
ava:1077)
at
org.apache.felix.framework.StartLevelImpl.run(StartLevelImpl
.java:264)
at java.lang.Thread.run(Unknown Source)
Caused by: java.lang.ClassNotFoundException:
org.drools.rule.builder.dialect.mvel.MVELDialectConfiguratio n
at java.net.URLClassLoader$1.run(Unknown Source)
The packages I import in the manifest:
Import-Package: org.codehaus.janino;version="2.4.3",
org.drools,
org.drools.builder,
org.drools.compiler,
org.drools.io <
http://org.drools.io>,
org.drools.rule,
org.drools.rule.builder.dialect.java,
org.drools.rule.builder.dialect.mvel,
org.osgi.framework;version="1.3.0"
In my target platform I add the the drools project I
created (with
drools-xx.jar (the necessary ones), I also added the
following:
-ant
-antlr-runtime
-janino
-jsr94
-xstream
But I can't seem to get it working... Does anyone know
what can be done
about this? Or a working example of Drools in Felix OSGi
would also be
helpful.
Any help is very much appreciated, I've been looking into
this for days.
Thanks!
Kind regards,
Aerv
--
View this message in context:
http://n3.nabble.com/Drools-and-OSGi-tp694011p694011.html
Sent from the Drools - User mailing list archive at
Nabble.com.
_______________________________________________
rules-users mailing list
[hidden email]
<
http://n3.nabble.com/user/SendEmail.jtp?type=node&node=698731&i=1...
https://lists.jboss.org/mailman/listinfo/rules-users
_______________________________________________
rules-users mailing list
[hidden email]
<
http://n3.nabble.com/user/SendEmail.jtp?type=node&node=698731&i=2...
https://lists.jboss.org/mailman/listinfo/rules-users
--
__________________________________
Van Isterdael Wouter
Roesbeke 27
9402 Meerbeke
0496401476
------------------------------------------------------------------------
View this message in context: Re: Drools and OSGi
<
http://n3.nabble.com/Drools-and-OSGi-tp694011p698969.html>
Sent from the Drools - User mailing list archive
<
http://n3.nabble.com/Drools-User-f47000.html> at
Nabble.com.
_______________________________________________
rules-users mailing list
rules-users(a)lists.jboss.org <mailto:rules-users@lists.jboss.org>
https://lists.jboss.org/mailman/listinfo/rules-users
--
__________________________________
Van Isterdael Wouter
Roesbeke 27
9402 Meerbeke
0496401476
_______________________________________________
rules-users mailing list
rules-users(a)lists.jboss.org
https://lists.jboss.org/mailman/listinfo/rules-users