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

Gary D. Gregory commented on COMPRESS-660:
------------------------------------------

The POM says:
{code:xml}
    <commons.osgi.import>
      org.tukaani.xz;resolution:=optional,
      org.brotli.dec;resolution:=optional,
      com.github.luben.zstd;resolution:=optional,
      org.objectweb.asm;resolution:=optional,
      javax.crypto.*;resolution:=optional,
      org.apache.commons.commons-codec;resolution:=optional,
      org.apache.commons.commons-io;resolution:=optional,
      org.apache.commons.lang3.reflect;resolution:=optional,
      *
    </commons.osgi.import>
{code}
and if I unzip the jar I see:
{noformat}
Manifest-Version: 1.0
Created-By: Apache Maven Bundle Plugin 5.1.9
Build-Jdk-Spec: 17
Automatic-Module-Name: org.apache.commons.compress
Extension-Name: org.apache.commons.compress
Implementation-Title: Apache Commons Compress
Implementation-Vendor: The Apache Software Foundation
Implementation-Vendor-Id: org.apache
Implementation-Version: 1.26.0
Main-Class: org.apache.commons.compress.archivers.Lister
Specification-Title: Apache Commons Compress
Specification-Vendor: The Apache Software Foundation
Specification-Version: 1.26.0
X-Compile-Source-JDK: 1.8
X-Compile-Target-JDK: 1.8
Bundle-Description: Apache Commons Compress defines an API for working w
 ithcompression and archive formats. These include bzip2, gzip, pack200,
 LZMA, XZ, Snappy, traditional Unix Compress, DEFLATE, DEFLATE64, LZ4,Br
 otli, Zstandard and ar, cpio, jar, tar, zip, dump, 7z, arj.
Bundle-DocURL: https://commons.apache.org/proper/commons-compress/
Bundle-License: https://www.apache.org/licenses/LICENSE-2.0.txt
Bundle-ManifestVersion: 2
Bundle-Name: Apache Commons Compress
Bundle-SymbolicName: org.apache.commons.commons-compress
Bundle-Vendor: The Apache Software Foundation
Bundle-Version: 1.26.0
Export-Package: org.apache.commons.compress;version="1.26.0",org.apache.
 commons.compress.archivers;version="1.26.0",org.apache.commons.compress
 .archivers.ar;version="1.26.0",org.apache.commons.compress.archivers.ar
 j;version="1.26.0",org.apache.commons.compress.archivers.cpio;version="
 1.26.0",org.apache.commons.compress.archivers.dump;version="1.26.0",org
 .apache.commons.compress.archivers.examples;version="1.26.0",org.apache
 .commons.compress.archivers.jar;version="1.26.0",org.apache.commons.com
 press.archivers.sevenz;version="1.26.0",org.apache.commons.compress.arc
 hivers.tar;version="1.26.0",org.apache.commons.compress.archivers.zip;v
 ersion="1.26.0",org.apache.commons.compress.changes;version="1.26.0",or
 g.apache.commons.compress.compressors;version="1.26.0",org.apache.commo
 ns.compress.compressors.brotli;version="1.26.0",org.apache.commons.comp
 ress.compressors.bzip2;version="1.26.0",org.apache.commons.compress.com
 pressors.deflate;version="1.26.0",org.apache.commons.compress.compresso
 rs.deflate64;version="1.26.0",org.apache.commons.compress.compressors.g
 zip;version="1.26.0",org.apache.commons.compress.compressors.lz4;versio
 n="1.26.0",org.apache.commons.compress.compressors.lz77support;version=
 "1.26.0",org.apache.commons.compress.compressors.lzma;version="1.26.0",
 org.apache.commons.compress.compressors.lzw;version="1.26.0",org.apache
 .commons.compress.compressors.pack200;version="1.26.0",org.apache.commo
 ns.compress.compressors.snappy;version="1.26.0",org.apache.commons.comp
 ress.compressors.xz;version="1.26.0",org.apache.commons.compress.compre
 ssors.z;version="1.26.0",org.apache.commons.compress.compressors.zstand
 ard;version="1.26.0",org.apache.commons.compress.harmony;version="1.26.
 0",org.apache.commons.compress.harmony.archive.internal.nls;version="1.
 26.0",org.apache.commons.compress.harmony.pack200;version="1.26.0",org.
 apache.commons.compress.harmony.unpack200;version="1.26.0",org.apache.c
 ommons.compress.harmony.unpack200.bytecode;version="1.26.0",org.apache.
 commons.compress.harmony.unpack200.bytecode.forms;version="1.26.0",org.
 apache.commons.compress.java.util.jar;version="1.26.0",org.apache.commo
 ns.compress.parallel;version="1.26.0",org.apache.commons.compress.utils
 ;version="1.26.0"
Import-Package: org.tukaani.xz;resolution:=optional,org.brotli.dec;resol
 ution:=optional,com.github.luben.zstd;resolution:=optional,org.objectwe
 b.asm;resolution:=optional,javax.crypto;resolution:=optional,javax.cryp
 to.spec;resolution:=optional,org.apache.commons.lang3.reflect;resolutio
 n:=optional,org.apache.commons.codec,org.apache.commons.codec.digest,or
 g.apache.commons.io,org.apache.commons.io.build,org.apache.commons.io.f
 ile.attribute,org.apache.commons.io.input,org.apache.commons.io.output,
 org.apache.commons.commons-codec;resolution:=optional,org.apache.common
 s.commons-io;resolution:=optional
Include-Resource: META-INF/LICENSE.txt=LICENSE.txt,META-INF/NOTICE.txt=N
 OTICE.txt
Originally-Created-By: Apache Maven Bundle Plugin 5.1.9
Require-Capability: osgi.ee;filter:="(&(osgi.ee=JavaSE)(version=1.8))"
Tool: Bnd-6.4.1.202306080939
Multi-Release: true
{noformat}
which includes 
{noformat}
org.apache.commons.commons-codec;resolution:=optional
{noformat}
Which instead should be:
{noformat}
org.apache.commons.codec;resolution:=optional
{noformat}
?
 

> OSGi Manifest requires optional dependency commons-codec
> --------------------------------------------------------
>
>                 Key: COMPRESS-660
>                 URL: https://issues.apache.org/jira/browse/COMPRESS-660
>             Project: Commons Compress
>          Issue Type: Bug
>          Components: Build
>    Affects Versions: 1.26.0
>            Reporter: Christoph Loy
>            Priority: Major
>
> Since version 1.26, commons-compress *optionally* [requires 
> commons-codec|https://github.com/apache/commons-compress/blob/09a271dfd73e3ce01815f3f65057f92b5b7009bb/pom.xml#L134].
> In the OSGi-Manifest, the Import-Package declaration for 
> org.apache.commons.codec does not have the resolution:=optional attribute.
>  
> In our case, we have commons-compress as maven dependency. Since 
> commons-codec is an optional dependency, it is not downloaded automatically. 
> But when we start our application, we get an OSGi error that commons-codec 
> cannot be resolved.
>  
>  
> To fix this issue, the Import-Package delcaration to all 
> apache.commons.compress packages has to be marked with resolution:=optional 
> in META-INF/MANIFEST.MF.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to