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]