On 10/02/2012 19:41, Alexander Filipchik wrote:
Hello!
Can you submit a pull request over at github? Don't forget to update the docs too, so they remain up to date.

Mark

I finally managed to get it working, but it required some changes in the existent stuff...
Here is a diff:

git://github.com/droolsjbpm/drools.git <http://github.com/droolsjbpm/drools.git>
diff --git a/drools-compiler/pom.xml b/drools-compiler/pom.xml
index 708a5b2..4b1dc98 100644
--- a/drools-compiler/pom.xml
+++ b/drools-compiler/pom.xml
@@ -244,7 +244,7 @@
<_removeheaders>Ignore-Package</_removeheaders>
<Bundle-SymbolicName>org.drools.compiler;singleton:=true</Bundle-SymbolicName>
<Require-Bundle>org.drools.core;visibility:=reexport;bundle-version="${drools.osgi.version}"</Require-Bundle>
- <Import-Package>!org.drools.*,
+ <Import-Package>org.antlr.*;version="3.4",!org.drools.*,
<!-- java compilers are optional: only need one at most -->
org.codehaus.janino.*;resolution:=optional,org.eclipse.jdt.*;resolution:=optional,
               *</Import-Package>

git://github.com/droolsjbpm/droolsjbpm-integration.git <http://github.com/droolsjbpm/droolsjbpm-integration.git>
diff --git a/drools-camel/pom.xml b/drools-camel/pom.xml
index a5a6b3d..273bfaa 100644
--- a/drools-camel/pom.xml
+++ b/drools-camel/pom.xml
@@ -23,7 +23,7 @@
<dependency>
<groupId>org.drools</groupId>
<artifactId>knowledge-internal-api</artifactId>
- </dependency>
+ </dependency>
<dependency>
<groupId>org.drools</groupId>
<artifactId>drools-core</artifactId>
@@ -186,5 +186,44 @@
<scope>provided</scope>
</dependency>
</dependencies>
-
+ <build>
+ <plugins>
+ <plugin>
+ <artifactId>maven-jar-plugin</artifactId>
+ <configuration>
+ <archive>
+ <manifestFile>META-INF/MANIFEST.MF</manifestFile>
+ </archive>
+ </configuration>
+ </plugin>
+ <plugin>
+ <groupId>org.apache.felix</groupId>
+ <artifactId>maven-bundle-plugin</artifactId>
+ <extensions>true</extensions>
+ <executions>
+ <execution>
+ <id>manifest</id>
+ <phase>process-classes</phase>
+ <goals>
+ <goal>manifest</goal>
+ </goals>
+ </execution>
+ </executions>
+ <configuration>
+ <manifestLocation>META-INF</manifestLocation>
+ <instructions>
+ <Bundle-SymbolicName>org.drools.camel;singleton:=true</Bundle-SymbolicName>
+ <_removeheaders>Ignore-Package</_removeheaders>
+ <Require-Bundle>
+              org.drools.core;bundle-version="${drools.osgi.version}",
+              org.drools.spring;bundle-version="${drools.osgi.version}"
+ </Require-Bundle>
+ <Import-Package>!org.drools.*, *</Import-Package>
+ <Export-Package>!org.drools.grid, org.drools.camel.*, org.drools.camel.jax</Export-Package>
+ <DynamicImport-Package>org.drools.*</DynamicImport-Package>
+ </instructions>
+ </configuration>
+ </plugin>
+ </plugins>
+ </build>
</project>
diff --git a/drools-container/drools-spring/pom.xml b/drools-container/drools-spring/pom.xml
index b6be52c..f83a457 100644
--- a/drools-container/drools-spring/pom.xml
+++ b/drools-container/drools-spring/pom.xml
@@ -126,7 +126,45 @@
<groupId>org.antlr</groupId>
<artifactId>antlr-runtime</artifactId>
<scope>test</scope>
- </dependency>
+ </dependency>
</dependencies>
-
+ <build>
+ <plugins>
+ <plugin>
+ <artifactId>maven-jar-plugin</artifactId>
+ <configuration>
+ <archive>
+ <manifestFile>META-INF/MANIFEST.MF</manifestFile>
+ </archive>
+ </configuration>
+ </plugin>
+ <plugin>
+ <groupId>org.apache.felix</groupId>
+ <artifactId>maven-bundle-plugin</artifactId>
+ <extensions>true</extensions>
+ <executions>
+ <execution>
+ <id>manifest</id>
+ <phase>process-classes</phase>
+ <goals>
+ <goal>manifest</goal>
+ </goals>
+ </execution>
+ </executions>
+ <configuration>
+ <manifestLocation>META-INF</manifestLocation>
+ <instructions>
+ <Bundle-SymbolicName>org.drools.spring;singleton:=true</Bundle-SymbolicName>
+ <_removeheaders>Ignore-Package</_removeheaders>
+ <Require-Bundle>org.drools.core;bundle-version="${drools.osgi.version}"</Require-Bundle>
+ <Import-Package>!org.drools.*, *</Import-Package>
+ <Export-Package>
+ org.drools.grid,org.drools.grid.impl,org.drools.container.spring
+ </Export-Package>
+ <DynamicImport-Package>org.drools.*</DynamicImport-Package>
+ </instructions>
+ </configuration>
+ </plugin>
+ </plugins>
+ </build>
</project>

Alex

On Tue, Feb 7, 2012 at 6:01 PM, Alexander Filipchik <[email protected] <mailto:[email protected]>> wrote:

    Thank you! But didn't help.
    Actually I see some weird behavior. I decided to try referring
    drools-core using Require-Bundle from my bundle, so I added
    <Bundle-SymbolicName>org.drools.core</Bundle-SymbolicName> to a
    drools-core package, recompiled it and got
    NullPointerException (still without stacktrace) when I tried to
    deploy new core bundle to a karaf container.

    I was able to deploy it after I removed Bundle-SymbolicName and
    recompiled again.

    Thanks,
    Alex

    On Tue, Feb 7, 2012 at 4:42 PM, Mauricio Salatino
    <[email protected] <mailto:[email protected]>> wrote:

        I've already answer a similar question here.. try including
        inside the
        application that is using the bundles the file called:
        drools.packagebuilder.conf

        which contains:
        drools.dialect.default = java
        drools.dialect.java =
        org.drools.rule.builder.dialect.java.JavaDialectConfiguration
        drools.dialect.java.compiler = ECLIPSE

        drools.dialect.mvel =
        org.drools.rule.builder.dialect.mvel.MVELDialectConfiguration
        drools.dialect.mvel.strict = true
        drools.dialect.mvel.langLevel = 4

        drools.accumulate.function.average =
        org.drools.base.accumulators.AverageAccumulateFunction
        drools.accumulate.function.max =
        org.drools.base.accumulators.MaxAccumulateFunction
        drools.accumulate.function.min =
        org.drools.base.accumulators.MinAccumulateFunction
        drools.accumulate.function.count =
        org.drools.base.accumulators.CountAccumulateFunction
        drools.accumulate.function.sum =
        org.drools.base.accumulators.SumAccumulateFunction
        drools.accumulate.function.collectList =
        org.drools.base.accumulators.CollectListAccumulateFunction
        drools.accumulate.function.collectSet =
        org.drools.base.accumulators.CollectSetAccumulateFunction

        drools.evaluator.coincides =
        org.drools.base.evaluators.CoincidesEvaluatorDefinition
        drools.evaluator.before =
        org.drools.base.evaluators.BeforeEvaluatorDefinition
        drools.evaluator.after =
        org.drools.base.evaluators.AfterEvaluatorDefinition
        drools.evaluator.meets =
        org.drools.base.evaluators.MeetsEvaluatorDefinition
        drools.evaluator.metby =
        org.drools.base.evaluators.MetByEvaluatorDefinition
        drools.evaluator.overlaps =
        org.drools.base.evaluators.OverlapsEvaluatorDefinition
        drools.evaluator.overlappedby =
        org.drools.base.evaluators.OverlappedByEvaluatorDefinition
        drools.evaluator.during =
        org.drools.base.evaluators.DuringEvaluatorDefinition
        drools.evaluator.includes =
        org.drools.base.evaluators.IncludesEvaluatorDefinition
        drools.evaluator.starts =
        org.drools.base.evaluators.StartsEvaluatorDefinition
        drools.evaluator.startedby =
        org.drools.base.evaluators.StartedByEvaluatorDefinition
        drools.evaluator.finishes =
        org.drools.base.evaluators.FinishesEvaluatorDefinition
        drools.evaluator.finishedby =
        org.drools.base.evaluators.FinishedByEvaluatorDefinition
        drools.evaluator.equality =
        org.drools.base.evaluators.EqualityEvaluatorsDefinition
        drools.evaluator.comparable =
        org.drools.base.evaluators.ComparableEvaluatorsDefinition
        drools.evaluator.set =
        org.drools.base.evaluators.SetEvaluatorsDefinition
        drools.evaluator.matches =
        org.drools.base.evaluators.MatchesEvaluatorsDefinition
        drools.evaluator.soundslike =
        org.drools.base.evaluators.SoundslikeEvaluatorsDefinition

        Cheers


        On Tue, Feb 7, 2012 at 9:03 PM, Alexander Filipchik
        <[email protected] <mailto:[email protected]>> wrote:
        > It's not an obvious how to OSGI-fy something :)
        >
        > I did some homework - now I have OSGi-ified versions of
        drools-spring and
        > drools-camel.
        > Also I created own bundle and tried to import
        KnowledgeBaseFactoryService,
        > ServiceRegistry and KnowledgeBaseFactoryService as described in
        > http://docs.jboss.org/jbpm/v5.2/userguide/ch18.html#d0e4308.
        > All what I got - NullPointerException from karaf core
        (haven't gotten full
        > staketrace yet. For some reason it is just:
> 15:11:34,484 | INFO | l Console Thread | Console |
        > ?                                   ? | 34 -
        org.apache.karaf.shell.console
        > - 2.2.2.fuse-02-13 | Exception caught while executing command
        > java.lang.NullPointerException
        > )
        >
        > So, I spent some time randomly adding and removing
        configuration params and
        > I found - NPE occurs when I'm trying to import
        > org.drools.KnowledgeBaseFactoryService.
        > I guess (i'm not OSGI expert) it could be because org.drools
        package is
        > exported in 2! bundles. It is in drools-core and
        knowledge-api bundles. And
        > I guess, karaf container just can't link my bundle with both
        core and api,
        > only first bundle which contains requested package
        (org.drools) wins.
        >
        > Any ideas on how to make it work?
        > I actually have one - every bundle should export own
        package. For
        > knowledge-api it should be org.drools.api,
        and org.drools.core for
        > drools-core.
        >
        > Here is full log of similar packages:
        > WARNING: multiple bundles are exporting package
        org.drools.command
        > - org.drools.core [218]
        > - org.drools.api [216]
        > - org.drools.internalapi [217]
        >
        > WARNING: multiple bundles are exporting package
        org.drools.runtime.process
        > - org.drools.core [218]
        > - org.drools.api [216]
        >
        > WARNING: multiple bundles are exporting package org.drools.time
        > - org.drools.core [218]
        > - org.drools.api [216]
        >
        > WARNING: multiple bundles are exporting package
        > org.apache.geronimo.transaction
        > - org.apache.aries.transaction.manager [123]
        > - org.apache.aries.transaction.manager [51]
        >
        > WARNING: multiple bundles are exporting package org.drools
        > - org.drools.core [218]
        > - org.drools.api [216]
        >
        > WARNING: multiple bundles are exporting package
        > org.apache.geronimo.transaction.manager
        > - org.apache.aries.transaction.manager [123]
        > - org.apache.aries.transaction.manager [51]
        >
        > WARNING: multiple bundles are exporting package org.drools.grid
        > - org.drools.core [218]
        > - org.drools.spring [220]
        >
        > WARNING: multiple bundles are exporting package jline
        > - org.apache.servicemix.bundles.jruby [210]
        > - org.apache.karaf.shell.console [34]
        >
        > WARNING: multiple bundles are exporting package
        > org.apache.geronimo.transaction.log
        > - org.apache.aries.transaction.manager [123]
        > - org.apache.aries.transaction.manager [51]
        >
        > WARNING: multiple bundles are exporting package
        org.drools.management
        > - org.drools.core [218]
        > - org.drools.api [216]
        >
        > WARNING: multiple bundles are exporting package org.drools.agent
        > - org.drools.core [218]
        > - org.drools.api [216]
        >
        > WARNING: multiple bundles are exporting package org.drools.event
        > - org.drools.core [218]
        > - org.drools.api [216]
        >
        > 2012/2/3 Mark Proctor <[email protected]
        <mailto:[email protected]>>
        >>
        >> neither spring or camel have been OSGi-ified. only api,
        core, compiler,
        >> templates, decision-tables and flow have.
        >>
        >> If someone wants to OSGi-ify those and contribute back they
        are very
        >> welcome:
        >> 1) update the pom.xml to use the osgi bundle plugin, see
        other existing
        >> poms.
        >>
        >>
        
https://github.com/droolsjbpm/drools/blob/master/drools-decisiontables/pom.xml
        >> 2) create an Activator to register the module, again see
        Activator's for
        >> core, compiler etc.
        >>
        >>
        
https://github.com/droolsjbpm/drools/blob/master/drools-decisiontables/src/main/java/org/drools/osgi/decisiontables/Activator.java
        >> 3) update the osgi bundle's pom with new dependencies, make
        sure to pull
        >> in the spring ones, unless the actual project provides osgi
        ready jars.
        >>
        >>
        
https://github.com/droolsjbpm/droolsjbpm-build-distribution/tree/master/drools-osgi-bundles
        >> 4) Update the boot-bundles.properties so that Spring DM
        loads the OSGi
        >> dependencies
        >>
        >>
        
https://github.com/droolsjbpm/droolsjbpm-build-distribution/blob/master/drools-osgi-bundles/org.drools.osgi.test/src/test/filtered-resources/boot-bundles.properties
        >> 5) write unit tests for spring and camel.
        >>
        >> Mark
        >> On 03/02/2012 03:47, Alexander Filipchik wrote:
        >>
        >> Hello all!
        >>
        >> Don't know if it is right list to ask, but I'm trying to
        make drools +
        >> camel running on Fuse (ServiceMix container).
        >> I couldn't even install OSGI drools artifacts for 5.3.1
        version (because
        >> of weird dependency on drools.core Snapshot),
        >> but did it with v5.2.1. I used:
        >>
        >> mvel2/2.1.0,
        >>
        org.drools/drools-core/5.2.1.Final, 
org.drools/drools-compiler/5.2.1.Final,
        >> org.drools/knowledge-api/5.2.1.Final
        >> and org.drools/drools-camel/5.2.1.Final.
        >>
        >> All are installed and active. Part of log:
        >>
        >> [ 162] [Active     ] [            ] [       ] [   60]
        Drools :: Compiler
        >> (5.2.1.Final)
        >>
        >> [ 163] [Active     ] [            ] [       ] [   60] mvel2
        >> (2.1.0.drools4)
        >>
        >> [ 164] [Active     ] [            ] [       ] [   60]
        Drools :: Core
        >> (5.2.1.Final)
        >>
        >> [ 165] [Active     ] [            ] [       ] [   60]
        Knowledge API
        >> (5.2.1.Final)
        >>
        >> [ 172] [Active     ] [            ] [       ] [   60]
        >> mvn:org.drools/drools-camel/5.2.1.Final
        >>
        >> Then I tried to add my own camel-drools router (I created
        OSGI bundle for
        >> it). It depends on:
        >>
        >> Import-Package:
        >>
        
org.apache.activemq,org.apache.activemq.camel.component,org.apache.activemq.pool,org.apache.camel;version="[2.8,3)",org.apache.camel.builder;version="[2.8,3)",org.apache.camel.component.jms;version="[2.8,3)",org.apache.camel.model;version="[2.8,3)",org.drools.camel.component,org.osgi.service.blueprint;version="[1.0.0,2.0.0)",org.springframework.transaction;version="[3,4)"
        >>
        >> It tried to install it to a container but all I got -
        >>
        >> Error executing command: Unresolved constraint in bundle
        >> com.betfair.drools [170]: Unable to resolve 170.0: missing
        requirement
        >> [170.0] package; (package=org.drools.camel.component)
        >>
        >> I even tried to put drools-camel.jar
        with org.drools.camel.component in a
        >> lib folder and add package to
        org.osgi.framework.system.packages.extra, but
        >> got same result.
        >>
        >> Do you have any idea, blog posts, samples which could help me?
        >> I'm completely stuck.
        >>
        >> Thanks,
        >> Alex
        >>
        >>
        >> _______________________________________________
        >> rules-users mailing list
        >> [email protected]
        <mailto:[email protected]>
        >> https://lists.jboss.org/mailman/listinfo/rules-users
        >>
        >>
        >>
        >> _______________________________________________
        >> rules-users mailing list
        >> [email protected]
        <mailto:[email protected]>
        >> https://lists.jboss.org/mailman/listinfo/rules-users
        >>
        >
        >
        > _______________________________________________
        > rules-dev mailing list
        > [email protected] <mailto:[email protected]>
        > https://lists.jboss.org/mailman/listinfo/rules-dev
        >



        --
         - CTO @ http://www.plugtree.com
         - MyJourney @ http://salaboy.wordpress.com
         - Co-Founder @ http://www.jugargentina.org
         - Co-Founder @ http://www.jbug.com.ar

         - Salatino "Salaboy" Mauricio -

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





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

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

Reply via email to