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




--
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



Reply via email to