vy commented on code in PR #490:
URL: https://github.com/apache/commons-compress/pull/490#discussion_r1508612754


##########
pom.xml:
##########
@@ -41,499 +45,115 @@ Brotli, Zstandard and ar, cpio, jar, tar, zip, dump, 7z, 
arj.
     <maven.compiler.target>1.8</maven.compiler.target>
 
     <commons.componentid>compress</commons.componentid>
-    <commons.module.name>org.apache.commons.compress</commons.module.name>
     <commons.jira.id>COMPRESS</commons.jira.id>
     <commons.jira.pid>12310904</commons.jira.pid>
     <!-- configuration bits for cutting a release candidate -->
     <commons.release.version>1.26.1</commons.release.version>
     <commons.release.next>1.26.2</commons.release.next>
     <commons.bc.version>1.26.0</commons.bc.version>
     <commons.rc.version>RC1</commons.rc.version>
-    <mockito.version>4.11.0</mockito.version>
 
     <commons.release.isDistModule>true</commons.release.isDistModule>
     
<commons.distSvnStagingUrl>scm:svn:https://dist.apache.org/repos/dist/dev/commons/${commons.componentid}</commons.distSvnStagingUrl>
-    
<commons.manifestlocation>${project.build.outputDirectory}/META-INF</commons.manifestlocation>
-    
<commons.manifestfile>${commons.manifestlocation}/MANIFEST.MF</commons.manifestfile>
-    <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,
-      org.apache.commons.codec;resolution:=optional,
-      org.apache.commons.codec.digest;resolution:=optional,
-      *
-    </commons.osgi.import>
-
-    <!-- only show issues of the current version -->
-    
<commons.changes.onlyCurrentVersion>true</commons.changes.onlyCurrentVersion>
 
     <!-- definition uses commons.componentId starting with parent 47,
          this doesn't work for us -->
     
<commons.scmPubUrl>https://svn.apache.org/repos/infra/websites/production/commons/content/proper/${project.artifactId}</commons.scmPubUrl>
     <japicmp.skip>false</japicmp.skip>
 
-    <pax.exam.version>4.13.5</pax.exam.version>
-    <slf4j.version>2.0.12</slf4j.version>
-    <asm.version>9.6</asm.version>
     
<project.build.outputTimestamp>2024-02-19T00:42:57Z</project.build.outputTimestamp>
-    <!-- spdx 0.6.0 can require Java 11 depending on undocumented behavior 
which kicks in for us here. -->
-    <commons.spdx.version>0.5.5</commons.spdx.version>
   </properties>
 
   <issueManagement>
     <system>jira</system>
     <url>https://issues.apache.org/jira/browse/COMPRESS</url>
   </issueManagement>
 
-  <dependencies>
-    <dependency>
-      <groupId>org.junit.jupiter</groupId>
-      <artifactId>junit-jupiter-params</artifactId>
-      <scope>test</scope>
-    </dependency>
-    <dependency>
-      <groupId>org.junit.vintage</groupId>
-      <artifactId>junit-vintage-engine</artifactId>
-      <scope>test</scope>
-    </dependency>
-    <dependency>
-      <groupId>org.hamcrest</groupId>
-      <artifactId>hamcrest</artifactId>
-      <version>2.2</version>
-      <scope>test</scope>
-    </dependency>
-    <dependency>
-      <groupId>com.github.luben</groupId>
-      <artifactId>zstd-jni</artifactId>
-      <version>1.5.5-11</version>
-      <optional>true</optional>
-    </dependency>
-    <dependency>
-      <groupId>org.brotli</groupId>
-      <artifactId>dec</artifactId>
-      <version>0.1.2</version>
-      <optional>true</optional>
-    </dependency>
-    <dependency>
-      <groupId>org.tukaani</groupId>
-      <artifactId>xz</artifactId>
-      <version>1.9</version>
-      <optional>true</optional>
-    </dependency>
-    <dependency>
-      <!-- For packages:
-           - org.apache.commons.compress.compressors.lz4 
-           - org.apache.commons.compress.compressors.snappy -->
-      <groupId>commons-codec</groupId>
-      <artifactId>commons-codec</artifactId>
-      <version>1.16.1</version>
-    </dependency>
+  <dependencyManagement>
+    <dependencies>
+      <!-- Submodules -->
 
-    <!-- Pack200 -->
     <dependency>
-      <groupId>org.ow2.asm</groupId>
-      <artifactId>asm</artifactId>
-      <version>${asm.version}</version>
-      <optional>true</optional>
+      <groupId>org.apache.commons</groupId>
+      <artifactId>commons-compress</artifactId>
+      <version>${project.version}</version>
     </dependency>
 
-    <!--  Test -->
     <dependency>
-      <groupId>org.mockito</groupId>
-      <artifactId>mockito-core</artifactId>
-      <version>${mockito.version}</version>
-      <scope>test</scope>
-    </dependency>
-       <dependency>
-      <groupId>org.mockito</groupId>
-      <artifactId>mockito-junit-jupiter</artifactId>
-      <version>${mockito.version}</version>
-      <scope>test</scope>
-    </dependency>
-    <dependency>
-      <groupId>com.github.marschall</groupId>
-      <artifactId>memoryfilesystem</artifactId>
-      <version>2.8.0</version>
-      <scope>test</scope>
+      <groupId>org.apache.commons</groupId>
+      <artifactId>commons-compress-brotli</artifactId>
+      <version>${project.version}</version>
     </dependency>
 
-    <!-- integration test verifying OSGi bundle works -->
-    <dependency>
-      <groupId>org.ops4j.pax.exam</groupId>
-      <artifactId>pax-exam-container-native</artifactId>
-      <version>${pax.exam.version}</version>
-      <scope>test</scope>
-    </dependency>
-    <dependency>
-      <groupId>org.ops4j.pax.exam</groupId>
-      <artifactId>pax-exam-junit4</artifactId>
-      <version>${pax.exam.version}</version>
-      <scope>test</scope>
-    </dependency>
-    <dependency>
-      <groupId>org.ops4j.pax.exam</groupId>
-      <artifactId>pax-exam-cm</artifactId>
-      <version>${pax.exam.version}</version>
-      <scope>test</scope>
-    </dependency>
-    <dependency>
-      <groupId>org.ops4j.pax.exam</groupId>
-      <artifactId>pax-exam-link-mvn</artifactId>
-      <version>${pax.exam.version}</version>
-      <scope>test</scope>
-    </dependency>
-    <dependency>
-      <groupId>org.apache.felix</groupId>
-      <artifactId>org.apache.felix.framework</artifactId>
-      <version>7.0.5</version>
-      <scope>test</scope>
-    </dependency>
-    <dependency>
-      <groupId>javax.inject</groupId>
-      <artifactId>javax.inject</artifactId>
-      <version>1</version>
-      <scope>test</scope>
-    </dependency>
-    <dependency>
-      <groupId>org.slf4j</groupId>
-      <artifactId>slf4j-api</artifactId>
-      <version>${slf4j.version}</version>
-      <scope>test</scope>
-    </dependency>
-    <dependency>
-      <groupId>commons-io</groupId>
-      <artifactId>commons-io</artifactId>
-      <version>2.15.1</version>
-    </dependency>    
     <dependency>
       <groupId>org.apache.commons</groupId>
-      <artifactId>commons-lang3</artifactId>
-      <version>3.14.0</version>
-    </dependency>    
-    <dependency>
-      <groupId>org.osgi</groupId>
-      <artifactId>org.osgi.core</artifactId>
-      <version>6.0.0</version>
-      <scope>provided</scope>
+      <artifactId>commons-compress-core</artifactId>
+      <version>${project.version}</version>
     </dependency>
-  </dependencies>
 
-  <scm>
+      <dependency>
+        <groupId>org.apache.commons</groupId>
+        <artifactId>commons-compress-core</artifactId>
+        <version>${project.version}</version>
+        <type>test-jar</type>
+      </dependency>
+
+    </dependencies>
+  </dependencyManagement>
+
+  <modules>
+    <module>compress</module>
+    <module>compress-brotli</module>
+    <module>compress-core</module>
+    <module>compress-parent</module>

Review Comment:
   Do you mean why not having a structure as follows?
   
   1. `/commons-bom/pom.xml` (`commons-bom` module)
   2. `/pom.xml` (`commons-parent` module parented by `commons-bom`)
   3. `/commons-core/pom.xml` (`commons-core` module` parented by 
`commons-parent`)
   
   This setup has the following shortcoming:
   
   Imagine you have a, say, `maven-enforcer-plugin` configuration that applies 
to all `pom.xml`s, including `/commons-bom/pom.xml`. If you run `./mvnw 
enforcer:enforce` at the project root directory, it will only run on 
`commons-parent` and modules defined in `/pom.xml`. That is, it won't run for 
`/commons-bom/pom.xml`. You can add more examples: `apache-rat-plugin` won't 
check the license of `/commons-bom/pom.xml`, etc.



-- 
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