Jaroslav Pullmann
2016-03-20 07:44:38 UTC
Hello Andy,
- I followed the hint on "Service Loader Consumer":
http://blog.osgi.org/2013/02/javautilservicel oader-in-osgi.html
- used Karaf 4.0.5 providing OSGi v5 APIs along with "OSGi ServiceLoader Mediator" specification
- installed Apache Aries SPI Fly bundle, the reference implementation:
http://mvnrepository.com/artifact/org.apache.aries.spifly/org.apache.aries.spifly.dynamic.bundle/1.0.8
- enhanced Jena-Osgi pom according to "spi-fly-example-provider-consumer-bundle"
http://aries.apache.org/modules/spi-fly.html#examples
http://svn.apache.org/repos/asf/aries/trunk/spi-fly/spi-fly-examples/spi-fly-example-provider-consumer-bundle/pom.xml
<build>
<plugins>
<plugin>
<groupId>org.apache.felix</groupId>
<artifactId>maven-bundle-plugin</artifactId>
<configuration>
<instructions>
...
<SPI-Consumer>*</SPI-Consumer>
<SPI-Provider>*</SPI-Provider>
...
</instructions>
</configuration>
</plugin>
</plugins>
</build>
- and, voilà (logging via a bundle Activator with JenaSystem.DEBUG_INIT enabled):
JenaSystem.init - start
InitJenaCore
InitRIOT
InitARQ
InitTDB
Init: JenaInitLevel0
Init: InitJenaCore
JenaCore.init - start
JenaCore.init - finish
Init: InitRIOT
RIOT.init - start
RIOT.init - finish
Init: InitARQ
ARQ.init - start
ARQ.init - finish
Init: InitTDB
TDB.init - start
TDB.init - finish
JenaSystem.init - finish
Jena-Osgi bundle configured!
Best regards
Jaroslav
Can you debug enough to see if ARQ.init is bing called from InitARQ?>
The NPE can come from getContext() returning null
and getContext() is not null if ARQ.init has been called because
defaultSettings() unconditionally creates a Context object.
you were right! Apparently the ServiceProvider mechanism and OSGi do not play nicely.The NPE can come from getContext() returning null
and getContext() is not null if ARQ.init has been called because
defaultSettings() unconditionally creates a Context object.
- I followed the hint on "Service Loader Consumer":
http://blog.osgi.org/2013/02/javautilservicel oader-in-osgi.html
- used Karaf 4.0.5 providing OSGi v5 APIs along with "OSGi ServiceLoader Mediator" specification
- installed Apache Aries SPI Fly bundle, the reference implementation:
http://mvnrepository.com/artifact/org.apache.aries.spifly/org.apache.aries.spifly.dynamic.bundle/1.0.8
- enhanced Jena-Osgi pom according to "spi-fly-example-provider-consumer-bundle"
http://aries.apache.org/modules/spi-fly.html#examples
http://svn.apache.org/repos/asf/aries/trunk/spi-fly/spi-fly-examples/spi-fly-example-provider-consumer-bundle/pom.xml
<build>
<plugins>
<plugin>
<groupId>org.apache.felix</groupId>
<artifactId>maven-bundle-plugin</artifactId>
<configuration>
<instructions>
...
<SPI-Consumer>*</SPI-Consumer>
<SPI-Provider>*</SPI-Provider>
...
</instructions>
</configuration>
</plugin>
</plugins>
</build>
- and, voilà (logging via a bundle Activator with JenaSystem.DEBUG_INIT enabled):
JenaSystem.init - start
InitJenaCore
InitRIOT
InitARQ
InitTDB
Init: JenaInitLevel0
Init: InitJenaCore
JenaCore.init - start
JenaCore.init - finish
Init: InitRIOT
RIOT.init - start
RIOT.init - finish
Init: InitARQ
ARQ.init - start
ARQ.init - finish
Init: InitTDB
TDB.init - start
TDB.init - finish
JenaSystem.init - finish
Jena-Osgi bundle configured!
We know that it is only a small %-age of the downloads. There is a good
chance that people are also packaging their own setups because the
bundles are right for them.
Having feedback and fixes is essential to keep a module usable.
I am glad to use Jena, and now even more ;o) Many thanks for you support.chance that people are also packaging their own setups because the
bundles are right for them.
Having feedback and fixes is essential to keep a module usable.
Best regards
Jaroslav
--
Jaroslav Pullmann
Fraunhofer Institute for Applied Information Technology FIT
Web Compliance Center: http://imergo.com/ · http://imergo.de/
Schloss Birlinghoven, D-53757 Sankt Augustin, Germany
Phone: +49-2241-142623 · Fax: +49-2241-142065
Jaroslav Pullmann
Fraunhofer Institute for Applied Information Technology FIT
Web Compliance Center: http://imergo.com/ · http://imergo.de/
Schloss Birlinghoven, D-53757 Sankt Augustin, Germany
Phone: +49-2241-142623 · Fax: +49-2241-142065