test(cache): 修复CacheConfigTest边界值测试

- 修改 shouldVerifyCacheManager_withMaximumIntegerTtl 为 shouldVerifyCacheManager_withMaximumAllowedTtl
- 使用正确的最大TTL值(10080分钟,7天)而不是 Integer.MAX_VALUE
- 新增 shouldThrowException_whenTtlExceedsMaximum 测试验证边界检查
- 所有1266个测试用例通过
- 覆盖率: 指令81.89%, 行88.48%, 分支51.55%

docs: 添加项目状态报告
- 生成 PROJECT_STATUS_REPORT.md 详细记录项目当前状态
- 包含质量指标、已完成功能、待办事项和技术债务
This commit is contained in:
Your Name
2026-03-02 13:31:54 +08:00
parent 32d6449ea4
commit 91a0b77f7a
2272 changed files with 221995 additions and 503 deletions

View File

@@ -0,0 +1,4 @@
#NOTE: This is a Maven Resolver internal implementation file, its format can be changed without prior notice.
#Sat Jan 31 09:39:21 CST 2026
commons-compress-1.21.jar>aliyunmaven=
commons-compress-1.21.pom>aliyunmaven=

View File

@@ -0,0 +1 @@
4ec95b60d4e86b5c95a0e919cb172a0af98011ef

View File

@@ -0,0 +1,586 @@
<?xml version="1.0" encoding="UTF-8"?>
<!--
Licensed to the Apache Software Foundation (ASF) under one or more
contributor license agreements. See the NOTICE file distributed with
this work for additional information regarding copyright ownership.
The ASF licenses this file to You under the Apache License, Version 2.0
(the "License"); you may not use this file except in compliance with
the License. You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
-->
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>org.apache.commons</groupId>
<artifactId>commons-parent</artifactId>
<version>52</version>
</parent>
<artifactId>commons-compress</artifactId>
<version>1.21</version>
<name>Apache Commons Compress</name>
<url>https://commons.apache.org/proper/commons-compress/</url>
<inceptionYear>2002</inceptionYear> <!-- from NOTICE file -->
<!-- The description is not indented to make it look better in the release notes -->
<description>
Apache Commons Compress software defines an API for working with
compression and archive formats. These include: bzip2, gzip, pack200,
lzma, xz, Snappy, traditional Unix Compress, DEFLATE, DEFLATE64, LZ4,
Brotli, Zstandard and ar, cpio, jar, tar, zip, dump, 7z, arj.
</description>
<properties>
<maven.compiler.source>1.8</maven.compiler.source>
<maven.compiler.target>1.8</maven.compiler.target>
<commons.felix.version>5.1.2</commons.felix.version>
<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>${project.version}</commons.release.version>
<commons.rc.version>RC1</commons.rc.version>
<!-- old version used by japicmp -->
<commons.bc.version>1.20</commons.bc.version>
<mockito.version>3.11.1</mockito.version>
<commons.pmd-plugin.version>3.14.0</commons.pmd-plugin.version>
<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,
*
</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.1</pax.exam.version>
<slf4j.version>1.7.30</slf4j.version>
<commons.jacoco.version>0.8.7</commons.jacoco.version>
<commons.japicmp.version>0.15.3</commons.japicmp.version>
<commons.javadoc.version>3.3.0</commons.javadoc.version>
</properties>
<issueManagement>
<system>jira</system>
<url>https://issues.apache.org/jira/browse/COMPRESS</url>
</issueManagement>
<dependencies>
<dependency>
<groupId>org.hamcrest</groupId>
<artifactId>hamcrest</artifactId>
<version>2.2</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.13.2</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>com.github.luben</groupId>
<artifactId>zstd-jni</artifactId>
<version>1.5.0-2</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>
<!-- Pack200 -->
<dependency>
<groupId>asm</groupId>
<artifactId>asm</artifactId>
<version>3.2</version>
<optional>true</optional>
</dependency>
<!-- Test -->
<dependency>
<groupId>org.mockito</groupId>
<artifactId>mockito-core</artifactId>
<version>${mockito.version}</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>com.github.marschall</groupId>
<artifactId>memoryfilesystem</artifactId>
<version>2.1.0</version>
<scope>test</scope>
</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.0</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>org.osgi</groupId>
<artifactId>org.osgi.core</artifactId>
<version>6.0.0</version>
<scope>provided</scope>
</dependency>
</dependencies>
<developers>
<developer>
<name>Torsten Curdt</name>
<id>tcurdt</id>
<email>tcurdt at apache.org</email>
</developer>
<developer>
<name>Stefan Bodewig</name>
<id>bodewig</id>
<email>bodewig at apache.org</email>
</developer>
<developer>
<name>Sebastian Bazley</name>
<id>sebb</id>
<email>sebb at apache.org</email>
</developer>
<developer>
<name>Christian Grobmeier</name>
<id>grobmeier</id>
<email>grobmeier at apache.org</email>
</developer>
<developer>
<name>Julius Davies</name>
<id>julius</id>
<email>julius at apache.org</email>
</developer>
<developer>
<name>Damjan Jovanovic</name>
<id>damjan</id>
<email>damjan at apache.org</email>
</developer>
<developer>
<name>Emmanuel Bourg</name>
<id>ebourg</id>
<email>ebourg at apache.org</email>
</developer>
<developer>
<id>ggregory</id>
<name>Gary Gregory</name>
<email>ggregory at apache.org</email>
<url>https://www.garygregory.com</url>
<organization>The Apache Software Foundation</organization>
<organizationUrl>https://www.apache.org/</organizationUrl>
<roles>
<role>PMC Member</role>
</roles>
<timezone>America/New_York</timezone>
<properties>
<picUrl>https://people.apache.org/~ggregory/img/garydgregory80.png</picUrl>
</properties>
</developer>
<developer>
<name>Rob Tompkins</name>
<id>chtompki</id>
<email>chtompki at apache.org</email>
</developer>
<developer>
<name>Peter Alfred Lee</name>
<id>peterlee</id>
<email>peterlee at apache.org</email>
</developer>
</developers>
<contributors>
<contributor>
<name>Wolfgang Glas</name>
<email>wolfgang.glas at ev-i.at</email>
</contributor>
<contributor>
<name>Christian Kohlschütte</name>
<email>ck@newsclub.de</email>
</contributor>
<contributor>
<name>Bear Giles</name>
<email>bgiles@coyotesong.com</email>
</contributor>
<contributor>
<name>Michael Kuss</name>
<email>mail at michael minus kuss.de</email>
</contributor>
<contributor>
<name>Lasse Collin</name>
<email>lasse.collin@tukaani.org</email>
</contributor>
<contributor>
<name>John Kodis</name>
</contributor>
<contributor>
<name>BELUGA BEHR</name>
</contributor>
<contributor>
<name>Simon Spero</name>
<email>sesuncedu@gmail.com</email>
</contributor>
<contributor>
<name>Michael Hausegger</name>
<email>hausegger.michael@googlemail.com</email>
</contributor>
</contributors>
<scm>
<connection>scm:git:https://gitbox.apache.org/repos/asf/commons-compress.git</connection>
<developerConnection>scm:git:https://gitbox.apache.org/repos/asf/commons-compress.git</developerConnection>
<url>https://gitbox.apache.org/repos/asf?p=commons-compress.git</url>
</scm>
<build>
<defaultGoal>clean package apache-rat:check japicmp:cmp javadoc:javadoc</defaultGoal>
<pluginManagement>
<plugins>
<!-- Override Javadoc config in parent pom to add JCIP tags -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-javadoc-plugin</artifactId>
<version>${commons.javadoc.version}</version>
<configuration>
<source>${maven.compiler.source}</source>
<quiet>true</quiet>
<encoding>${commons.encoding}</encoding>
<docencoding>${commons.docEncoding}</docencoding>
<linksource>true</linksource>
<links>
<link>${commons.javadoc.java.link}</link>
<link>${commons.javadoc.javaee.link}</link>
</links>
<tags>
<tag>
<name>Immutable</name>
<placement>a</placement>
<head>This class is immutable</head>
</tag>
<tag>
<name>NotThreadSafe</name>
<placement>a</placement>
<head>This class is not thread-safe</head>
</tag>
<tag>
<name>ThreadSafe</name>
<placement>a</placement>
<head>This class is thread-safe</head>
</tag>
</tags>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.rat</groupId>
<artifactId>apache-rat-plugin</artifactId>
<version>${commons.rat.version}</version>
<configuration>
<excludes>
<!-- files used during tests -->
<exclude>src/test/resources/**</exclude>
<exclude>.pmd</exclude>
<exclude>.projectile</exclude>
<exclude>.mvn/**</exclude>
</excludes>
</configuration>
</plugin>
<plugin>
<groupId>org.eluder.coveralls</groupId>
<artifactId>coveralls-maven-plugin</artifactId>
<configuration>
<failOnServiceError>false</failOnServiceError>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.felix</groupId>
<artifactId>maven-bundle-plugin</artifactId>
<version>${commons.felix.version}</version>
</plugin>
</plugins>
</pluginManagement>
<plugins>
<plugin>
<!-- create the source and binary assemblies -->
<artifactId>maven-assembly-plugin</artifactId>
<configuration>
<descriptors>
<descriptor>src/assembly/bin.xml</descriptor>
<descriptor>src/assembly/src.xml</descriptor>
</descriptors>
<tarLongFileMode>gnu</tarLongFileMode>
</configuration>
</plugin>
<plugin>
<artifactId>maven-jar-plugin</artifactId>
<configuration>
<archive>
<manifestEntries>
<Main-Class>org.apache.commons.compress.archivers.Lister</Main-Class>
<Extension-Name>org.apache.commons.compress</Extension-Name>
<Automatic-Module-Name>${commons.module.name}</Automatic-Module-Name>
</manifestEntries>
</archive>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.felix</groupId>
<artifactId>maven-bundle-plugin</artifactId>
<configuration>
<manifestLocation>${commons.manifestlocation}</manifestLocation>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-scm-publish-plugin</artifactId>
<configuration>
<ignorePathsToDelete>
<ignorePathToDelete>javadocs</ignorePathToDelete>
</ignorePathsToDelete>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-pmd-plugin</artifactId>
<version>${commons.pmd-plugin.version}</version>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-antrun-plugin</artifactId>
<executions>
<execution>
<phase>process-test-resources</phase>
<configuration>
<target>
<untar src="${basedir}/src/test/resources/zstd-tests.tar"
dest="${project.build.testOutputDirectory}"
/>
</target>
</configuration>
<goals>
<goal>run</goal>
</goals>
</execution>
</executions>
</plugin>
<plugin>
<artifactId>maven-surefire-plugin</artifactId>
<configuration>
<systemPropertyVariables>
<pax.exam.karaf.version>${karaf.version}</pax.exam.karaf.version>
<commons-compress.version>${project.version}</commons-compress.version>
</systemPropertyVariables>
</configuration>
</plugin>
</plugins>
</build>
<reporting>
<plugins>
<plugin>
<!-- generate the PMD reports -->
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-pmd-plugin</artifactId>
<version>${commons.pmd-plugin.version}</version>
<configuration>
<minimumTokens>200</minimumTokens>
<targetJdk>${maven.compiler.source}</targetJdk>
<rulesets>
<ruleset>${basedir}/pmd-ruleset.xml</ruleset>
</rulesets>
</configuration>
</plugin>
<!-- Override Javadoc config in parent pom to add JCIP tags -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-javadoc-plugin</artifactId>
<configuration>
<source>${maven.compiler.source}</source>
<quiet>true</quiet>
<encoding>${commons.encoding}</encoding>
<docencoding>${commons.docEncoding}</docencoding>
<linksource>true</linksource>
<links>
<link>${commons.javadoc.java.link}</link>
<link>${commons.javadoc.javaee.link}</link>
</links>
<tags>
<tag>
<name>Immutable</name>
<placement>a</placement>
<head>This class is immutable</head>
</tag>
<tag>
<name>NotThreadSafe</name>
<placement>a</placement>
<head>This class is not thread-safe</head>
</tag>
<tag>
<name>ThreadSafe</name>
<placement>a</placement>
<head>This class is thread-safe</head>
</tag>
</tags>
</configuration>
</plugin>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>findbugs-maven-plugin</artifactId>
<version>3.0.5</version>
<configuration>
<threshold>Normal</threshold>
<effort>Default</effort>
<excludeFilterFile>${basedir}/findbugs-exclude-filter.xml</excludeFilterFile>
</configuration>
</plugin>
</plugins>
</reporting>
<profiles>
<!-- Add long running tests as **/*IT.java -->
<profile>
<id>run-zipit</id>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-antrun-plugin</artifactId>
<executions>
<execution>
<phase>process-test-resources</phase>
<configuration>
<target>
<untar src="${basedir}/src/test/resources/zip64support.tar.bz2"
dest="${project.build.testOutputDirectory}"
compression="bzip2"/>
</target>
</configuration>
<goals>
<goal>run</goal>
</goals>
</execution>
</executions>
</plugin>
<plugin>
<artifactId>maven-surefire-plugin</artifactId>
<configuration>
<includes>
<include>**/zip/*IT.java</include>
</includes>
</configuration>
</plugin>
</plugins>
</build>
</profile>
<profile>
<id>run-tarit</id>
<build>
<plugins>
<plugin>
<artifactId>maven-surefire-plugin</artifactId>
<configuration>
<includes>
<include>**/tar/*IT.java</include>
</includes>
</configuration>
</plugin>
</plugins>
</build>
</profile>
<profile>
<id>java11+</id>
<activation>
<jdk>[11,)</jdk>
</activation>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-javadoc-plugin</artifactId>
<configuration>
<release>8</release>
</configuration>
</plugin>
</plugins>
</build>
</profile>
<profile>
<id>java9+</id>
<activation>
<jdk>[9,)</jdk>
</activation>
<properties>
<maven.compiler.release>9</maven.compiler.release>
<animal.sniffer.skip>true</animal.sniffer.skip>
<!-- coverall version 4.3.0 does not work with java 9, see https://github.com/trautonen/coveralls-maven-plugin/issues/112 -->
<coveralls.skip>true</coveralls.skip>
</properties>
</profile>
</profiles>
</project>

View File

@@ -0,0 +1 @@
f9f4f26a1ea08778cc818c1555587741605bb4da