On 15/02/2012 00:44, Alexander Filipchik wrote:Updated tests. Diff is attached.saw your msg on irc, great news :)
https://github.com/droolsjbpm/droolsjbpm-integration/tree/master/droolsjbpm-integration-docs/src/main/docbook/en-US/Chapter-OSGI
>> Don't forget to update the docs too, so they remain up to date.Where can I find the docs?
Alex
On Fri, Feb 10, 2012 at 11:44 AM, Mark Proctor <mproctor@codehaus.org> wrote:
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:
diff --git a/drools-compiler/pom.xml b/drools-compiler/pom.xmlindex 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>
diff --git a/drools-camel/pom.xml b/drools-camel/pom.xmlindex 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.xmlindex 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 <afilipchik@gmail.com> 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 gotNullPointerException (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 <salaboy@gmail.com> 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
<afilipchik@gmail.com> 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 <mproctor@codehaus.org>
>>
>> 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
>> 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
>>
>
>
> _______________________________________________
> rules-dev mailing list
> rules-dev@lists.jboss.org
> 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
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
_______________________________________________
rules-dev mailing list
rules-dev@lists.jboss.org
https://lists.jboss.org/mailman/listinfo/rules-dev