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





Reply via email to