Jaroslav,
Would it be possible for you to create a pull request against he current
codebase for this? Having someone who understands OSGi make this change
is better than having someone who does no use OSGi day-to-day.
Andy
On 20/03/16 07:44, Jaroslav Pullmann wrote:
Hello Andy,
> 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.
- 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.
Best regards
Jaroslav