On 14/04/2010 19:27, Wouter Van Isterdael wrote:
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.
Try using the dependencies provided in OSGi bundles:
https://hudson.jboss.org/hudson/job/drools/lastSuccessfulBuild/artifact/trunk/target/

And follow this unit test for examples:
http://fisheye.jboss.org/browse/JBossRules/trunk/osgi-bundles/org.drools.osgi.test/src/test/java/org/drools/osgi/integrationtests/SimpleOsgiTest.java?r=31755

Mark



Thank you for your time!

Kind regards

Aerv

2010/4/6 AervTerrh <[email protected] <mailto:[email protected]>>

    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
    [email protected] <mailto:[email protected]>
    https://lists.jboss.org/mailman/listinfo/rules-users




--
__________________________________
Van Isterdael Wouter
Roesbeke 27
9402 Meerbeke
0496401476


_______________________________________________
rules-users mailing list
[email protected]
https://lists.jboss.org/mailman/listinfo/rules-users

_______________________________________________
rules-users mailing list
[email protected]
https://lists.jboss.org/mailman/listinfo/rules-users

Reply via email to