ppkarwasz opened a new pull request, #490:
URL: https://github.com/apache/commons-compress/pull/490

   This is proof-of-concept of the possibility of splitting Commons Compress 
into artifacts **without** optional dependencies, while maintaining backward 
compatibility.
   
   The Commons Compress code is split into:
   
   - `commons-compress-brotli`: an artifact that includes Brotli support and 
with a non-optional dependency on `org.brotli:dec`,
   - `commons-compress-core`: the old Commons Compress with one entire package 
and the dependency on `org.brotli:dec` removed,
   - `common-compress`: an almost empty artifact, whose purpose is to provide 
backward compatibility. It depends on the other artifacts and contains a module 
descriptor that allows JPMS users that declares `requires 
org.apache.commons.compress;` to also read the other modules:
      ```java
      module org.apache.commons.compress {
        requires transitive org.apache.commons.compress.brotli;
        requires transitive org.apache.commons.compress.core;
      }
      ```
   - `commons-compress-bom`: a BOM artifact to help users prevent having 
multiple copies of the same classes on the classpath (or module path). Without 
using a BOM for dependency management, users could end up having 
`commons-compress-core` version 1.27.0 and an older `commons-compress` as 
transitive dependency. This would lead to a duplication of classes on the 
classpath.
   - `commons-compress-parent`: a technical POM to manage dependency versions 
and plugin configurations in a single place. We might use Maven Flatten Plugin 
to remove this artifact from the published ones.
   
   The PoC is fully functional, although the POMs might need some small 
adjustments.


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to