Github user acoburn commented on a diff in the pull request:

    https://github.com/apache/jena/pull/428#discussion_r194126560
  
    --- Diff: 
apache-jena-osgi/jena-osgi-features/src/main/resources/features.xml ---
    @@ -21,28 +21,24 @@
        <feature name="jena" version="${project.version}">
                
<bundle>mvn:org.apache.jena/jena-osgi/${project.version}</bundle>
                <feature 
version="${project.version}">jena_osgi_dependencies</feature>
    -           <!-- This is normally exposed by Apache Karaf via root 
classloader -->
    -           <!--<feature version="2.11.0">xerces</feature>-->
        </feature>
     
        <feature name="jena_osgi_dependencies" version="${project.version}">
    -           
<bundle>mvn:com.github.andrewoma.dexx/collection/${ver.dexxcollection}</bundle>
    -           
<bundle>mvn:com.github.jsonld-java/jsonld-java/${ver.jsonldjava}</bundle>
    -           
<bundle>mvn:com.fasterxml.jackson.core/jackson-core/${ver.jackson}</bundle>
    -           
<bundle>mvn:com.fasterxml.jackson.core/jackson-databind/${ver.jackson}</bundle>
    -           
<bundle>mvn:com.fasterxml.jackson.core/jackson-annotations/${ver.jackson}</bundle>
    -           
<bundle>mvn:org.apache.httpcomponents/httpcore-osgi/${ver.httpcore-osgi}</bundle>
    -           
<bundle>mvn:org.apache.httpcomponents/httpclient-osgi/${ver.httpclient-osgi}</bundle>
    -           
<bundle>mvn:org.apache.commons/commons-csv/${ver.commonscsv}</bundle>
    -           
<bundle>mvn:org.apache.commons/commons-lang3/${ver.commonslang3}</bundle>
    -           
<bundle>mvn:commons-codec/commons-codec/${ver.commons-codec}</bundle>
    -           <bundle>mvn:commons-io/commons-io/${ver.commonsio}</bundle>
    -           
<bundle>mvn:org.apache.thrift/libthrift/${ver.libthrift}</bundle>       
    -   </feature>
    -
    -   <feature name="xerces" version="2.11.0">
    -           
<bundle>mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.xerces/2.11.0_1</bundle>
    -           
<bundle>mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.xmlresolver/1.2_5</bundle>
    +           <bundle 
dependency="true">mvn:com.github.andrewoma.dexx/collection/${ver.dexxcollection}</bundle>
    +           <bundle 
dependency="true">mvn:com.github.jsonld-java/jsonld-java/${ver.jsonldjava}</bundle>
    +           <bundle 
dependency="true">mvn:com.fasterxml.jackson.core/jackson-core/${ver.jackson}</bundle>
    +           <bundle 
dependency="true">mvn:com.fasterxml.jackson.core/jackson-databind/${ver.jackson}</bundle>
    +           <bundle 
dependency="true">mvn:com.fasterxml.jackson.core/jackson-annotations/${ver.jackson}</bundle>
    +           <bundle 
dependency="true">mvn:org.apache.httpcomponents/httpcore-osgi/${ver.httpcore-osgi}</bundle>
    +           <bundle 
dependency="true">mvn:org.apache.httpcomponents/httpclient-osgi/${ver.httpclient-osgi}</bundle>
    +           <bundle 
dependency="true">mvn:org.apache.commons/commons-compress/${ver.commons-compress}</bundle>
    +           <bundle 
dependency="true">mvn:org.apache.commons/commons-csv/${ver.commonscsv}</bundle>
    +           <bundle 
dependency="true">mvn:org.apache.commons/commons-lang3/${ver.commonslang3}</bundle>
    +           <bundle 
dependency="true">mvn:commons-codec/commons-codec/${ver.commons-codec}</bundle>
    +           <bundle 
dependency="true">mvn:commons-io/commons-io/${ver.commonsio}</bundle>
    +           <bundle 
dependency="true">mvn:org.apache.thrift/libthrift/${ver.libthrift}</bundle>
    +           <!-- Guava 24.1 is required by jsonld-java -->
    +           <bundle 
dependency="true">mvn:com.google.guava/guava/24.1-jre</bundle>
        </feature>
    --- End diff --
    
    You are correct that jsonld-java does shade guava, but their OSGi bundle 
still imports the `com.google.common` packages: this is from the jsonld-java 
OSGi metadata:
    
    ```
    Import-Package
      ...
      com.google.common.cache                {version=[24.1,25)}
      com.google.common.collect              {version=[24.1,25)}
    ```
    
    And so in practice, adding guava as a dependency is still necessary. I 
think this is an error with the jsonld-java OSGi metadata, and I will bring 
this up with that project.
    
    For example, when trying to load just the `jsonld-java` bundle in Karaf -- 
once I add the Jackson dependencies -- I get this error if guava is not also 
installed:
    
    ```
    Unable to resolve com.github.jsonld-java [46](R 46.0): missing requirement 
[com.github.jsonld-java [46](R 46.0)] osgi.wiring.package; 
(&(osgi.wiring.package=com.google.common.cache)(version>=24.1.0)(!(version>=25.0.0)))
    ```
    
    ...which means that the guava packages need to be installed. Once guava is 
added, the jsonld-java bundle installs and starts just fine.


---

Reply via email to