[ 
https://issues.apache.org/jira/browse/TIKA-2941?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16945889#comment-16945889
 ] 

Bob Paulin commented on TIKA-2941:
----------------------------------

Just an update to provide some transparency around the "why" we got here.  With 
the newer version of the maven-bundle-plugin when I revert my commit from 
before I do not see the transitive dependencies included if the tika-parsers 
are in provided scope.  With tika-parsers being embedded it does not really 
make sense for it to be in provided scope anyways.  However with tika-parsers 
as a compile time dependency all the transitive dependencies are included in 
maven which is what is being called out as the issue in this JIRA.  The good 
thing from an OSGi perspective we're still OK since only the following packages 
are exported:

 
{code:java}
<Export-Package>
              !org.apache.tika.parser,
              !org.apache.tika.parser.external,
              org.apache.tika.parser.*,
              org.apache.tika.metadata.serialization.*,
            </Export-Package> {code}
 

But the maven side still shows all the transitive dependencies coming through.  
So in an OSGi runtime all these packages are private as expected but in the 
development environment this is a bit confusing since maven shows them coming 
through.  Will need some time to see if we can get the maven side of this 
equation right without breaking the OSGi side.   Hopefully this helps provide 
some context around the problem we're solving.

 

> OSGI bundle and app are not self-contained
> ------------------------------------------
>
>                 Key: TIKA-2941
>                 URL: https://issues.apache.org/jira/browse/TIKA-2941
>             Project: Tika
>          Issue Type: Bug
>    Affects Versions: 1.22
>            Reporter: Peng Cheng
>            Priority: Major
>
> Tika bundle still have dependencies spilled out of its package and cause jar 
> hell everywhere. If tika bundle is declared in maven as a dependency, a maven 
> dependency:tree will indicate:
> [INFO] | +- org.apache.tika:tika-bundle:jar:1.22:test
>  [INFO] | | +- org.apache.tika:tika-core:jar:1.22:test
>  [INFO] | | - org.apache.tika:tika-parsers:jar:1.22:test
>  [INFO] | | +- org.glassfish.jaxb:jaxb-runtime:jar:2.3.2:test
>  [INFO] | | | +- jakarta.xml.bind:jakarta.xml.bind-api:jar:2.3.2:test
>  [INFO] | | | +- org.glassfish.jaxb:txw2:jar:2.3.2:test
>  [INFO] | | | +- com.sun.istack:istack-commons-runtime:jar:3.0.8:test
>  [INFO] | | | +- org.jvnet.staxex:stax-ex:jar:1.8.1:test
>  [INFO] | | | - com.sun.xml.fastinfoset:FastInfoset:jar:1.2.16:test
>  [INFO] | | +- com.sun.activation:jakarta.activation:jar:1.2.1:test
>  [INFO] | | +- org.gagravarr:vorbis-java-tika:jar:0.8:test
>  [INFO] | | +- org.tallison:jmatio:jar:1.5:test
>  [INFO] | | +- org.apache.james:apache-mime4j-core:jar:0.8.3:test
>  [INFO] | | +- org.apache.james:apache-mime4j-dom:jar:0.8.3:test
>  [INFO] | | +- com.epam:parso:jar:2.0.11:test
>  [INFO] | | +- org.brotli:dec:jar:0.1.2:test
>  [INFO] | | +- org.apache.pdfbox:pdfbox:jar:2.0.16:test
>  [INFO] | | | - org.apache.pdfbox:fontbox:jar:2.0.16:test
>  [INFO] | | +- org.apache.pdfbox:pdfbox-tools:jar:2.0.16:test
>  [INFO] | | +- org.apache.pdfbox:jempbox:jar:1.8.16:test
>  [INFO] | | +- org.bouncycastle:bcmail-jdk15on:jar:1.62:test
>  [INFO] | | | - org.bouncycastle:bcpkix-jdk15on:jar:1.62:test
>  [INFO] | | +- org.bouncycastle:bcprov-jdk15on:jar:1.62:test
>  [INFO] | | +- org.apache.poi:poi:jar:4.0.1:test
>  [INFO] | | | - org.apache.commons:commons-collections4:jar:4.2:test
>  [INFO] | | +- org.apache.poi:poi-scratchpad:jar:4.0.1:test
>  [INFO] | | +- org.apache.poi:poi-ooxml:jar:4.0.1:test
>  [INFO] | | | +- org.apache.poi:poi-ooxml-schemas:jar:4.0.1:test
>  [INFO] | | | | - org.apache.xmlbeans:xmlbeans:jar:3.0.2:test
>  [INFO] | | | - com.github.virtuald:curvesapi:jar:1.05:test
>  [INFO] | | +- com.healthmarketscience.jackcess:jackcess:jar:3.0.1:test
>  [INFO] | | +- 
> com.healthmarketscience.jackcess:jackcess-encrypt:jar:3.0.0:test
>  [INFO] | | +- org.ccil.cowan.tagsoup:tagsoup:jar:1.2.1:test
>  [INFO] | | +- org.ow2.asm:asm:jar:7.2-beta:test
>  [INFO] | | +- com.googlecode.mp4parser:isoparser:jar:1.1.22:test
>  [INFO] | | +- com.drewnoakes:metadata-extractor:jar:2.11.0:test
>  [INFO] | | | - com.adobe.xmp:xmpcore:jar:5.1.3:test
>  [INFO] | | +- de.l3s.boilerpipe:boilerpipe:jar:1.1.0:test
>  [INFO] | | +- com.rometools:rome:jar:1.12.1:test
>  [INFO] | | | - com.rometools:rome-utils:jar:1.12.1:test
>  [INFO] | | +- org.gagravarr:vorbis-java-core:jar:0.8:test
>  [INFO] | | +- org.codelibs:jhighlight:jar:1.0.3:test
>  [INFO] | | +- com.pff:java-libpst:jar:0.8.1:test
>  [INFO] | | +- com.github.junrar:junrar:jar:4.0.0:test
>  [INFO] | | +- org.apache.cxf:cxf-rt-rs-client:jar:3.3.2:test
>  [INFO] | | | +- org.apache.cxf:cxf-rt-transports-http:jar:3.3.2:test
>  [INFO] | | | +- org.apache.cxf:cxf-core:jar:3.3.2:test
>  [INFO] | | | | +- com.fasterxml.woodstox:woodstox-core:jar:5.0.3:test
>  [INFO] | | | | | - org.codehaus.woodstox:stax2-api:jar:3.1.4:test
>  [INFO] | | | | +- org.apache.ws.xmlschema:xmlschema-core:jar:2.2.4:test
>  [INFO] | | | | - org.glassfish.jaxb:jaxb-xjc:jar:2.3.2:test
>  [INFO] | | | | +- org.glassfish.jaxb:xsom:jar:2.3.2:test
>  [INFO] | | | | +- org.glassfish.jaxb:codemodel:jar:2.3.2:test
>  [INFO] | | | | +- com.sun.xml.bind.external:rngom:jar:2.3.2:test
>  [INFO] | | | | +- com.sun.xml.dtd-parser:dtd-parser:jar:1.4.1:test
>  [INFO] | | | | +- com.sun.istack:istack-commons-tools:jar:3.0.8:test
>  [INFO] | | | | - com.sun.xml.bind.external:relaxng-datatype:jar:2.3.2:test
>  [INFO] | | | - org.apache.cxf:cxf-rt-frontend-jaxrs:jar:3.3.2:test
>  [INFO] | | | +- jakarta.ws.rs:jakarta.ws.rs-api:jar:2.1.5:test
>  [INFO] | | | - org.apache.cxf:cxf-rt-security:jar:3.3.2:test
>  [INFO] | | +- org.apache.opennlp:opennlp-tools:jar:1.9.1:test
>  [INFO] | | +- com.googlecode.json-simple:json-simple:jar:1.1.1:test
>  [INFO] | | +- com.github.openjson:openjson:jar:1.0.11:test
>  [INFO] | | +- edu.ucar:netcdf4:jar:4.5.5:test
>  [INFO] | | | - net.jcip:jcip-annotations:jar:1.0:test
>  [INFO] | | +- org.jdom:jdom2:jar:2.0.6:test
>  [INFO] | | +- edu.ucar:grib:jar:4.5.5:test
>  [INFO] | | | - org.itadaki:bzip2:jar:0.9.1:test
>  [INFO] | | +- edu.ucar:cdm:jar:4.5.5:test
>  [INFO] | | | +- edu.ucar:udunits:jar:4.5.5:test
>  [INFO] | | | +- org.quartz-scheduler:quartz:jar:2.2.0:test
>  [INFO] | | | - net.sf.ehcache:ehcache-core:jar:2.6.2:test
>  [INFO] | | +- com.mchange:c3p0:jar:0.9.5.4:test
>  [INFO] | | | - com.mchange:mchange-commons-java:jar:0.2.15:test
>  [INFO] | | +- edu.ucar:httpservices:jar:4.5.5:test
>  [INFO] | | +- org.apache.sis.core:sis-utility:jar:0.8:test
>  [INFO] | | | - javax.measure:unit-api:jar:1.0:test
>  [INFO] | | +- org.apache.sis.storage:sis-netcdf:jar:0.8:test
>  [INFO] | | | +- org.apache.sis.storage:sis-storage:jar:0.8:test
>  [INFO] | | | | - org.apache.sis.core:sis-feature:jar:0.8:test
>  [INFO] | | | - org.apache.sis.core:sis-referencing:jar:0.8:test
>  [INFO] | | +- org.apache.sis.core:sis-metadata:jar:0.8:test
>  [INFO] | | +- org.opengis:geoapi:jar:3.0.1:test
>  [INFO] | | +- edu.usc.ir:sentiment-analysis-parser:jar:0.1:test
>  [INFO] | | +- org.apache.pdfbox:jbig2-imageio:jar:3.0.2:test
>  [INFO] | | - com.github.jai-imageio:jai-imageio-core:jar:1.4.0:test
>  
> This should not happen as OSGI bundle should be self-contained without 
> possibility of external version conflict.
>  
> The same observation applies to app bundle



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

Reply via email to