Uploaded image for project: 'Apache Jena'
  1. Apache Jena
  2. JENA-1139

jena-osgi does not initialize all modules

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Closed
    • Major
    • Resolution: Fixed
    • Jena 3.0.1
    • Jena 3.1.0
    • OSGi
    • None

    Description

      As discovered in TAVERNA-892 the jena-osgi of Jena 3.0.1
      seems to have not merged correctly
      META-INF/services/org.apache.jena.system.JenaSubsystemLifecycle

      which breaks the new Jena initialization - only TDB is initialized - but TDB depends on ARQ already being initialized (to get its context).

      stain@biggie:~/.m2/repository/org/apache/jena/jena-osgi$ unzip ./3.0.1/jena-osgi-3.0.1.jar META-INF/services/org.apache.jena.system.JenaSubsystemLifecycle
      Archive:  ./3.0.1/jena-osgi-3.0.1.jar
        inflating: META-INF/services/org.apache.jena.system.JenaSubsystemLifecycle  
      
      stain@biggie:~/.m2/repository/org/apache/jena/jena-osgi$ cat META-INF/services/org.apache.jena.system.JenaSubsystemLifecycle
      org.apache.jena.tdb.sys.InitTDB
      

      So basically only the last JenaSubsystemLifecycle file survives when shading jena-core, jena-arq, jena-tdb, jena-iri with Embed-Dependency and inline=true.

      The equivalent of the Maven Shade plugin's ServicesResourceTransformer would be able to merge these.

      https://maven.apache.org/plugins/maven-shade-plugin/examples/resource-transformers.html#ServicesResourceTransformer

      but I'm not sure how this can be done with the bundle plugin. I guess it could be overridden with its own src/main/resources/META-INF/services/ file in jena-osgi as well - but then it needs maintenance.

      Attachments

        Issue Links

          Activity

            People

              andy Andy Seaborne
              stain Stian Soiland-Reyes
              Votes:
              0 Vote for this issue
              Watchers:
              6 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: