Skip to content

Why does com.github.librepdf.openpdf 3.0.5 require com.aayushatharva.brotli4j? #1573

Description

@merks

The 3.0.4 release

has these OSGi dependencies in the MANIFEST.MF:

Import-Package                          com.ibm.icu.text;resolution:=optional
                                        java.awt
                                        java.awt.color
                                        java.awt.font
                                        java.awt.geom
                                        java.awt.image
                                        java.awt.image.renderable
                                        java.awt.print
                                        java.io
                                        java.lang
                                        java.lang.invoke
                                        java.lang.reflect
                                        java.lang.runtime
                                        java.math
                                        java.net
                                        java.nio
                                        java.nio.channels
                                        java.nio.charset
                                        java.nio.file
                                        java.nio.file.attribute
                                        java.security
                                        java.security.cert
                                        java.security.spec
                                        java.text
                                        java.util
                                        java.util.concurrent
                                        java.util.concurrent.locks
                                        java.util.function
                                        java.util.regex
                                        java.util.stream
                                        java.util.zip
                                        javax.crypto
                                        javax.crypto.spec
                                        javax.imageio
                                        javax.imageio.metadata
                                        javax.imageio.plugins.jpeg
                                        javax.imageio.stream
                                        javax.xml.parsers;resolution:=optional
                                        org.apache.fop.complexscripts.fonts;resolution:=optional
                                        org.apache.fop.complexscripts.util;resolution:=optional
                                        org.apache.fop.fonts.apps;resolution:=optional
                                        org.apache.fop.fonts.truetype;resolution:=optional
                                        org.bouncycastle.asn1.cmp;version="[1.84,2)";resolution:=optional
                                        org.bouncycastle.asn1.cms;version="[1.84,2)";resolution:=optional
                                        org.bouncycastle.asn1.ocsp;version="[1.84,2)";resolution:=optional
                                        org.bouncycastle.asn1.pkcs;version="[1.84,2)";resolution:=optional
                                        org.bouncycastle.asn1.tsp;version="[1.84,2)";resolution:=optional
                                        org.bouncycastle.asn1.x500;version="[1.84,2)";resolution:=optional
                                        org.bouncycastle.asn1.x509;version="[1.84,2)";resolution:=optional
                                        org.bouncycastle.asn1;version="[1.84,2)";resolution:=optional
                                        org.bouncycastle.cert.jcajce;version="[1.84,2)";resolution:=optional
                                        org.bouncycastle.cert.ocsp;version="[1.84,2)";resolution:=optional
                                        org.bouncycastle.cert;version="[1.84,2)";resolution:=optional
                                        org.bouncycastle.cms.jcajce;version="[1.84,2)";resolution:=optional
                                        org.bouncycastle.cms;version="[1.84,2)";resolution:=optional
                                        org.bouncycastle.crypto.engines;version="[1.84,2)";resolution:=optional
                                        org.bouncycastle.crypto.modes;version="[1.84,2)";resolution:=optional
                                        org.bouncycastle.crypto.paddings;version="[1.84,2)";resolution:=optional
                                        org.bouncycastle.crypto.params;version="[1.84,2)";resolution:=optional
                                        org.bouncycastle.crypto;version="[1.84,2)";resolution:=optional
                                        org.bouncycastle.jcajce.provider.asymmetric.x509;version="[1.84,2)";resolution:=optional
                                        org.bouncycastle.jce.provider;version="[1.84,2)";resolution:=optional
                                        org.bouncycastle.operator.jcajce;version="[1.84,2)";resolution:=optional
                                        org.bouncycastle.operator;version="[1.84,2)";resolution:=optional
                                        org.bouncycastle.tsp;version="[1.84,2)";resolution:=optional
                                        org.openpdf.bouncycastle
                                        org.openpdf.text
                                        org.openpdf.text.alignment
                                        org.openpdf.text.error_messages
                                        org.openpdf.text.exceptions
                                        org.openpdf.text.factories
                                        org.openpdf.text.html
                                        org.openpdf.text.pdf.codec
                                        org.openpdf.text.pdf.codec.wmf
                                        org.openpdf.text.pdf.collection
                                        org.openpdf.text.pdf.crypto
                                        org.openpdf.text.pdf.draw
                                        org.openpdf.text.pdf.events
                                        org.openpdf.text.pdf.fonts
                                        org.openpdf.text.pdf.fonts.cmaps
                                        org.openpdf.text.pdf.hyphenation
                                        org.openpdf.text.pdf.interfaces
                                        org.openpdf.text.utils
                                        org.openpdf.text.xml
                                        org.openpdf.text.xml.simpleparser
                                        org.openpdf.text.xml.xmp
                                        org.w3c.dom;resolution:=optional
                                        org.xml.sax.helpers;resolution:=optional
                                        org.xml.sax;resolution:=optional

The 3.0.5 release

https://repo.maven.apache.org/maven2/com/github/librepdf/openpdf/3.0.5/openpdf-3.0.5.jar

has these OSGi dependencies in the MANIFEST.MF

Import-Package                          com.aayushatharva.brotli4j
                                        com.aayushatharva.brotli4j.decoder
                                        com.aayushatharva.brotli4j.encoder
                                        com.ibm.icu.text;resolution:=optional
                                        java.awt
                                        java.awt.color
                                        java.awt.font
                                        java.awt.geom
                                        java.awt.image
                                        java.awt.image.renderable
                                        java.awt.print
                                        java.io
                                        java.lang
                                        java.lang.invoke
                                        java.lang.reflect
                                        java.lang.runtime
                                        java.math
                                        java.net
                                        java.nio
                                        java.nio.channels
                                        java.nio.charset
                                        java.nio.file
                                        java.nio.file.attribute
                                        java.security
                                        java.security.cert
                                        java.security.spec
                                        java.text
                                        java.util
                                        java.util.concurrent
                                        java.util.concurrent.locks
                                        java.util.function
                                        java.util.regex
                                        java.util.stream
                                        java.util.zip
                                        javax.crypto
                                        javax.crypto.spec
                                        javax.imageio
                                        javax.imageio.metadata
                                        javax.imageio.plugins.jpeg
                                        javax.imageio.stream
                                        javax.xml.parsers;resolution:=optional
                                        org.apache.fop.complexscripts.fonts;resolution:=optional
                                        org.apache.fop.complexscripts.util;resolution:=optional
                                        org.apache.fop.fonts.apps;resolution:=optional
                                        org.apache.fop.fonts.truetype;resolution:=optional
                                        org.bouncycastle.asn1.cmp;version="[1.84,2)";resolution:=optional
                                        org.bouncycastle.asn1.cms;version="[1.84,2)";resolution:=optional
                                        org.bouncycastle.asn1.nist;version="[1.84,2)";resolution:=optional
                                        org.bouncycastle.asn1.ocsp;version="[1.84,2)";resolution:=optional
                                        org.bouncycastle.asn1.pkcs;version="[1.84,2)";resolution:=optional
                                        org.bouncycastle.asn1.tsp;version="[1.84,2)";resolution:=optional
                                        org.bouncycastle.asn1.x500;version="[1.84,2)";resolution:=optional
                                        org.bouncycastle.asn1.x509;version="[1.84,2)";resolution:=optional
                                        org.bouncycastle.asn1;version="[1.84,2)";resolution:=optional
                                        org.bouncycastle.cert.jcajce;version="[1.84,2)";resolution:=optional
                                        org.bouncycastle.cert.ocsp;version="[1.84,2)";resolution:=optional
                                        org.bouncycastle.cert;version="[1.84,2)";resolution:=optional
                                        org.bouncycastle.cms.jcajce;version="[1.84,2)";resolution:=optional
                                        org.bouncycastle.cms;version="[1.84,2)";resolution:=optional
                                        org.bouncycastle.crypto.engines;version="[1.84,2)";resolution:=optional
                                        org.bouncycastle.crypto.modes;version="[1.84,2)";resolution:=optional
                                        org.bouncycastle.crypto.paddings;version="[1.84,2)";resolution:=optional
                                        org.bouncycastle.crypto.params;version="[1.84,2)";resolution:=optional
                                        org.bouncycastle.crypto;version="[1.84,2)";resolution:=optional
                                        org.bouncycastle.jcajce.provider.asymmetric.x509;version="[1.84,2)";resolution:=optional
                                        org.bouncycastle.jce.provider;version="[1.84,2)";resolution:=optional
                                        org.bouncycastle.operator.jcajce;version="[1.84,2)";resolution:=optional
                                        org.bouncycastle.operator;version="[1.84,2)";resolution:=optional
                                        org.bouncycastle.tsp;version="[1.84,2)";resolution:=optional
                                        org.openpdf.bouncycastle
                                        org.openpdf.text
                                        org.openpdf.text.alignment
                                        org.openpdf.text.error_messages
                                        org.openpdf.text.exceptions
                                        org.openpdf.text.factories
                                        org.openpdf.text.html
                                        org.openpdf.text.pdf.codec
                                        org.openpdf.text.pdf.codec.wmf
                                        org.openpdf.text.pdf.collection
                                        org.openpdf.text.pdf.crypto
                                        org.openpdf.text.pdf.draw
                                        org.openpdf.text.pdf.events
                                        org.openpdf.text.pdf.fonts
                                        org.openpdf.text.pdf.fonts.cmaps
                                        org.openpdf.text.pdf.hyphenation
                                        org.openpdf.text.pdf.interfaces
                                        org.openpdf.text.utils
                                        org.openpdf.text.xml
                                        org.openpdf.text.xml.simpleparser
                                        org.openpdf.text.xml.xmp
                                        org.w3c.dom;resolution:=optional
                                        org.xml.sax.helpers;resolution:=optional
                                        org.xml.sax;resolution:=optional

From what I gather from the parent pom's dependencies, the com.aayushatharva.* dependencies are resolved to this version:

https://repo.maven.apache.org/maven2/com/aayushatharva/brotli4j/brotli4j/1.23.0/

But that's not shipped as an OSGi bundle.

Can someone clarify what these new dependencies are for? In particular why are these dependencies non-optional?

This effectively makes the 3.0.5 release useless/dysfunctional as an OSGi bundle because the transitive closure is incomplete. Therefore I cannot consume this new version in Orbit without somehow providing a bundle for com.aayushatharva.brotli4j to resolve the package imports:

https://github.com/eclipse-orbit/orbit-simrel/blob/1d93e28f2cdd2bfb84a6f5639dce27b95ba08307/maven-osgi/tp/Maven.target#L245-L250

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions