summaryrefslogtreecommitdiff
path: root/dev-java
diff options
context:
space:
mode:
authorLiguros - Gitlab CI/CD [develop] <gitlab@liguros.net>2025-10-03 07:06:27 +0000
committerLiguros - Gitlab CI/CD [develop] <gitlab@liguros.net>2025-10-03 07:06:27 +0000
commit9db05347f01604a785caafda9c9c5dbac4649447 (patch)
tree7873c834ded9b95b80126efa60008cb6b21c20d6 /dev-java
parentaee0c31dbc78c41664cf2579b7e49094fc2cc08e (diff)
downloadbaldeagleos-repo-9db05347f01604a785caafda9c9c5dbac4649447.tar.gz
baldeagleos-repo-9db05347f01604a785caafda9c9c5dbac4649447.tar.xz
baldeagleos-repo-9db05347f01604a785caafda9c9c5dbac4649447.zip
Adding metadata
Diffstat (limited to 'dev-java')
-rw-r--r--dev-java/asm-jdk-bridge/Manifest2
-rw-r--r--dev-java/asm-jdk-bridge/asm-jdk-bridge-0.0.11.ebuild (renamed from dev-java/asm-jdk-bridge/asm-jdk-bridge-0.0.9.ebuild)25
-rw-r--r--dev-java/asm-jdk-bridge/files/asm-jdk-bridge-0.0.11-skipFailingTest.patch30
-rw-r--r--dev-java/asm/asm-9.8_p20250706.ebuild2
-rw-r--r--dev-java/auto-value/Manifest1
-rw-r--r--dev-java/auto-value/auto-value-1.11.0.ebuild184
-rw-r--r--dev-java/auto-value/metadata.xml11
-rw-r--r--dev-java/byte-buddy/Manifest2
-rw-r--r--dev-java/byte-buddy/byte-buddy-1.17.7.ebuild (renamed from dev-java/byte-buddy/byte-buddy-1.17.5.ebuild)31
-rw-r--r--dev-java/commons-beanutils/Manifest2
-rw-r--r--dev-java/commons-beanutils/commons-beanutils-1.11.0.ebuild97
-rw-r--r--dev-java/commons-beanutils/files/commons-beanutils-1.11.0-skipFailingTest.patch31
-rw-r--r--dev-java/commons-cli/Manifest2
-rw-r--r--dev-java/commons-cli/commons-cli-1.10.0.ebuild48
-rw-r--r--dev-java/commons-codec/Manifest2
-rw-r--r--dev-java/commons-codec/commons-codec-1.19.0.ebuild46
-rw-r--r--dev-java/commons-compress/Manifest5
-rw-r--r--dev-java/commons-compress/commons-compress-1.28.0.ebuild99
-rw-r--r--dev-java/commons-csv/Manifest3
-rw-r--r--dev-java/commons-csv/commons-csv-1.14.1.ebuild60
-rw-r--r--dev-java/commons-io/Manifest2
-rw-r--r--dev-java/commons-io/commons-io-2.20.0.ebuild75
-rw-r--r--dev-java/commons-io/files/commons-io-2.20.0-BOMInputStreamTest.patch43
-rw-r--r--dev-java/commons-io/files/commons-io-2.20.0-CharSequenceInputStreamTest.patch196
-rw-r--r--dev-java/commons-io/files/commons-io-2.20.0-ThrottledInputStreamTest.patch36
-rw-r--r--dev-java/commons-io/files/commons-io-2.20.0-URIOriginalTest.patch153
-rw-r--r--dev-java/commons-io/files/commons-io-2.20.0-XmlStreamReaderTest.patch112
-rw-r--r--dev-java/commons-lang/Manifest2
-rw-r--r--dev-java/commons-lang/commons-lang-3.19.0.ebuild65
-rw-r--r--dev-java/commons-lang/files/commons-lang-3.19.0-skip-testGetJavaAwtHeadless.patch37
-rw-r--r--dev-java/commons-net/Manifest5
-rw-r--r--dev-java/commons-net/commons-net-3.12.0.ebuild106
-rw-r--r--dev-java/commons-net/files/commons-net-3.12.0-skipFailingTests.patch147
-rw-r--r--dev-java/commons-rng/Manifest2
-rw-r--r--dev-java/commons-rng/commons-rng-1.6.ebuild101
-rw-r--r--dev-java/commons-rng/files/commons-rng-1.6-skipFailingTests.patch125
-rw-r--r--dev-java/commons-rng/metadata.xml10
-rw-r--r--dev-java/commons-text/Manifest2
-rw-r--r--dev-java/commons-text/commons-text-1.14.0.ebuild65
-rw-r--r--dev-java/commons-text/files/commons-text-1.14.0-ResourceBundleStringLookupTest.patch34
-rw-r--r--dev-java/commons-text/files/commons-text-1.14.0-ScriptStringLookupTest.patch86
-rw-r--r--dev-java/commons-text/files/commons-text-1.14.0-StringSubstitutorWithInterpolatorStringLookupTest.patch74
-rw-r--r--dev-java/commons-text/files/commons-text-1.14.0-UrlDecoderStringLookupTest.patch35
-rw-r--r--dev-java/commons-text/files/commons-text-1.14.0-UrlEncoderStringLookupTest.patch35
-rw-r--r--dev-java/commons-text/files/commons-text-1.14.0-UrlStringLookupTest.patch56
-rw-r--r--dev-java/commons-text/metadata.xml12
-rw-r--r--dev-java/commons-validator/Manifest2
-rw-r--r--dev-java/commons-validator/commons-validator-1.10.0.ebuild93
-rw-r--r--dev-java/compile-testing/Manifest1
-rw-r--r--dev-java/compile-testing/compile-testing-0.23.0.ebuild63
-rw-r--r--dev-java/compile-testing/metadata.xml9
-rw-r--r--dev-java/easymock/Manifest2
-rw-r--r--dev-java/easymock/easymock-5.6.0.ebuild48
-rw-r--r--dev-java/escapevelocity/Manifest1
-rw-r--r--dev-java/escapevelocity/escapevelocity-1.1.ebuild39
-rw-r--r--dev-java/escapevelocity/metadata.xml9
-rw-r--r--dev-java/gson/Manifest1
-rw-r--r--dev-java/gson/gson-2.13.2.ebuild74
-rw-r--r--dev-java/incap/Manifest1
-rw-r--r--dev-java/incap/incap-1.0.0.ebuild22
-rw-r--r--dev-java/incap/metadata.xml9
-rw-r--r--dev-java/javapoet/Manifest1
-rw-r--r--dev-java/javapoet/files/javapoet-1.13.0-ClassNameTest.patch83
-rw-r--r--dev-java/javapoet/files/javapoet-1.13.0-skipFailingTests.patch46
-rw-r--r--dev-java/javapoet/javapoet-1.13.0.ebuild75
-rw-r--r--dev-java/javapoet/metadata.xml9
-rw-r--r--dev-java/jimfs/Manifest1
-rw-r--r--dev-java/jimfs/jimfs-1.3.1.ebuild71
-rw-r--r--dev-java/jnr-ffi/files/jnr-ffi-2.2.17-r1-GetLoadedLibrariesTest.patch98
-rw-r--r--dev-java/jnr-ffi/jnr-ffi-2.2.17-r1.ebuild (renamed from dev-java/jnr-ffi/jnr-ffi-2.2.17.ebuild)25
-rw-r--r--dev-java/junit-pioneer/Manifest1
-rw-r--r--dev-java/junit-pioneer/junit-pioneer-1.9.1.ebuild30
-rw-r--r--dev-java/junit-pioneer/metadata.xml9
-rw-r--r--dev-java/snappy-java/Manifest1
-rw-r--r--dev-java/snappy-java/snappy-java-1.1.10.8.ebuild157
-rw-r--r--dev-java/truth/Manifest1
-rw-r--r--dev-java/truth/metadata.xml9
-rw-r--r--dev-java/truth/truth-1.4.5.ebuild72
-rw-r--r--dev-java/zstd-jni/Manifest1
-rw-r--r--dev-java/zstd-jni/zstd-jni-1.5.7.4.ebuild62
80 files changed, 3393 insertions, 32 deletions
diff --git a/dev-java/asm-jdk-bridge/Manifest b/dev-java/asm-jdk-bridge/Manifest
index 9e03aa374d44..6cec963500a1 100644
--- a/dev-java/asm-jdk-bridge/Manifest
+++ b/dev-java/asm-jdk-bridge/Manifest
@@ -1 +1 @@
-DIST asm-jdk-bridge-parent-0.0.9.tar.gz 37939 BLAKE2B ebd6f1b74eb56c61f91847065ef668504cd1f0cca30f277b8333fa8ae751907b16e191a977a48ba58e2bcbbb6d0060665705cf6a0af0202c3fc76cb6cac77d93 SHA512 231d4b6b5b303d845e8f4026378a0873df909a3acf20719b1f164bcc21bd24fd1cee0cc5a29f4246e58f158f38dc6e3b52c745818e60ab1faf192e4578f68b4d
+DIST asm-jdk-bridge-parent-0.0.11.tar.gz 39023 BLAKE2B b28b8467a140b3407e17a2b548f5fd1b972f4a2a5a933fd52e6009fac8cd8750991c6de42a827343d33c768e4a2504c709f47ed5f2693f5304e7f426f59bb4ef SHA512 4edbe971a67074d3f6ce55798dde08704d0c6ec24d0c8226d49dc6d66496abbf9972499cc75eb9cfca749f95547a16bf09852dd41e4744e3aeb2ecbe69cf4836
diff --git a/dev-java/asm-jdk-bridge/asm-jdk-bridge-0.0.9.ebuild b/dev-java/asm-jdk-bridge/asm-jdk-bridge-0.0.11.ebuild
index a6fb82788462..1057ebab67bf 100644
--- a/dev-java/asm-jdk-bridge/asm-jdk-bridge-0.0.9.ebuild
+++ b/dev-java/asm-jdk-bridge/asm-jdk-bridge-0.0.11.ebuild
@@ -4,8 +4,8 @@
EAPI=8
JAVA_PKG_IUSE="doc source test"
-MAVEN_ID="codes.rafael.asmjdkbridge:asm-jdk-bridge:${PV}"
JAVA_TESTING_FRAMEWORKS="junit-4"
+MAVEN_ID="codes.rafael.asmjdkbridge:asm-jdk-bridge:${PV}"
inherit java-pkg-2 java-pkg-simple
@@ -16,23 +16,29 @@ S="${WORKDIR}/${PN}-${PN}-parent-${PV}"
LICENSE="Apache-2.0"
SLOT="0"
-
-# Not keyworded because java 25 isn't.
-# KEYWORDS="~amd64"
+KEYWORDS="~amd64"
CP_DEPEND="
>=dev-java/asm-9.8:0
dev-java/junit:4
"
+# Restrict to jdk:25 due to additional test failures with jdk:26
DEPEND="
${CP_DEPEND}
- >=virtual/jdk-24:*
+ virtual/jdk:25
"
+PATCHES=( "${FILESDIR}/asm-jdk-bridge-0.0.11-skipFailingTest.patch" )
+
+# asm-jdk-bridge-test/src/main/java/codes/rafael/asmjdkbridge/test/RecordComponents.java:6:
+# error: records are not supported in -source 8
+# public record RecordComponents(
+# ^
+# (use -source 16 or higher to enable records)
RDEPEND="
${CP_DEPEND}
- >=virtual/jre-24:*
+ >=virtual/jre-17:*
"
JAVA_INTERMEDIATE_JAR_NAME="codes.rafael.asmjdkbridge"
@@ -43,3 +49,10 @@ JAVA_RELEASE_SRC_DIRS=(
)
JAVA_SRC_DIR="asm-jdk-bridge/src/main/java"
+JAVA_TEST_SRC_DIR=( asm-jdk-bridge-test/src/{main,test}/java )
+
+src_prepare() {
+ default # bug #780585
+ java-pkg-2_src_prepare
+ rm -r asm-jdk-bridge/src/main/java-9/codes || die "Dummy"
+}
diff --git a/dev-java/asm-jdk-bridge/files/asm-jdk-bridge-0.0.11-skipFailingTest.patch b/dev-java/asm-jdk-bridge/files/asm-jdk-bridge-0.0.11-skipFailingTest.patch
new file mode 100644
index 000000000000..5cc7ed562064
--- /dev/null
+++ b/dev-java/asm-jdk-bridge/files/asm-jdk-bridge-0.0.11-skipFailingTest.patch
@@ -0,0 +1,30 @@
+There was 1 failure:
+1) parsed_class_files_are_equal[class codes.rafael.asmjdkbridge.test.CustomAttributeGen (reader=0)](codes.rafael.asmjdkbridge.test.JdkClassReaderTest)
+java.lang.UnsupportedOperationException: Unknown value: CustomAttribute[name=CustomCodeAttribute]
+ at codes.rafael.asmjdkbridge.JdkClassReader.lambda$accept$43(JdkClassReader.java:504)
+ at java.base/java.util.Optional.ifPresent(Optional.java:178)
+ at codes.rafael.asmjdkbridge.JdkClassReader.accept(JdkClassReader.java:329)
+ at codes.rafael.asmjdkbridge.test.JdkClassReaderTest.parsed_class_files_are_equal(JdkClassReaderTest.java:80)
+
+FAILURES!!!
+Tests run: 109, Failures: 1
+
+--- a/asm-jdk-bridge-test/src/test/java/codes/rafael/asmjdkbridge/test/JdkClassReaderTest.java
++++ b/asm-jdk-bridge-test/src/test/java/codes/rafael/asmjdkbridge/test/JdkClassReaderTest.java
+@@ -4,6 +4,7 @@ import codes.rafael.asmjdkbridge.JdkClassReader;
+ import codes.rafael.asmjdkbridge.sample.NoRecordComponents;
+ import codes.rafael.asmjdkbridge.sample.RecordComponents;
+ import org.junit.Test;
++import org.junit.Ignore;
+ import org.junit.runner.RunWith;
+ import org.junit.runners.Parameterized;
+ import org.objectweb.asm.Attribute;
+@@ -69,7 +70,7 @@ public class JdkClassReaderTest {
+ this.flags = flags;
+ }
+
+- @Test
++ @Test @Ignore
+ public void parsed_class_files_are_equal() throws IOException {
+ byte[] classFile;
+ try (InputStream inputStream = target.getResourceAsStream(target.getName().substring(target.getPackageName().length() + 1) + ".class")) {
diff --git a/dev-java/asm/asm-9.8_p20250706.ebuild b/dev-java/asm/asm-9.8_p20250706.ebuild
index 90489439bd9b..887b478d2e11 100644
--- a/dev-java/asm/asm-9.8_p20250706.ebuild
+++ b/dev-java/asm/asm-9.8_p20250706.ebuild
@@ -28,7 +28,7 @@ S="${WORKDIR}/asm-${MY_COMMIT}"
LICENSE="BSD"
SLOT="0"
-KEYWORDS="~amd64 ~arm64 ~ppc64 ~x64-macos"
+# KEYWORDS="~amd64 ~arm64 ~ppc64 ~x64-macos"
DEPEND=">=virtual/jdk-11:*"
RDEPEND=">=virtual/jre-1.8:*"
diff --git a/dev-java/auto-value/Manifest b/dev-java/auto-value/Manifest
new file mode 100644
index 000000000000..1a5f82be4e06
--- /dev/null
+++ b/dev-java/auto-value/Manifest
@@ -0,0 +1 @@
+DIST auto-value-1.11.0.tar.gz 434518 BLAKE2B 6553802cb805e7c1c8f5dcfe4ad4624405788c97758e69f6b502f2bc9f189e4e8e9111de5f01c6c6b65963c4c1cd8be3d6c5725ea2ca70000e1bfe14746f5219 SHA512 1b0b129c7258cb8c5829faa0abb2665b17481bdb971c57e1eab35a130524520281355ddbbaa2cbb6ff8ac26744fb4fb36882de5eea6b74a4bb243d17b5ff6bba
diff --git a/dev-java/auto-value/auto-value-1.11.0.ebuild b/dev-java/auto-value/auto-value-1.11.0.ebuild
new file mode 100644
index 000000000000..ba22f778bad6
--- /dev/null
+++ b/dev-java/auto-value/auto-value-1.11.0.ebuild
@@ -0,0 +1,184 @@
+# Copyright 1999-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+JAVA_PKG_IUSE="doc test"
+JAVA_TESTING_FRAMEWORKS="junit-4"
+
+inherit java-pkg-2 java-pkg-simple
+
+DESCRIPTION="Immutable value-type code generation for Java 1.7+"
+HOMEPAGE="https://github.com/google/auto/tree/master/value"
+SRC_URI="https://github.com/google/auto/archive/${P}.tar.gz"
+S="${WORKDIR}/auto-${P}"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~amd64"
+
+CP_DEPEND="
+ >=dev-java/asm-9.8-r1:0
+ dev-java/escapevelocity:0
+ >=dev-java/guava-33.4.8:0
+ dev-java/incap:0
+ dev-java/javapoet:0
+"
+
+DEPEND="
+ ${CP_DEPEND}
+ >=dev-java/checker-framework-qual-3.49.5:0
+ >=dev-java/error-prone-annotations-2.41.0:0
+ >=virtual/jdk-1.8:*
+ test? (
+ dev-java/compile-testing:0
+ >=dev-java/guava-testlib-33.4.8:0
+ dev-java/jsr305:0
+ dev-java/truth:0
+ )
+"
+
+RDEPEND="
+ ${CP_DEPEND}
+ >=virtual/jre-1.8:*
+"
+
+JAVA_TEST_EXCLUDES=(
+ # No runnable methods
+ com.google.auto.value.extension.serializable.serializer.utils.TestStringSerializerFactory
+
+ # There was 1 failure:
+ # 1) getFactory_extensionsLoaded(com.google.auto.value.extension.serializable.serializer.SerializerFactoryLoaderTest)
+ # value of : getName()
+ # expected to contain: TestStringSerializerFactory$TestStringSerializer
+ # but was : com.google.auto.value.extension.serializable.serializer.impl.IdentitySerializerFactory$IdentitySerializer
+ # at com.google.auto.value.extension.serializable.serializer.SerializerFactoryLoaderTest.getFactory_extensionsLoaded(SerializerFactoryLoaderTest.java:37)
+ #
+ # FAILURES!!!
+ # Tests run: 403, Failures: 1
+ #
+ com.google.auto.value.extension.serializable.serializer.SerializerFactoryLoaderTest
+)
+
+JAVA_TEST_GENTOO_CLASSPATH="
+ checker-framework-qual
+ compile-testing
+ escapevelocity
+ guava-testlib
+ incap
+ javapoet
+ jsr305
+ junit-4
+ truth
+"
+
+JAVA_TEST_SRC_DIR="value/src/test/java"
+
+src_prepare() {
+ java-pkg-2_src_prepare
+
+ mkdir -p value/res/META-INF/services && cd $_ || die "mkdir"
+
+ cat > javax.annotation.processing.Processor <<-JAVAX || die
+ com.google.auto.value.extension.memoized.processor.MemoizedValidator
+ com.google.auto.value.extension.toprettystring.processor.ToPrettyStringValidator
+ com.google.auto.value.processor.AutoAnnotationProcessor
+ com.google.auto.value.processor.AutoBuilderProcessor
+ com.google.auto.value.processor.AutoOneOfProcessor
+ com.google.auto.value.processor.AutoValueBuilderProcessor
+ com.google.auto.value.processor.AutoValueProcessor
+ JAVAX
+
+ cat > com.google.auto.value.extension.serializable.serializer.interfaces.SerializerExtension <<-SER || die
+ com.google.auto.value.extension.serializable.serializer.impl.ImmutableListSerializerExtension
+ com.google.auto.value.extension.serializable.serializer.impl.ImmutableMapSerializerExtension
+ com.google.auto.value.extension.serializable.serializer.impl.OptionalSerializerExtension
+ SER
+
+ cat > com.google.auto.value.extension.AutoValueExtension <<-AUTO || die
+ com.google.auto.value.extension.memoized.processor.MemoizeExtension
+ com.google.auto.value.extension.serializable.processor.SerializableAutoValueExtension
+ com.google.auto.value.extension.toprettystring.processor.ToPrettyStringExtension
+ AUTO
+}
+
+src_compile() {
+ local cp="$(java-pkg_getjar asm asm.jar)"
+ cp="${cp}:$(java-pkg_getjars --build-only checker-framework-qual,error-prone-annotations)"
+ cp="${cp}:$(java-pkg_getjars escapevelocity,guava,incap,javapoet)"
+
+ local sources=$(find \
+ common/src/main/java \
+ service/annotations/src/main/java \
+ service/processor/src/main/java \
+ value/src/main/java \
+ -name '*.java') || die "gather sources"
+
+ einfo "compile them all"
+ mkdir -p target/classes || die "mkdir target/classes" # still needed for openjdk-8
+ ejavac -d target/classes -classpath "${cp}" ${sources[@]}
+
+ use doc && ejavadoc -d target/api -classpath "${cp}" -quiet ${sources[@]}
+
+ einfo "package auto-value-annotations"
+ # according to value/annotations/pom.xml
+ find target/classes/com/google/auto/value \
+ \( ! -path '*/value/*/*' -path '*/value/*.class' \) -o \
+ \( ! -path '*/value/extension/memoized/*/*' -path '*/value/extension/memoized/*.class' \) -o \
+ \( ! -path '*/value/extension/serializable/*/*' -path '*/value/extension/serializable/*.class' \) -o \
+ \( ! -path '*/value/extension/toprettystring/*/*' -path '*/value/extension/toprettystring/*.class' \) |
+ sed -e 's/^/-C /' -e 's/classes\/com/classes com/' > valueannotations || die "valueannotations"
+ jar cf auto-value-annotations.jar @valueannotations || die
+
+ einfo "package auto-value"
+ # according to value/processor/pom.xml
+ find target/classes/com/google/auto \( \
+ -path '*/value/processor/*.class' -o \
+ -path '*/value/extension/memoized/processor/*.class' -o \
+ -path '*/value/extension/serializable/processor/*.class' -o \
+ -path '*/value/extension/serializable/serializer/*.class' -o \
+ -path '*/value/extension/toprettystring/processor/*.class' -o \
+ -path '*/value/extension/AutoValueExtension*.class' \) |
+ sed -e 's/^/-C /' -e 's/classes\/com/classes com/' > autovalue || die "autovalue"
+ find value/src/main/java -path '*/value/processor/*.vm' |
+ sed -e 's/^/-C /' -e 's/java\/com/java com/' >> autovalue || die "add .vm files"
+ jar cf auto-value.jar @autovalue || die
+ jar uvf auto-value.jar -C value/res . || die
+
+ einfo "package auto-common"
+ jar cf auto-common.jar -C target/classes com/google/auto/common || die
+
+ einfo "package auto-service-annotations"
+ jar cf auto-service-annotations.jar -C target/classes com/google/auto/service/AutoService.class || die
+
+ einfo "package auto-service"
+ jar cf auto-service.jar -C target/classes com/google/auto/service/processor || die
+ jar uvf auto-service.jar -C service/processor/src/main/resources META-INF/services || die
+}
+
+src_test() {
+ JAVA_GENTOO_CLASSPATH_EXTRA=":auto-common.jar:auto-service-annotations.jar:auto-value-annotations.jar"
+
+ # java.lang.NoClassDefFoundError: com/google/auto/common/MoreTypes
+ # means 'auto-common.jar' is also needed on processorpath.
+
+ # get processorpath
+ local pp="auto-value.jar:auto-common.jar"
+ pp="${pp}:$(java-pkg_getjars --build-only guava,incap,escapevelocity,javapoet)"
+
+ JAVAC_ARGS="-processorpath ${pp} -parameters" # '-parameters' for MemoizedTest, pom.xml line 177
+
+ local vm_version="$(java-config -g PROVIDES_VERSION)"
+ if ver_test "${vm_version}" -ge 17; then
+ # pom.xml lines 279-281
+ JAVA_TEST_EXTRA_ARGS=( --add-exports=jdk.compiler/com.sun.tools.javac.{api,file,parser,tree,util}=ALL-UNNAMED)
+ fi
+
+ java-pkg-simple_src_test
+}
+
+src_install() {
+ java-pkg-simple_src_install
+ java-pkg_dojar auto-value-annotations.jar auto-common.jar auto-service-annotations.jar auto-service.jar
+ use doc && docinto html && dodoc -r value/userguide
+}
diff --git a/dev-java/auto-value/metadata.xml b/dev-java/auto-value/metadata.xml
new file mode 100644
index 000000000000..a8839b77dd6f
--- /dev/null
+++ b/dev-java/auto-value/metadata.xml
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "https://liguros.gitlab.io/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="project">
+ <email>java@gentoo.org</email>
+ </maintainer>
+ <upstream>
+ <doc>https://github.com/google/auto/blob/main/value/userguide/index.md</doc>
+ </upstream>
+ <origin>gentoo-staging</origin>
+</pkgmetadata> \ No newline at end of file
diff --git a/dev-java/byte-buddy/Manifest b/dev-java/byte-buddy/Manifest
index 8d0cb84e1205..a352f7d7f323 100644
--- a/dev-java/byte-buddy/Manifest
+++ b/dev-java/byte-buddy/Manifest
@@ -1,2 +1,2 @@
DIST byte-buddy-1.15.11.tar.gz 2059994 BLAKE2B b5b11de938d2b96518c01cf1bcebb0f34ca6ccdb81e519e0177fa371f438da9ca5aba5749d1a7af0f42a2359c55228f3cbfbfe32f158d4a18fe7f02a5d5bf4f2 SHA512 9e663dfee80e6ae9e4983a39177a94f160e52e3ef1dec54b8f6a90e32c18ae5b36c9e791fd605b43754b2667f6efd7e15a1f7b0ce6c5034945567aef8a6b8aa8
-DIST byte-buddy-1.17.5.tar.gz 2091889 BLAKE2B 160e2c6dfe5ec5dee63c6417cb5f13462fa7ca4cfdd27cd304fb4e4bf0510be1c02dcc2d67642a734d353fe0042134d249da98aba2e5c6ddecdd9eae80daeff4 SHA512 14f0989c038489b91c05e5804a32e98f66a4a5ad95c67571416426b85e45af9ab3ce744d180d0b8fbb6447820aaec28f3b224e3d9fa2f80fca20d53c37e95b5a
+DIST byte-buddy-1.17.7.tar.gz 2102268 BLAKE2B d4099c52459147816e63d424d444485226ccdbe2b6b35c082a0634575f81af90290cfd9685319e721ddcc9570d1087a9520a4f26b5086a850f7d951cd271cdd6 SHA512 88a0af9b15e8db60aae40fb3b21164a610f8fc7d59648d6148e8c01b8ec0fe8a2ffb3f1160256c8b8fe6887faaee4ebae352af7cb45c5a751e435404ac05137e
diff --git a/dev-java/byte-buddy/byte-buddy-1.17.5.ebuild b/dev-java/byte-buddy/byte-buddy-1.17.7.ebuild
index 8c3cb65c3e38..7f3a3677d0ea 100644
--- a/dev-java/byte-buddy/byte-buddy-1.17.5.ebuild
+++ b/dev-java/byte-buddy/byte-buddy-1.17.7.ebuild
@@ -4,8 +4,8 @@
EAPI=8
JAVA_PKG_IUSE="doc source test"
-MAVEN_PROVIDES="net.bytebuddy:byte-buddy-agent:${PV} net.bytebuddy:byte-buddy:${PV}"
JAVA_TESTING_FRAMEWORKS="junit-4"
+MAVEN_PROVIDES="net.bytebuddy:byte-buddy-agent:${PV} net.bytebuddy:byte-buddy:${PV}"
inherit java-pkg-2 java-pkg-simple
@@ -16,17 +16,21 @@ S="${WORKDIR}/byte-buddy-${P}"
LICENSE="Apache-2.0"
SLOT="0"
-# KEYWORDS="~amd64" # Not keyworded bacause of dependency on asm-jdk-bridge
+KEYWORDS="~amd64"
+# Min java 11 because of module-info.
+# Max jdk 25 because of test failures with openjdk-26
+# There were 31 failures:
+# 1) testClassFileIsNotParsedForExtendedProperties[1](net.bytebuddy.pool.TypePoolDefaultWithLazyResolutionTypeDescriptionTest)
+# java.lang.IllegalStateException: Could not invoke proxy: Method not available on current VM: codes.rafael.asmjdkbridge.JdkClassReader.getSuperClass()
DEPEND="
- >=dev-java/asm-9.8:0
- dev-java/asm-jdk-bridge:0
+ >=dev-java/asm-9.8-r1:0
+ >=dev-java/asm-jdk-bridge-0.0.10:0
dev-java/findbugs-annotations:0
>=dev-java/jna-5.17.0:0
dev-java/jsr305:0
- >=virtual/jdk-11:*
+ || ( virtual/jdk:25 virtual/jdk:21 virtual/jdk:17 virtual/jdk:11 )
test? (
- dev-java/asm-jdk-bridge:0
>=dev-java/mockito-2.28.2-r1:2
)
"
@@ -35,18 +39,9 @@ RDEPEND=">=virtual/jre-1.8:*"
PATCHES=( "${FILESDIR}/byte-buddy-1.15.10-Skip-testIgnoreExistingField.patch" )
-JAVA_CLASSPATH_EXTRA="
- asm
- asm-jdk-bridge
- findbugs-annotations
- jna
- jsr305
-"
+JAVA_CLASSPATH_EXTRA="asm asm-jdk-bridge findbugs-annotations jna jsr305"
JAVADOC_CLASSPATH="${JAVA_CLASSPATH_EXTRA}"
-JAVADOC_SRC_DIRS=(
- "byte-buddy-agent/src/main/java"
- "byte-buddy/src/main/java"
-)
+JAVADOC_SRC_DIRS=( byte-buddy{,-agent}/src/main/java )
src_prepare() {
default #780585
@@ -87,7 +82,7 @@ src_test() {
mv byte-buddy{-dep,}/src/test || die "cannot move tests"
JAVAC_ARGS="-g"
- JAVA_TEST_GENTOO_CLASSPATH="asm-jdk-bridge,junit-4,mockito-2"
+ JAVA_TEST_GENTOO_CLASSPATH="asm asm-jdk-bridge junit-4 mockito-2"
einfo "Testing byte-buddy-agent"
# https://github.com/raphw/byte-buddy/issues/1321#issuecomment-1252776459
diff --git a/dev-java/commons-beanutils/Manifest b/dev-java/commons-beanutils/Manifest
index dacbe47ef92f..b252a76331f2 100644
--- a/dev-java/commons-beanutils/Manifest
+++ b/dev-java/commons-beanutils/Manifest
@@ -1,5 +1,7 @@
DIST commons-beanutils-1.10.1-src.tar.gz 401852 BLAKE2B 380282dd125d7ea5d11b9ad109d6db0f3fad433b241f3abd3c39a5830cdbfb505b82c28e615e0d8a6807f811c43c65f41c968078841de756a01dd5815c896152 SHA512 063d4c0c9b8c77e9358e15c0ac8b1ad7abbb31e4760a5b3898bac2aee72d0a7eb4f7890769fa31bd096eb038759f97f10f4e7418a6fc4059c1a2050a20756581
DIST commons-beanutils-1.10.1-src.tar.gz.asc 488 BLAKE2B f2d8bdc0de05fcbd2ae7e02b60ef461d3206100eed9134ea308b4129dcc820da954e49ce2aa6af6608555b5fa1be18cb7fa1eef2a1b1462070c4e4131dbbc7f9 SHA512 c63782276dead71add56022515d1f8336d618ddf5166cbafa18a062031f2962791a31a74d225d3bef1b557213c15f37c6b7ce98c83046e3f537cc47ca6cfee7a
+DIST commons-beanutils-1.11.0-src.tar.gz 403183 BLAKE2B 3823f9ff060d182485cd7cae54999ae5d076d3cff0eec5f5ae87d66cfc960f9224cf17940023991b7e599a826796d572dd476681ced2a46accbeb209ff723f13 SHA512 edd930e7f8118d0cceb8647666fe1d5f873f939f858f433cd19985a75c4575455f2a2d339e4bcbf08b3f586c785a60429d4bb33ff6239da8f2c6183c8c318f18
+DIST commons-beanutils-1.11.0-src.tar.gz.asc 488 BLAKE2B 57401bf829ff9badc9ace98c8b3e36e65d2a649b4eb07a314426bd7b5b566965c9b5122a976be78e665f203af67d732fa401b1f417a4b0a349a0071f5cdc26e1 SHA512 f40927ad294f0280460aef5c53fd4a29357e59238a7f407013b9f67c333aa0752bde709f2fedc802f8140175bc3eedc446d8ad68d184643e6bf643aeff42f319
DIST commons-beanutils-1.9.4-src.tar.gz 412606 BLAKE2B 213a2ad4d976ed4c55c9a73c0970a656e2f03efcba886369c8be164e04618937ad636ce7ffa6aa7b981e9595b24e4cbacc2bc632268bbfede8172091ef6eb4ff SHA512 6f3d30d02b9a66cf20509bd868c6e2dadb44bb27da1e6b9af7275675e0f3826845a5d4005509dd1eb77a5b2937820c4770a3753daaab072785dcdab0caa69e73
DIST commons-beanutils-1.9.4-src.tar.gz.asc 833 BLAKE2B c971231cfb034bd9bbbd6e7801a4fcb54853c0d18872cfae81ce761fc8f71ebb70955456827ad33b4abd4df8c9820031fd49f28c50eddef5251b2a0d1b01cff9 SHA512 2a966959b2c94bf013df71885c2906a092b43a0ac6d63963f1462e7c09376964bb948c0681278a58fffae6716d042dc846b1649e1f4b0816e2adb3733bf14451
DIST commons-collections-3.2.2-src.tar.gz 630693 BLAKE2B a70cebe9526291d5207db7edd7c9b50060413880d41dcb28c01cf05f7e00a9f5e1560012c3c3c763162412282db9512bc2b64a5788f210c5c8866943d912dafb SHA512 2e8ef638f07515b028a3e7e97851fcf1d9023a2c188e211bd1e936f35d3d91c2885adf3b1103ad17dfb7aeea6e7a67ce7826ee346a8a29c1aa7c6b0cf14e9230
diff --git a/dev-java/commons-beanutils/commons-beanutils-1.11.0.ebuild b/dev-java/commons-beanutils/commons-beanutils-1.11.0.ebuild
new file mode 100644
index 000000000000..71bd50a49059
--- /dev/null
+++ b/dev-java/commons-beanutils/commons-beanutils-1.11.0.ebuild
@@ -0,0 +1,97 @@
+# Copyright 1999-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+JAVA_PKG_IUSE="doc source test"
+MAVEN_ID="commons-beanutils:commons-beanutils:1.11.0"
+JAVA_TESTING_FRAMEWORKS="junit-vintage"
+
+inherit java-pkg-2 java-pkg-simple junit5 verify-sig
+
+DESCRIPTION="Provides easy-to-use wrappers around Reflection and Introspection APIs"
+HOMEPAGE="https://commons.apache.org/proper/commons-beanutils/"
+# We need some test classes of commons-collections which are not part of the jar file.
+ACC="commons-collections-3.2.2"
+SRC_URI="mirror://apache/commons/beanutils/source/${P}-src.tar.gz
+ test? ( https://archive.apache.org/dist/commons/collections/source/${ACC}-src.tar.gz )
+ verify-sig? ( https://downloads.apache.org/commons/beanutils/source/${P}-src.tar.gz.asc )"
+S="${WORKDIR}/${P}-src"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~amd64 ~arm64 ~ppc64 ~amd64-linux ~x86-linux ~x64-macos"
+IUSE="log4j"
+
+BDEPEND="verify-sig? ( sec-keys/openpgp-keys-ggregory )"
+
+COMMON_DEPEND="
+ dev-java/commons-collections:0
+ >=dev-java/commons-logging-1.3.5:0[log4j=]
+ log4j? (
+ dev-java/log4j-12-api:2
+ dev-java/log4j-api:2
+ )
+"
+
+DEPEND="
+ ${COMMON_DEPEND}
+ dev-java/jakarta-servlet-api:4
+ dev-java/slf4j-api:0
+ >=virtual/jdk-11:*
+ test? (
+ dev-java/junit:4
+ dev-java/junit:5[vintage]
+ dev-java/opentest4j:0
+ )
+"
+RDEPEND="
+ ${COMMON_DEPEND}
+ >=virtual/jre-1.8:*
+"
+
+DOCS=( {CONTRIBUTING,README}.md {NOTICE,RELEASE-NOTES}.txt )
+PATCHES=( "${FILESDIR}/commons-beanutils-1.11.0-skipFailingTest.patch" )
+
+JAVA_CLASSPATH_EXTRA="jakarta-servlet-api-4 slf4j-api"
+JAVA_GENTOO_CLASSPATH="commons-collections commons-logging"
+JAVA_INTERMEDIATE_JAR_NAME="org.apache.${PN/-/.}"
+JAVA_MODULE_INFO_OUT="src/main"
+JAVA_SRC_DIR="src/main/java"
+JAVA_TEST_GENTOO_CLASSPATH="junit-4 junit-5 opentest4j"
+JAVA_TEST_RESOURCE_DIRS="data"
+JAVA_TEST_SRC_DIR=( src/test/java ../"${ACC}"-src/src/test )
+VERIFY_SIG_OPENPGP_KEY_PATH="/usr/share/openpgp-keys/ggregory.asc"
+
+src_unpack() {
+ if use verify-sig; then
+ verify-sig_verify_detached "${DISTDIR}"/${P}-src.tar.gz{,.asc}
+ fi
+ default
+}
+
+src_prepare() {
+ default #780585
+ java-pkg-2_src_prepare
+
+ if use log4j; then
+ JAVA_GENTOO_CLASSPATH+="
+ log4j-12-api-2
+ log4j-api-2
+ "
+ fi
+
+ if use test; then
+ # Apply patch to unpacked commons-collections
+ pushd "../${ACC}-src" >> /dev/null || die
+ eapply "${FILESDIR}/${ACC}-fixes.patch"
+ popd
+
+ cp -r ../"${ACC}"-src/data . || die "copy test data"
+ fi
+
+ local vm_version="$(java-config -g PROVIDES_VERSION)"
+ if ver_test "${vm_version}" -ge 17; then
+ JAVA_TEST_EXTRA_ARGS+=( --add-opens=java.base/java.{io,lang,util,time,time.chrono}=ALL-UNNAMED )
+ fi
+}
diff --git a/dev-java/commons-beanutils/files/commons-beanutils-1.11.0-skipFailingTest.patch b/dev-java/commons-beanutils/files/commons-beanutils-1.11.0-skipFailingTest.patch
new file mode 100644
index 000000000000..0f5508161710
--- /dev/null
+++ b/dev-java/commons-beanutils/files/commons-beanutils-1.11.0-skipFailingTest.patch
@@ -0,0 +1,31 @@
+ testComponentRegistersCustomConverter
+ tags: []
+ uniqueId: [engine:junit-vintage]/[runner:org.apache.commons.beanutils.converters.MemoryTestCase]/[test:testComponentRegistersCustomConverter(org.apache.commons.beanutils.converters.MemoryTestCase)]
+ parent: [engine:junit-vintage]/[runner:org.apache.commons.beanutils.converters.MemoryTestCase]
+ source: MethodSource [className = 'org.apache.commons.beanutils.converters.MemoryTestCase', methodName = 'testComponentRegistersCustomConverter', methodParameterTypes = '']
+ caught: java.lang.NegativeArraySizeException: -2147483648
+ at org.apache.commons.beanutils.converters.MemoryTestCase.forceGarbageCollection(MemoryTestCase.java:68)
+ at org.apache.commons.beanutils.converters.MemoryTestCase.testComponentRegistersCustomConverter(MemoryTestCase.java:162)
+ at java.base/java.lang.reflect.Method.invoke(Method.java:565)
+ duration: 1227 ms
+ status: ✘ FAILED
+
+--- a/src/test/java/org/apache/commons/beanutils/converters/MemoryTestCase.java
++++ b/src/test/java/org/apache/commons/beanutils/converters/MemoryTestCase.java
+@@ -26,6 +26,7 @@ import java.lang.ref.WeakReference;
+
+ import org.apache.commons.beanutils.ConvertUtils;
+ import org.apache.commons.beanutils.Converter;
++import org.junit.Ignore;
+ import org.junit.Test;
+
+ /**
+@@ -95,7 +96,7 @@ public class MemoryTestCase {
+ * </ul>
+ *
+ */
+- @Test
++ @Test @Ignore
+ public void testComponentRegistersCustomConverter() throws Exception {
+
+ final ClassLoader origContextClassLoader = Thread.currentThread().getContextClassLoader();
diff --git a/dev-java/commons-cli/Manifest b/dev-java/commons-cli/Manifest
index 4dc64591a27d..2d722afee7ba 100644
--- a/dev-java/commons-cli/Manifest
+++ b/dev-java/commons-cli/Manifest
@@ -1,2 +1,4 @@
+DIST commons-cli-1.10.0-src.tar.gz 222015 BLAKE2B 963c9c246571dc14b126b2605972cad73752e505ea51b2387d6f24c3c60d980688382c378da20617e5b2a267123f7c6c0a132c1c3cd4712807329c248d3795f8 SHA512 245951919a88068f692fc4cab906cb210bbefd853d851167d5c34fd4aebab7370766458033c47cf8174d7a409c4364752770b573252d19746cbb9a0e2c8c255b
+DIST commons-cli-1.10.0-src.tar.gz.asc 488 BLAKE2B a4951bf94331014141b73c1c272b321b5b83a079f5133d5892edc8ccb8df542e857e333ecc890ba4de674c0a97b506ab68da851e673ba4da6dd5135449490d9b SHA512 430fab63278f4ecd025e7fcb51a0bdfe5e648bf69d98c2cd51c7bc83887ae57afdd0238a8a9d00dcb1999b9a021bfdbcad5ec694dd7ce0c9dc54278bb62134b3
DIST commons-cli-1.9.0-src.tar.gz 187533 BLAKE2B d38f6602e065059521a052e2a9bfe7b05f9cd7da26537b3237868e583d7ca904e36cd58ffe04b9ea5feae81594cdc2bcbab7c16d2c95f2888f5ffd35c78c485c SHA512 d20df809e8e0ebed79c57af9c9b447b0068347ba0edfcdec3652cb00bd9575b24fc77093d735e827d9d02a6fe2681bf239fd01df5f7c682ae34ade0781c53e35
DIST commons-cli-1.9.0-src.tar.gz.asc 488 BLAKE2B 22992f7fe15617c0422061447f9bae8ff5ab5804514b48bb277cfad0483e932694048159b82f1782369bdf1f25f5a9387f63ea2d83f147ea80f9ef21d1b772c5 SHA512 27f46b143efef09c6ec84382b2c7ca3877441190f3201ed167560572e741c23d641c3c534b1c25df399445957353285bed7913f113db8489c097b2057ed70571
diff --git a/dev-java/commons-cli/commons-cli-1.10.0.ebuild b/dev-java/commons-cli/commons-cli-1.10.0.ebuild
new file mode 100644
index 000000000000..f4375ff80b1b
--- /dev/null
+++ b/dev-java/commons-cli/commons-cli-1.10.0.ebuild
@@ -0,0 +1,48 @@
+# Copyright 1999-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+JAVA_PKG_IUSE="doc source test"
+MAVEN_ID="commons-cli:commons-cli:1.10.0"
+JAVA_TESTING_FRAMEWORKS="junit-jupiter"
+
+# Avoid circular dependency
+JAVA_DISABLE_DEPEND_ON_JAVA_DEP_CHECK="true"
+
+inherit java-pkg-2 java-pkg-simple junit5 verify-sig
+
+DESCRIPTION="A Java library for working with the command line arguments and options"
+HOMEPAGE="https://commons.apache.org/proper/commons-cli/"
+SRC_URI="mirror://apache/commons/cli/source/${P}-src.tar.gz
+ verify-sig? ( https://downloads.apache.org/commons/cli/source/${P}-src.tar.gz.asc )"
+S="${WORKDIR}/${P}-src"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~amd64 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos"
+
+BDEPEND="verify-sig? ( sec-keys/openpgp-keys-ggregory )"
+
+# [-vintage] because, if junit:5 compiled with 'USE=vintage':
+# Error: Module junit not found, required by org.junit.vintage.engine
+DEPEND="
+ >=virtual/jdk-11:*
+ test? (
+ >=dev-java/commons-io-2.20.0:0
+ >=dev-java/commons-lang-3.18.0:0
+ >=dev-java/commons-text-1.14.0:0
+ dev-java/junit:5[-vintage]
+ dev-java/mockito:4
+ dev-java/opentest4j:0
+ )
+"
+RDEPEND=">=virtual/jre-1.8:*"
+
+JAVA_INTERMEDIATE_JAR_NAME="org.apache.${PN/-/.}"
+JAVA_MODULE_INFO_OUT="src/main"
+JAVA_SRC_DIR="src/main/java"
+JAVA_TEST_GENTOO_CLASSPATH="commons-io commons-lang commons-text junit-5 mockito-4 opentest4j"
+JAVA_TEST_RESOURCE_DIRS="src/test/resources"
+JAVA_TEST_SRC_DIR="src/test/java"
+VERIFY_SIG_OPENPGP_KEY_PATH="/usr/share/openpgp-keys/ggregory.asc"
diff --git a/dev-java/commons-codec/Manifest b/dev-java/commons-codec/Manifest
index eb06a28f8534..02606d303ac0 100644
--- a/dev-java/commons-codec/Manifest
+++ b/dev-java/commons-codec/Manifest
@@ -1,2 +1,4 @@
DIST commons-codec-1.18.0-src.tar.gz 462698 BLAKE2B 821ee8086f24e04390aa7b933f263313a63ee12a7b1b38147782af235ed79919f2f5679d679380f8de7e70c5264ce5314312e45517388e231b6e02804fd274ac SHA512 a14ce4498905fa0de67b7ba65faf75c770e7cdad4860ea14205781372c8777669fb562aab15c682385196a895895a6751b81d893ba4af6e01efb713970449227
DIST commons-codec-1.18.0-src.tar.gz.asc 488 BLAKE2B 11cb515ca17b05a7a6f7fae89b4bc78d77a06d66285a9624b442af49fb720cb5436d9f9f4a219d48b153fb3f65e2da9241470b65d111c5935f5834a516350777 SHA512 43f6803096a6d434663fee85bc586fc41781d7d2120d219408749f743aae87f31a7c104f7567374bd0f62205eabac52d86689bbdd1a988fd79dce2433df8f2c4
+DIST commons-codec-1.19.0-src.tar.gz 465560 BLAKE2B 3164070fbdcf9763a17cdb31f27e414570ac0b495029d36e042c07ff8e687967932ad630b076bbd0f7eed85e8f7b8fb0b7ce55434ae6ea2e855fd378289cd701 SHA512 65532419ea55f6d829ea46ff04806ab539a4e904950af9b780632c41011186ef1f38ebc739e3db115b2dd79266574316aa8c8e6e83c688accc8b1e8f4c2a3e83
+DIST commons-codec-1.19.0-src.tar.gz.asc 488 BLAKE2B 84b1c4f562378dbf078d383ed69087b475a034123219fe820dc243d6a22936d3436730460dec8cf5d63b921dfad674e197ecab09ce9880ade6ce072105d77676 SHA512 1d020a534c00676eddd620ae18357b3ae081eed20450053865a6bc9f46de613b28a2a834b6264d1e4253cdcd7ef3772c44740a278da7727eb65e6f35e3c7fee4
diff --git a/dev-java/commons-codec/commons-codec-1.19.0.ebuild b/dev-java/commons-codec/commons-codec-1.19.0.ebuild
new file mode 100644
index 000000000000..dd0e1ef9d77f
--- /dev/null
+++ b/dev-java/commons-codec/commons-codec-1.19.0.ebuild
@@ -0,0 +1,46 @@
+# Copyright 1999-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+JAVA_PKG_IUSE="doc source test"
+MAVEN_ID="commons-codec:commons-codec:${PV}"
+JAVA_TESTING_FRAMEWORKS="junit-jupiter"
+
+inherit java-pkg-2 java-pkg-simple junit5 verify-sig
+
+DESCRIPTION="Implementations of common encoders and decoders in Java"
+HOMEPAGE="https://commons.apache.org/proper/commons-codec/"
+SRC_URI="mirror://apache/commons/codec/source/${P}-src.tar.gz
+ verify-sig? ( https://downloads.apache.org/commons/codec/source/${P}-src.tar.gz.asc )"
+S="${WORKDIR}/${P}-src"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~amd64 ~amd64-linux ~x86-linux"
+
+BDEPEND="verify-sig? ( sec-keys/openpgp-keys-ggregory )"
+
+# [-vintage] because, if junit:5 compiled with 'USE=vintage':
+# Error: Module junit not found, required by org.junit.vintage.engine
+DEPEND="
+ >=virtual/jdk-11:*
+ test? (
+ >=dev-java/commons-io-2.20.0:0
+ >=dev-java/commons-lang-3.18.0:0
+ dev-java/hamcrest:0
+ dev-java/junit:5[-vintage]
+ dev-java/opentest4j:0
+ )
+"
+
+RDEPEND=">=virtual/jre-1.8:*"
+
+JAVA_INTERMEDIATE_JAR_NAME="org.apache.${PN/-/.}"
+JAVA_MODULE_INFO_OUT="src/main"
+JAVA_RESOURCE_DIRS="src/main/resources"
+JAVA_SRC_DIR="src/main/java"
+JAVA_TEST_GENTOO_CLASSPATH="commons-io commons-lang hamcrest junit-5 opentest4j"
+JAVA_TEST_RESOURCE_DIRS="src/test/resources"
+JAVA_TEST_SRC_DIR="src/test/java"
+VERIFY_SIG_OPENPGP_KEY_PATH="/usr/share/openpgp-keys/ggregory.asc"
diff --git a/dev-java/commons-compress/Manifest b/dev-java/commons-compress/Manifest
index 500e2f06d88c..384ed2fea44a 100644
--- a/dev-java/commons-compress/Manifest
+++ b/dev-java/commons-compress/Manifest
@@ -1,2 +1,7 @@
+DIST aircompressor-2.0.2.jar 254191 BLAKE2B 39a286963c21e428f9489a4fcd1f5e36e4c8d525289b82a805c7ba447e27119b23163885b138a552ee3bb5cb24b4a76afd1cc1dffbdf43c932e76ee6703f9680 SHA512 db5379867ff66f5570f48f42093f9172df23ef75f124fae4ec2dec74ee977ad081139f9dc0a663aae261439cb435a5c545edb7122d1bac40223401fe93fb431d
DIST commons-compress-1.27.1-src.tar.gz 61131529 BLAKE2B d6109c33d833548228e2bdcb2a5563526a7adede825de7422108d9e0890942e875b28032527bdc7c329306973c2ddc0da1995f028999c66b1ccefe5830a4a741 SHA512 c7a2cef26959e687ad19b96b5ba8393d7514095e13bf0f29bd41e6b3c3cb2260d8ff23283ff3d5fd137b2522b843e7f0f50ab46bcf0f66df5383674f35f223ab
DIST commons-compress-1.27.1-src.tar.gz.asc 488 BLAKE2B d7ed8dfae26b41a8884deecfb8b09e827388749f9f2c1f762947dae61635c64a76e4f86171bf893eb4d6ca53e270332a2487afbab3664f33d6618837417e979c SHA512 a7e12ee2470eae3f76540115dfb7817c3ce6142e2ac23bbd42150c32d9b615e889d3c52122b253fa9e56408c99ae5415b4987b6d8b97ff52090f676a2087b2f5
+DIST commons-compress-1.28.0-src.tar.gz 61394705 BLAKE2B 35152ab9d197d0cee82c62ca5e7df594ef61ca0893269ea0488fc6ec5c6e4f312dd85def316a36da081231696a72d4e79b08d47db7e0f8f8e779ebae92926e30 SHA512 cd37f7d554dff9f1cf9c90e93a30b7b15ace002d69d317a63d575fd623b4e64dbd55fbf2876ecd5333cf96858a37458f55762e5505311a7a8063d0cc8cdc4120
+DIST commons-compress-1.28.0-src.tar.gz.asc 488 BLAKE2B ffe3d43f4b6e118bace5bce47740867c4478aaac58ded9902ceda8225d1d9e2439dee3674c3930fd25ccac9c3e89c71ccea86a3e81261f2c502571eb46b145f6 SHA512 61b15edb4138ad55c771dbdf9b81b6045c941dd62d38172ff2d27d9a7fae4cddbbd322b35e5dd7c1e60386e4ca1a5b0a5ae12e887dbbd05b1ae0795c4346c7d2
+DIST pax-exam-4.13.5.jar 87566 BLAKE2B 3bd86216b5c957a76ecccd819def5ece49220f811dd0fb22890fc9548179b1273359650e1b9523dee5a3302127f922048ad70b1877caf0d1339f3e61a083f0b2 SHA512 2abb3d4165c0d4774f9e00d0971a74ef4fe4216b043370fd2aa40d13c73965910d6c10f2e4c0877e2d7cfda4ae06ce76cdc07259074f080175e7df82cd937213
+DIST pax-exam-junit4-4.13.5.jar 35441 BLAKE2B 4e33173af91a6b31489fdde6f8b0cb1305d64bb06566b41e0d37d382ef4b921dc304aa3e252e02512560227770d2187f00d87f44c37aae239c8e6d82f8aa86e3 SHA512 c2d4edf05b92cb62512b799f0773e668357a38d3f461a0db6f906157c88968dffb84b38735f54286d226ae2982b369fc5734dadfc4cf72719eb72bf86d39927b
diff --git a/dev-java/commons-compress/commons-compress-1.28.0.ebuild b/dev-java/commons-compress/commons-compress-1.28.0.ebuild
new file mode 100644
index 000000000000..1072bb88547b
--- /dev/null
+++ b/dev-java/commons-compress/commons-compress-1.28.0.ebuild
@@ -0,0 +1,99 @@
+# Copyright 1999-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+JAVA_PKG_IUSE="doc source test"
+MAVEN_ID="org.apache.commons:commons-compress:${PV}"
+JAVA_TESTING_FRAMEWORKS="junit-jupiter"
+
+inherit java-pkg-2 java-pkg-simple junit5 verify-sig
+
+DESCRIPTION="Java API for working with archive files"
+HOMEPAGE="https://commons.apache.org/proper/commons-compress/"
+PEV="4.13.5"
+AAV="2.0.2"
+SRC_URI="mirror://apache/commons/compress/source/${P}-src.tar.gz
+ test? (
+ https://repo1.maven.org/maven2/org/ops4j/pax/exam/pax-exam/${PEV}/pax-exam-${PEV}.jar
+ https://repo1.maven.org/maven2/org/ops4j/pax/exam/pax-exam-junit4/${PEV}/pax-exam-junit4-${PEV}.jar
+ https://repo1.maven.org/maven2/io/airlift/aircompressor/${AAV}/aircompressor-${AAV}.jar
+ )
+ verify-sig? ( https://downloads.apache.org/commons/compress/source/${P}-src.tar.gz.asc )"
+S="${WORKDIR}/${P}-src"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~amd64"
+
+BDEPEND="verify-sig? ( sec-keys/openpgp-keys-ggregory )"
+
+CP_DEPEND="
+ >=dev-java/asm-9.8-r1:0
+ dev-java/brotli-dec:0
+ >=dev-java/commons-codec-1.19.0:0
+ >=dev-java/commons-io-2.20.0:0
+ >=dev-java/commons-lang-3.18.0:0
+ >=dev-java/xz-java-1.10:0
+ >=dev-java/zstd-jni-1.5.7.4:0
+"
+
+DEPEND="
+ ${CP_DEPEND}
+ >=virtual/jdk-11:*
+ dev-java/osgi-core:0
+ test? (
+ dev-java/javax-inject:0
+ dev-java/junit-pioneer:0
+ dev-java/junit:4
+ dev-java/memoryfilesystem:0
+ dev-java/mockito:4
+ dev-java/opentest4j:0
+ )
+"
+
+RDEPEND="
+ ${CP_DEPEND}
+ >=virtual/jre-1.8:*
+"
+
+JAVA_AUTOMATIC_MODULE_NAME="org.apache.commons.compress"
+JAVA_CLASSPATH_EXTRA="osgi-core"
+JAVA_GENTOO_CLASSPATH_EXTRA+=:"${DISTDIR}/aircompressor-${AAV}.jar"
+JAVA_GENTOO_CLASSPATH_EXTRA+=:"${DISTDIR}/pax-exam-${PEV}.jar:${DISTDIR}/pax-exam-junit4-${PEV}.jar"
+JAVA_INTERMEDIATE_JAR_NAME="org.apache.${PN/-/.}"
+JAVA_MAIN_CLASS="org.apache.commons.compress.archivers.Lister"
+JAVA_MODULE_INFO_OUT="src/main"
+JAVA_SRC_DIR="src/main/java"
+JAVA_TEST_GENTOO_CLASSPATH="javax-inject junit-pioneer junit-4 junit-5 memoryfilesystem mockito-4 opentest4j"
+JAVA_TEST_RESOURCE_DIRS="src/test/resources"
+JAVA_TEST_SRC_DIR="src/test/java"
+VERIFY_SIG_OPENPGP_KEY_PATH="/usr/share/openpgp-keys/ggregory.asc"
+
+src_unpack() {
+ use verify-sig && verify-sig_verify_detached "${DISTDIR}"/${P}-src.tar.gz{,.asc}
+ default
+}
+
+src_prepare() {
+ java-pkg-2_src_prepare
+
+ tar xfv src/test/resources/zstd-tests.tar -C src/test/resources || die "untar"
+
+ # error: package shaded.org.apache.commons.lang3 does not exist
+ rm src/test/java/org/apache/commons/compress/archivers/tar/TarFileTest.java || die
+ rm src/test/java/org/apache/commons/compress/archivers/TarTest.java || die
+
+ # error: package shaded.org.apache.commons.io does not exist
+ rm src/test/java/org/apache/commons/compress/archivers/zip/Zip64SupportIT.java || die
+ rm src/test/java/org/apache/commons/compress/compressors/gzip/GzipCompressorOutputStreamTest.java || die
+
+ # error: package org.mockito.junit.jupiter does not exist
+ rm src/test/java/org/apache/commons/compress/compressors/deflate64/Deflate64CompressorInputStreamTest.java || die
+
+ JAVA_TEST_EXTRA_ARGS=( -Djava.library.path=$(java-config -i zstd-jni) )
+ local vm_version="$(java-config -g PROVIDES_VERSION)"
+ if ver_test "${vm_version}" -ge 17; then
+ JAVA_TEST_EXTRA_ARGS+=( --add-opens=java.base/java.io=ALL-UNNAMED )
+ fi
+}
diff --git a/dev-java/commons-csv/Manifest b/dev-java/commons-csv/Manifest
index 78c876a4ec28..dd5773a217e4 100644
--- a/dev-java/commons-csv/Manifest
+++ b/dev-java/commons-csv/Manifest
@@ -1,2 +1,5 @@
DIST commons-csv-1.14.0-src.tar.gz 37002418 BLAKE2B ff55dece5cb415a46bf410e26237b385427a5d3cb0fe170f6bd8c8d53d885f271df0dcb3cf84230a77b92fa310a49f396e8add09b0ed0bebe3c7461b2271bb4d SHA512 8eba311711b40e4b34aa37becc8ff2b18158d14fe4b032c23c59ae6a1c7b5be7c36ee3b9071ec30ae305a9f2cc4167017438b1ee8adde0a4f7f30e54fc9d5ff9
DIST commons-csv-1.14.0-src.tar.gz.asc 488 BLAKE2B 3e1f58fe4e831a13459101be14057760bf6c7ed093c7d7ec83f362888ae1d7300a07830ac7e98451f5af2e4bf11007aa664d514b8426f3f9fe92c750464a24dc SHA512 1415c2e286904c5b093d40702c705c2551fa0ba3a2463238c00825594bc751cdbcf76fc8fa98a782598dededc280aebb85f4a05c26b73a9f386273b60cbafc8e
+DIST commons-csv-1.14.1-src.tar.gz 37004361 BLAKE2B b81e7f384f64ea7011062c50285999e5c802f89db141af4ec3d3c21fc22e1fb0d2be64bcdb2a435bd374a4820d71c325bcbfc2a2645c8a4f209349d291a59b6c SHA512 f77d158f417b983370ccbeeb97a36be936a777d53993c1fdaa427df573d2f38127b4f9fb62acfeecd876cdffc057887fe657575bf517d96b05e3969dda8bdb8f
+DIST commons-csv-1.14.1-src.tar.gz.asc 488 BLAKE2B 3b5fb06e1c24aa0fde9121a4f1b21b34e14c794d6a781445172d08acafdbb762aba74b7d525379ab6897cb2de60ffbbb058e4322a5cbfcc80fc7076c52579a00 SHA512 5b2f94a94c39a119840f73fd303318af7e069a671df29956e47797895371c816fb4ffad8fc4ac8fdfef5d1d964df11d3f7c15d22081973453ac480b330d0ed96
+DIST h2-2.2.224.jar 2614933 BLAKE2B febc5ef48045cea63f9c3d42afa3e1d4397f78673864befa427ab7ac36b7b1b91822dc427700895baa198fad15eed93e94e68ab03529de24e6ce50ac6a818482 SHA512 f2fd97ef57232b3436a0c7aab04cd3a8212851fecd82404a12a4f5fd76059c8841e366dec7a1ab8f9e2a8ccb49ce741a1581094343eb9487c697077cfaad3724
diff --git a/dev-java/commons-csv/commons-csv-1.14.1.ebuild b/dev-java/commons-csv/commons-csv-1.14.1.ebuild
new file mode 100644
index 000000000000..737c84ad240f
--- /dev/null
+++ b/dev-java/commons-csv/commons-csv-1.14.1.ebuild
@@ -0,0 +1,60 @@
+# Copyright 1999-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+JAVA_PKG_IUSE="doc source test"
+JAVA_TESTING_FRAMEWORKS="junit-jupiter"
+MAVEN_ID="org.apache.commons:commons-csv:1.14.1"
+
+inherit java-pkg-2 java-pkg-simple junit5 verify-sig
+
+DESCRIPTION="Simple interface for reading and writing CSV files of various types"
+HOMEPAGE="https://commons.apache.org/proper/commons-csv/"
+H2V="2.2.224"
+SRC_URI="mirror://apache/commons/csv/source/${P}-src.tar.gz
+ test? ( https://repo1.maven.org/maven2/com/h2database/h2/${H2V}/h2-${H2V}.jar )
+ verify-sig? ( https://downloads.apache.org/commons/csv/source/${P}-src.tar.gz.asc )"
+S="${WORKDIR}/${P}-src"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~amd64"
+
+BDEPEND="verify-sig? ( sec-keys/openpgp-keys-ggregory )"
+
+# Min java 11 because of module-info.
+# Restrict to max java 25, because of error with java 26:
+# * ERROR: dev-java/commons-csv-1.14.1::testing failed (test phase):
+# * ConsoleLauncher failed
+DEPEND="
+ || ( virtual/jdk:25 virtual/jdk:21 virtual/jdk:17 virtual/jdk:11 )
+ >=dev-java/commons-codec-1.19.0:0
+ >=dev-java/commons-io-2.20.0:0
+ dev-java/findbugs-annotations:0
+ test? (
+ >=dev-java/commons-lang-3.18.0:0
+ dev-java/junit:5[-vintage]
+ dev-java/mockito:4
+ dev-java/opentest4j:0
+ )
+"
+
+RDEPEND=">=virtual/jre-1.8:*"
+
+DOCS=( LICENSE.txt NOTICE.txt RELEASE-NOTES.txt )
+
+JAVA_CLASSPATH_EXTRA="commons-codec commons-io findbugs-annotations"
+JAVA_GENTOO_CLASSPATH_EXTRA=:"${DISTDIR}/h2-${H2V}.jar"
+JAVA_INTERMEDIATE_JAR_NAME="org.apache.${PN/-/.}"
+JAVA_MODULE_INFO_OUT="src/main"
+JAVA_SRC_DIR="src/main/java"
+JAVA_TEST_GENTOO_CLASSPATH="commons-io commons-lang junit-5 mockito-4 opentest4j"
+JAVA_TEST_RESOURCE_DIRS="src/test/resources"
+JAVA_TEST_SRC_DIR="src/test/java"
+VERIFY_SIG_OPENPGP_KEY_PATH="/usr/share/openpgp-keys/ggregory.asc"
+
+src_unpack() {
+ use verify-sig && verify-sig_verify_detached "${DISTDIR}"/${P}-src.tar.gz{,.asc}
+ default
+}
diff --git a/dev-java/commons-io/Manifest b/dev-java/commons-io/Manifest
index 4160d5bc5b6d..6934b1e692f8 100644
--- a/dev-java/commons-io/Manifest
+++ b/dev-java/commons-io/Manifest
@@ -2,3 +2,5 @@ DIST commons-io-2.18.0-src.tar.gz 670984 BLAKE2B 3d8ffbd602cf31e89cb42059e9a7f83
DIST commons-io-2.18.0-src.tar.gz.asc 488 BLAKE2B 2c88e3374a839fb58ef25422c33e120699b319ebdf2baa8f72180e0db8089a4b9b851fc648c0508aad9c7707c463fbb9b849b3eaf545f101195083a4dffae160 SHA512 8101ffb12f3253e71f0234eb8a5a04d88bc7e8777cabfc88ac64f50b416dd6b4be28f8dfd14d09a97a63257c159fab4b512584085550ce965fcfd97cdb637a9e
DIST commons-io-2.19.0-src.tar.gz 692843 BLAKE2B 7d95ca091cd7b91cad31051aa58154639b3e3ef4a3b65f99dbc97e42e86ca8438d76342ee8b56b61406f1feaf5ce1eefabcf35200129825c6172b13984a80376 SHA512 217e711d2d0716b0b1fb858322a041b3d7ffb50e32adfad02681db966e453adb254b3d41123070d07a1883d050f250e253c084275af7782223ad7e48932be7e8
DIST commons-io-2.19.0-src.tar.gz.asc 488 BLAKE2B dbc0027e1c654bfa320c6b11023b87e51aafb3714d811bc2426154a4b75c978edf1027d06de0e64936227d508bdf207a230317487c322bb4420fee44e6bf7536 SHA512 aa5bdc78fc9b7ef819a9064521d9f05b7c83854278ee0af6b43e5d77438c0f23111f9335cf996f3f907f8a080cd031edc4fee72454b471278323cffd9eeb58c1
+DIST commons-io-2.20.0-src.tar.gz 700475 BLAKE2B 37d54c842a8bab868872a614ff70fb8d500e64a7f25f406ec157813e1ea0942c477a748317f7f4ec608afdc15233d523117ce804998c1b010c021cbda9a2328e SHA512 4c05970ad34e2aa32dc07de3b3335f46bb069dcb6f28fc6ed82867d890d4f31d6dfb5edb03ec3333f789f9ac0a57d84b5ffa782bd715ccffed41b1a9004217fb
+DIST commons-io-2.20.0-src.tar.gz.asc 488 BLAKE2B e33492847b5ed634b494b9c82ff9cbc6847d81224c39c6c6c5efe4839ef22f7cb5994a9afd96bbe56016347abd7e5bc6cd3fc0406bcc30fd10c85ac123eb3d4a SHA512 29ec14c947c68817d8d42307405fb7133ed6557cc36945609a6427c7064743e60a89a0c6702ffe51db0e28dd0679908688ffa11f6d623b459bc22cb93c443b43
diff --git a/dev-java/commons-io/commons-io-2.20.0.ebuild b/dev-java/commons-io/commons-io-2.20.0.ebuild
new file mode 100644
index 000000000000..1bfa43d4a051
--- /dev/null
+++ b/dev-java/commons-io/commons-io-2.20.0.ebuild
@@ -0,0 +1,75 @@
+# Copyright 1999-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+JAVA_PKG_IUSE="doc source test"
+JAVA_TESTING_FRAMEWORKS="junit-jupiter"
+MAVEN_ID="commons-io:commons-io:${PV}"
+
+inherit java-pkg-2 java-pkg-simple junit5 verify-sig
+
+DESCRIPTION="Utility classes, stream implementations, file filters, and much more"
+HOMEPAGE="https://commons.apache.org/proper/commons-io/"
+SRC_URI="mirror://apache/commons/io/source/${P}-src.tar.gz
+ verify-sig? ( https://downloads.apache.org/commons/io/source/${P}-src.tar.gz.asc )"
+S="${WORKDIR}/${P}-src"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~amd64 ~amd64-linux ~x86-linux ~ppc-macos"
+
+BDEPEND="verify-sig? ( sec-keys/openpgp-keys-ggregory )"
+
+# [-vintage] because, if junit:5 compiled with 'USE=vintage':
+# Error: Module junit not found, required by org.junit.vintage.engine
+DEPEND="
+ >=virtual/jdk-11:*
+ test? (
+ >=dev-java/commons-codec-1.18.0:0
+ >=dev-java/commons-lang-3.18.0:0
+ dev-java/jimfs:0
+ dev-java/jmh-core:0
+ dev-java/junit:5[-vintage]
+ dev-java/mockito:4
+ dev-java/junit-pioneer:0
+ dev-java/opentest4j:0
+ )
+"
+
+RDEPEND=">=virtual/jre-1.8:*"
+
+PATCHES=(
+ "${FILESDIR}/commons-io-2.20.0-BOMInputStreamTest.patch" # java.nio.BufferOverflowException
+ "${FILESDIR}/commons-io-2.20.0-CharSequenceInputStreamTest.patch" # java.nio.BufferOverflowException
+ "${FILESDIR}/commons-io-2.20.0-ThrottledInputStreamTest.patch" # org.mockito.exceptions.base.MockitoException:
+ "${FILESDIR}/commons-io-2.20.0-URIOriginalTest.patch" # java.net.UnknownHostException: example.com
+ "${FILESDIR}/commons-io-2.20.0-XmlStreamReaderTest.patch" # Needs network access
+)
+
+JAVA_INTERMEDIATE_JAR_NAME="org.apache.${PN/-/.}"
+JAVA_MODULE_INFO_OUT="src/main"
+JAVA_SRC_DIR="src/main/java"
+JAVA_TEST_GENTOO_CLASSPATH="commons-codec commons-lang jimfs jmh-core junit-pioneer junit-5 mockito-4 opentest4j"
+JAVA_TEST_RESOURCE_DIRS="src/test/resources"
+JAVA_TEST_SRC_DIR="src/test/java"
+VERIFY_SIG_OPENPGP_KEY_PATH="/usr/share/openpgp-keys/ggregory.asc"
+
+src_prepare() {
+ default #780585
+ java-pkg-2_src_prepare
+
+ # This test has compilation errors:
+ # src/test/java/org/apache/commons/io/file/PathUtilsContentEqualsTest.java:125:
+ # error: reference to newFileSystem is ambiguous
+ # FileSystem fileSystem2 = FileSystems.newFileSystem(refDir.resolveSibling(refDir.getFileName() + ".zip"), null)) {
+ # ^
+ # both method newFileSystem(Path,ClassLoader) in FileSystems and method newFileSystem(Path,Map<String,?>)
+ # in FileSystems match
+ rm src/test/java/org/apache/commons/io/file/PathUtilsContentEqualsTest.java || die
+
+ local vm_version="$(java-config -g PROVIDES_VERSION)"
+ if ver_test "${vm_version}" -ge 17; then
+ JAVA_TEST_EXTRA_ARGS+=( --add-opens=java.base/java.{io,lang,util,time,time.chrono}=ALL-UNNAMED )
+ fi
+}
diff --git a/dev-java/commons-io/files/commons-io-2.20.0-BOMInputStreamTest.patch b/dev-java/commons-io/files/commons-io-2.20.0-BOMInputStreamTest.patch
new file mode 100644
index 000000000000..4690efe93793
--- /dev/null
+++ b/dev-java/commons-io/files/commons-io-2.20.0-BOMInputStreamTest.patch
@@ -0,0 +1,43 @@
+testReadXmlWithBOMUcs4()
+ tags: []
+ uniqueId: [engine:junit-jupiter]/[class:org.apache.commons.io.input.BOMInputStreamTest]/[method:testReadXmlWithBOMUcs4()]
+ parent: [engine:junit-jupiter]/[class:org.apache.commons.io.input.BOMInputStreamTest]
+ source: MethodSource [className = 'org.apache.commons.io.input.BOMInputStreamTest', methodName = 'testReadXmlWithBOMUcs4', methodParameterTypes = '']
+ caught: java.nio.BufferOverflowException
+ at java.base/java.nio.charset.CoderResult.throwException(CoderResult.java:278)
+ at java.base/java.lang.String.encodeWithEncoder(String.java:917)
+ at java.base/java.lang.String.encode(String.java:875)
+ at java.base/java.lang.String.getBytes(String.java:1795)
+ at org.apache.commons.io.input.BOMInputStreamTest.testReadXmlWithBOMUcs4(BOMInputStreamTest.java:671)
+ at java.base/java.lang.reflect.Method.invoke(Method.java:580)
+ at java.base/java.util.ArrayList.forEach(ArrayList.java:1596)
+ at java.base/java.util.ArrayList.forEach(ArrayList.java:1596)
+ duration: 2 ms
+ status: ✘ FAILED
+
+--- a/src/test/java/org/apache/commons/io/input/BOMInputStreamTest.java
++++ b/src/test/java/org/apache/commons/io/input/BOMInputStreamTest.java
+@@ -42,6 +42,7 @@ import org.apache.commons.io.ByteOrderMark;
+ import org.apache.commons.io.IOUtils;
+ import org.apache.commons.io.test.CustomIOException;
+ import org.apache.commons.lang3.SystemProperties;
++import org.junit.jupiter.api.Disabled;
+ import org.junit.jupiter.api.Test;
+ import org.w3c.dom.Document;
+ import org.xml.sax.InputSource;
+@@ -281,6 +282,7 @@ class BOMInputStreamTest {
+ }
+ }
+
++ @Disabled
+ @Test
+ void testCloseHandleIOException() throws IOException {
+ ProxyInputStreamTest.testCloseHandleIOException(BOMInputStream.builder());
+@@ -663,6 +665,7 @@ class BOMInputStreamTest {
+ parseXml(createUtf16BeDataStream(data, true));
+ }
+
++ @Disabled
+ @Test
+ void testReadXmlWithBOMUcs4() throws Exception {
+ // UCS-4 is BE or LE?
diff --git a/dev-java/commons-io/files/commons-io-2.20.0-CharSequenceInputStreamTest.patch b/dev-java/commons-io/files/commons-io-2.20.0-CharSequenceInputStreamTest.patch
new file mode 100644
index 000000000000..0dd92bbe5554
--- /dev/null
+++ b/dev-java/commons-io/files/commons-io-2.20.0-CharSequenceInputStreamTest.patch
@@ -0,0 +1,196 @@
+x-UnicodeBig
+ tags: []
+ uniqueId: [engine:junit-jupiter]/[class:org.apache.commons.io.input.CharSequenceInputStreamTest]/[test-template:testBufferedRead_AvailableCharset(java.lang.String)]/[test-template-invocation:#271]
+ parent: [engine:junit-jupiter]/[class:org.apache.commons.io.input.CharSequenceInputStreamTest]/[test-template:testBufferedRead_AvailableCharset(java.lang.String)]
+ source: MethodSource [className = 'org.apache.commons.io.input.CharSequenceInputStreamTest', methodName = 'testBufferedRead_AvailableCharset', methodParameterTypes = 'java.lang.String']
+ caught: java.nio.BufferOverflowException
+ at java.base/java.nio.charset.CoderResult.throwException(CoderResult.java:278)
+ at java.base/java.lang.String.encodeWithEncoder(String.java:919)
+ at java.base/java.lang.String.encode(String.java:877)
+ at java.base/java.lang.String.getBytes(String.java:1843)
+ at org.apache.commons.io.input.CharSequenceInputStreamTest.testBufferedRead(CharSequenceInputStreamTest.java:147)
+ at org.apache.commons.io.input.CharSequenceInputStreamTest.testBufferedRead_AvailableCharset(CharSequenceInputStreamTest.java:183)
+ at java.base/java.lang.reflect.Method.invoke(Method.java:565)
+ at java.base/java.util.stream.ForEachOps$ForEachOp$OfRef.accept(ForEachOps.java:186)
+ at java.base/java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:214)
+ at java.base/java.util.stream.ReferencePipeline$2$1.accept(ReferencePipeline.java:197)
+ at java.base/java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:214)
+ at java.base/java.util.stream.ForEachOps$ForEachOp$OfRef.accept(ForEachOps.java:186)
+ at java.base/java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:214)
+ at java.base/java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:214)
+ at java.base/java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:214)
+ at java.base/java.util.stream.ForEachOps$ForEachOp$OfRef.accept(ForEachOps.java:186)
+ at java.base/java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:214)
+ at java.base/java.util.TreeMap$KeySpliterator.forEachRemaining(TreeMap.java:3107)
+ at java.base/java.util.stream.ReferencePipeline$Head.forEach(ReferencePipeline.java:803)
+ at java.base/java.util.stream.ReferencePipeline$7$1FlatMap.accept(ReferencePipeline.java:293)
+ at java.base/java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:214)
+ at java.base/java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:214)
+ at java.base/java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:214)
+ at java.base/java.util.Spliterators$ArraySpliterator.forEachRemaining(Spliterators.java:1024)
+ at java.base/java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:570)
+ at java.base/java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:560)
+ at java.base/java.util.stream.ForEachOps$ForEachOp.evaluateSequential(ForEachOps.java:153)
+ at java.base/java.util.stream.ForEachOps$ForEachOp$OfRef.evaluateSequential(ForEachOps.java:176)
+ at java.base/java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:265)
+ at java.base/java.util.stream.ReferencePipeline.forEach(ReferencePipeline.java:632)
+ at java.base/java.util.stream.ReferencePipeline$7$1FlatMap.accept(ReferencePipeline.java:293)
+ at java.base/java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:214)
+ at java.base/java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:214)
+ at java.base/java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:214)
+ at java.base/java.util.ArrayList$ArrayListSpliterator.forEachRemaining(ArrayList.java:1716)
+ at java.base/java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:570)
+ at java.base/java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:560)
+ at java.base/java.util.stream.ForEachOps$ForEachOp.evaluateSequential(ForEachOps.java:153)
+ at java.base/java.util.stream.ForEachOps$ForEachOp$OfRef.evaluateSequential(ForEachOps.java:176)
+ at java.base/java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:265)
+ at java.base/java.util.stream.ReferencePipeline.forEach(ReferencePipeline.java:632)
+ at java.base/java.util.stream.ReferencePipeline$7$1FlatMap.accept(ReferencePipeline.java:293)
+ at java.base/java.util.ArrayList$ArrayListSpliterator.forEachRemaining(ArrayList.java:1716)
+ at java.base/java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:570)
+ at java.base/java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:560)
+ at java.base/java.util.stream.ForEachOps$ForEachOp.evaluateSequential(ForEachOps.java:153)
+ at java.base/java.util.stream.ForEachOps$ForEachOp$OfRef.evaluateSequential(ForEachOps.java:176)
+ at java.base/java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:265)
+ at java.base/java.util.stream.ReferencePipeline.forEach(ReferencePipeline.java:632)
+ at java.base/java.util.ArrayList.forEach(ArrayList.java:1604)
+ at java.base/java.util.ArrayList.forEach(ArrayList.java:1604)
+ duration: 78 ms
+ status: ✘ FAILED
+x-UTF16_PlatformEndian
+ tags: []
+ uniqueId: [engine:junit-jupiter]/[class:org.apache.commons.io.input.CharSequenceInputStreamTest]/[test-template:testBufferedRead_AvailableCharset(java.lang.String)]/[test-template-invocation:#276]
+ parent: [engine:junit-jupiter]/[class:org.apache.commons.io.input.CharSequenceInputStreamTest]/[test-template:testBufferedRead_AvailableCharset(java.lang.String)]
+ source: MethodSource [className = 'org.apache.commons.io.input.CharSequenceInputStreamTest', methodName = 'testBufferedRead_AvailableCharset', methodParameterTypes = 'java.lang.String']
+ caught: java.nio.BufferOverflowException
+ at java.base/java.nio.charset.CoderResult.throwException(CoderResult.java:278)
+ at java.base/java.lang.String.encodeWithEncoder(String.java:919)
+ at java.base/java.lang.String.encode(String.java:877)
+ at java.base/java.lang.String.getBytes(String.java:1843)
+ at org.apache.commons.io.input.CharSequenceInputStreamTest.testBufferedRead(CharSequenceInputStreamTest.java:147)
+ at org.apache.commons.io.input.CharSequenceInputStreamTest.testBufferedRead_AvailableCharset(CharSequenceInputStreamTest.java:183)
+ at java.base/java.lang.reflect.Method.invoke(Method.java:565)
+ at java.base/java.util.stream.ForEachOps$ForEachOp$OfRef.accept(ForEachOps.java:186)
+ at java.base/java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:214)
+ at java.base/java.util.stream.ReferencePipeline$2$1.accept(ReferencePipeline.java:197)
+ at java.base/java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:214)
+ at java.base/java.util.stream.ForEachOps$ForEachOp$OfRef.accept(ForEachOps.java:186)
+ at java.base/java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:214)
+ at java.base/java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:214)
+ at java.base/java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:214)
+ at java.base/java.util.stream.ForEachOps$ForEachOp$OfRef.accept(ForEachOps.java:186)
+ at java.base/java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:214)
+ at java.base/java.util.TreeMap$KeySpliterator.forEachRemaining(TreeMap.java:3107)
+ at java.base/java.util.stream.ReferencePipeline$Head.forEach(ReferencePipeline.java:803)
+ at java.base/java.util.stream.ReferencePipeline$7$1FlatMap.accept(ReferencePipeline.java:293)
+ at java.base/java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:214)
+ at java.base/java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:214)
+ at java.base/java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:214)
+ at java.base/java.util.Spliterators$ArraySpliterator.forEachRemaining(Spliterators.java:1024)
+ at java.base/java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:570)
+ at java.base/java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:560)
+ at java.base/java.util.stream.ForEachOps$ForEachOp.evaluateSequential(ForEachOps.java:153)
+ at java.base/java.util.stream.ForEachOps$ForEachOp$OfRef.evaluateSequential(ForEachOps.java:176)
+ at java.base/java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:265)
+ at java.base/java.util.stream.ReferencePipeline.forEach(ReferencePipeline.java:632)
+ at java.base/java.util.stream.ReferencePipeline$7$1FlatMap.accept(ReferencePipeline.java:293)
+ at java.base/java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:214)
+ at java.base/java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:214)
+ at java.base/java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:214)
+ at java.base/java.util.ArrayList$ArrayListSpliterator.forEachRemaining(ArrayList.java:1716)
+ at java.base/java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:570)
+ at java.base/java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:560)
+ at java.base/java.util.stream.ForEachOps$ForEachOp.evaluateSequential(ForEachOps.java:153)
+ at java.base/java.util.stream.ForEachOps$ForEachOp$OfRef.evaluateSequential(ForEachOps.java:176)
+ at java.base/java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:265)
+ at java.base/java.util.stream.ReferencePipeline.forEach(ReferencePipeline.java:632)
+ at java.base/java.util.stream.ReferencePipeline$7$1FlatMap.accept(ReferencePipeline.java:293)
+ at java.base/java.util.ArrayList$ArrayListSpliterator.forEachRemaining(ArrayList.java:1716)
+ at java.base/java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:570)
+ at java.base/java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:560)
+ at java.base/java.util.stream.ForEachOps$ForEachOp.evaluateSequential(ForEachOps.java:153)
+ at java.base/java.util.stream.ForEachOps$ForEachOp$OfRef.evaluateSequential(ForEachOps.java:176)
+ at java.base/java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:265)
+ at java.base/java.util.stream.ReferencePipeline.forEach(ReferencePipeline.java:632)
+ at java.base/java.util.ArrayList.forEach(ArrayList.java:1604)
+ at java.base/java.util.ArrayList.forEach(ArrayList.java:1604)
+ duration: 1 ms
+ status: ✘ FAILED
+x-UTF32_PlatformEndian
+ tags: []
+ uniqueId: [engine:junit-jupiter]/[class:org.apache.commons.io.input.CharSequenceInputStreamTest]/[test-template:testBufferedRead_AvailableCharset(java.lang.String)]/[test-template-invocation:#278]
+ parent: [engine:junit-jupiter]/[class:org.apache.commons.io.input.CharSequenceInputStreamTest]/[test-template:testBufferedRead_AvailableCharset(java.lang.String)]
+ source: MethodSource [className = 'org.apache.commons.io.input.CharSequenceInputStreamTest', methodName = 'testBufferedRead_AvailableCharset', methodParameterTypes = 'java.lang.String']
+ caught: java.nio.BufferOverflowException
+ at java.base/java.nio.charset.CoderResult.throwException(CoderResult.java:278)
+ at java.base/java.lang.String.encodeWithEncoder(String.java:919)
+ at java.base/java.lang.String.encode(String.java:877)
+ at java.base/java.lang.String.getBytes(String.java:1843)
+ at org.apache.commons.io.input.CharSequenceInputStreamTest.testBufferedRead(CharSequenceInputStreamTest.java:147)
+ at org.apache.commons.io.input.CharSequenceInputStreamTest.testBufferedRead_AvailableCharset(CharSequenceInputStreamTest.java:183)
+ at java.base/java.lang.reflect.Method.invoke(Method.java:565)
+ at java.base/java.util.stream.ForEachOps$ForEachOp$OfRef.accept(ForEachOps.java:186)
+ at java.base/java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:214)
+ at java.base/java.util.stream.ReferencePipeline$2$1.accept(ReferencePipeline.java:197)
+ at java.base/java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:214)
+ at java.base/java.util.stream.ForEachOps$ForEachOp$OfRef.accept(ForEachOps.java:186)
+ at java.base/java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:214)
+ at java.base/java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:214)
+ at java.base/java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:214)
+ at java.base/java.util.stream.ForEachOps$ForEachOp$OfRef.accept(ForEachOps.java:186)
+ at java.base/java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:214)
+ at java.base/java.util.TreeMap$KeySpliterator.forEachRemaining(TreeMap.java:3107)
+ at java.base/java.util.stream.ReferencePipeline$Head.forEach(ReferencePipeline.java:803)
+ at java.base/java.util.stream.ReferencePipeline$7$1FlatMap.accept(ReferencePipeline.java:293)
+ at java.base/java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:214)
+ at java.base/java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:214)
+ at java.base/java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:214)
+ at java.base/java.util.Spliterators$ArraySpliterator.forEachRemaining(Spliterators.java:1024)
+ at java.base/java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:570)
+ at java.base/java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:560)
+ at java.base/java.util.stream.ForEachOps$ForEachOp.evaluateSequential(ForEachOps.java:153)
+ at java.base/java.util.stream.ForEachOps$ForEachOp$OfRef.evaluateSequential(ForEachOps.java:176)
+ at java.base/java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:265)
+ at java.base/java.util.stream.ReferencePipeline.forEach(ReferencePipeline.java:632)
+ at java.base/java.util.stream.ReferencePipeline$7$1FlatMap.accept(ReferencePipeline.java:293)
+ at java.base/java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:214)
+ at java.base/java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:214)
+ at java.base/java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:214)
+ at java.base/java.util.ArrayList$ArrayListSpliterator.forEachRemaining(ArrayList.java:1716)
+ at java.base/java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:570)
+ at java.base/java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:560)
+ at java.base/java.util.stream.ForEachOps$ForEachOp.evaluateSequential(ForEachOps.java:153)
+ at java.base/java.util.stream.ForEachOps$ForEachOp$OfRef.evaluateSequential(ForEachOps.java:176)
+ at java.base/java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:265)
+ at java.base/java.util.stream.ReferencePipeline.forEach(ReferencePipeline.java:632)
+ at java.base/java.util.stream.ReferencePipeline$7$1FlatMap.accept(ReferencePipeline.java:293)
+ at java.base/java.util.ArrayList$ArrayListSpliterator.forEachRemaining(ArrayList.java:1716)
+ at java.base/java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:570)
+ at java.base/java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:560)
+ at java.base/java.util.stream.ForEachOps$ForEachOp.evaluateSequential(ForEachOps.java:153)
+ at java.base/java.util.stream.ForEachOps$ForEachOp$OfRef.evaluateSequential(ForEachOps.java:176)
+ at java.base/java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:265)
+ at java.base/java.util.stream.ReferencePipeline.forEach(ReferencePipeline.java:632)
+ at java.base/java.util.ArrayList.forEach(ArrayList.java:1604)
+ at java.base/java.util.ArrayList.forEach(ArrayList.java:1604)
+ duration: 75 ms
+ status: ✘ FAILED
+
+--- a/src/test/java/org/apache/commons/io/input/CharSequenceInputStreamTest.java
++++ b/src/test/java/org/apache/commons/io/input/CharSequenceInputStreamTest.java
+@@ -40,6 +40,7 @@ import java.util.Random;
+ import org.apache.commons.io.CharsetsTest;
+ import org.apache.commons.io.IOUtils;
+ import org.apache.commons.lang3.StringUtils;
++import org.junit.jupiter.api.Disabled;
+ import org.junit.jupiter.api.Test;
+ import org.junit.jupiter.params.ParameterizedTest;
+ import org.junit.jupiter.params.provider.MethodSource;
+@@ -175,6 +176,7 @@ class CharSequenceInputStreamTest {
+ // at sun.nio.cs.ext.COMPOUND_TEXT_Encoder.encodeLoop(COMPOUND_TEXT_Encoder.java:75)
+ // at java.nio.charset.CharsetEncoder.encode(CharsetEncoder.java:544)
+ // at org.apache.commons.io.input.CharSequenceInputStream.fillBuffer(CharSequenceInputStream.java:111)
++ @Disabled
+ @ParameterizedTest(name = "{0}")
+ @MethodSource(CharsetsTest.AVAIL_CHARSETS)
+ void testBufferedRead_AvailableCharset(final String csName) throws IOException {
diff --git a/dev-java/commons-io/files/commons-io-2.20.0-ThrottledInputStreamTest.patch b/dev-java/commons-io/files/commons-io-2.20.0-ThrottledInputStreamTest.patch
new file mode 100644
index 000000000000..fa264eb89875
--- /dev/null
+++ b/dev-java/commons-io/files/commons-io-2.20.0-ThrottledInputStreamTest.patch
@@ -0,0 +1,36 @@
+testCloseHandleIOException()
+ tags: []
+ uniqueId: [engine:junit-jupiter]/[class:org.apache.commons.io.input.ThrottledInputStreamTest]/[method:testCloseHandleIOException()]
+ parent: [engine:junit-jupiter]/[class:org.apache.commons.io.input.ThrottledInputStreamTest]
+ source: MethodSource [className = 'org.apache.commons.io.input.ThrottledInputStreamTest', methodName = 'testCloseHandleIOException', methodParameterTypes = '']
+ caught: org.mockito.exceptions.base.MockitoException:
+ Cannot mock/spy class org.apache.commons.io.input.ThrottledInputStream
+ Mockito cannot mock/spy because :
+ - final class
+ at org.apache.commons.io.input.ProxyInputStreamTest.testCloseHandleIOException(ProxyInputStreamTest.java:86)
+ at org.apache.commons.io.input.ProxyInputStreamTest.testCloseHandleIOException(ProxyInputStreamTest.java:80)
+ at org.apache.commons.io.input.ThrottledInputStreamTest.testCloseHandleIOException(ThrottledInputStreamTest.java:175)
+ at java.base/java.lang.reflect.Method.invoke(Method.java:565)
+ at java.base/java.util.ArrayList.forEach(ArrayList.java:1604)
+ at java.base/java.util.ArrayList.forEach(ArrayList.java:1604)
+ duration: 2 ms
+ status: ✘ FAILED
+
+--- a/src/test/java/org/apache/commons/io/input/ThrottledInputStreamTest.java
++++ b/src/test/java/org/apache/commons/io/input/ThrottledInputStreamTest.java
+@@ -31,6 +31,7 @@ import java.util.concurrent.atomic.AtomicBoolean;
+ import org.apache.commons.io.IOUtils;
+ import org.apache.commons.io.input.ThrottledInputStream.Builder;
+ import org.apache.commons.io.test.CustomIOException;
++import org.junit.jupiter.api.Disabled;
+ import org.junit.jupiter.api.Test;
+
+ /**
+@@ -170,6 +171,7 @@ class ThrottledInputStreamTest extends ProxyInputStreamTest<ThrottledInputStream
+ assertEquals(0, ThrottledInputStream.toSleepMillis(1, 1_000, 1.0));
+ }
+
++ @Disabled
+ @Test
+ void testCloseHandleIOException() throws IOException {
+ ProxyInputStreamTest.testCloseHandleIOException(ThrottledInputStream.builder());
diff --git a/dev-java/commons-io/files/commons-io-2.20.0-URIOriginalTest.patch b/dev-java/commons-io/files/commons-io-2.20.0-URIOriginalTest.patch
new file mode 100644
index 000000000000..1237d7af1454
--- /dev/null
+++ b/dev-java/commons-io/files/commons-io-2.20.0-URIOriginalTest.patch
@@ -0,0 +1,153 @@
+[1] http://example.com dynamically registered
+[1] http://example.com
+ tags: []
+ uniqueId: [engine:junit-jupiter]/[class:org.apache.commons.io.build.URIOriginTest]/[test-template:testGetInputStream(java.lang.String)]/[test-template-invocation:#1]
+ parent: [engine:junit-jupiter]/[class:org.apache.commons.io.build.URIOriginTest]/[test-template:testGetInputStream(java.lang.String)]
+ source: MethodSource [className = 'org.apache.commons.io.build.URIOriginTest', methodName = 'testGetInputStream', methodParameterTypes = 'java.lang.String']
+ caught: java.net.UnknownHostException: example.com
+ at java.base/sun.nio.ch.NioSocketImpl.connect(NioSocketImpl.java:567)
+ at java.base/java.net.Socket.connect(Socket.java:751)
+ at java.base/java.net.Socket.connect(Socket.java:686)
+ at java.base/sun.net.NetworkClient.doConnect(NetworkClient.java:183)
+ at java.base/sun.net.www.http.HttpClient.openServer(HttpClient.java:531)
+ at java.base/sun.net.www.http.HttpClient.openServer(HttpClient.java:636)
+ at java.base/sun.net.www.http.HttpClient.<init>(HttpClient.java:282)
+ at java.base/sun.net.www.http.HttpClient.New(HttpClient.java:386)
+ at java.base/sun.net.www.http.HttpClient.New(HttpClient.java:408)
+ at java.base/sun.net.www.protocol.http.HttpURLConnection.getNewHttpClient(HttpURLConnection.java:1320)
+ at java.base/sun.net.www.protocol.http.HttpURLConnection.plainConnect0(HttpURLConnection.java:1253)
+ at java.base/sun.net.www.protocol.http.HttpURLConnection.plainConnect(HttpURLConnection.java:1139)
+ at java.base/sun.net.www.protocol.http.HttpURLConnection.connect(HttpURLConnection.java:1068)
+ at java.base/sun.net.www.protocol.http.HttpURLConnection.getInputStream0(HttpURLConnection.java:1691)
+ at java.base/sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1615)
+ at java.base/java.net.URL.openStream(URL.java:1325)
+ at org.apache.commons.io.build.AbstractOrigin$URIOrigin.getInputStream(AbstractOrigin.java:547)
+ at org.apache.commons.io.build.URIOriginTest.testGetInputStream(URIOriginTest.java:56)
+ at java.base/java.lang.reflect.Method.invoke(Method.java:580)
+ at java.base/java.util.stream.ForEachOps$ForEachOp$OfRef.accept(ForEachOps.java:184)
+ at java.base/java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:197)
+ at java.base/java.util.stream.ReferencePipeline$2$1.accept(ReferencePipeline.java:179)
+ at java.base/java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:197)
+ at java.base/java.util.stream.ForEachOps$ForEachOp$OfRef.accept(ForEachOps.java:184)
+ at java.base/java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:197)
+ at java.base/java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:197)
+ at java.base/java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:197)
+ at java.base/java.util.stream.ForEachOps$ForEachOp$OfRef.accept(ForEachOps.java:184)
+ at java.base/java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:197)
+ at java.base/java.util.Spliterators$ArraySpliterator.forEachRemaining(Spliterators.java:1024)
+ at java.base/java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:509)
+ at java.base/java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:499)
+ at java.base/java.util.stream.ForEachOps$ForEachOp.evaluateSequential(ForEachOps.java:151)
+ at java.base/java.util.stream.ForEachOps$ForEachOp$OfRef.evaluateSequential(ForEachOps.java:174)
+ at java.base/java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234)
+ at java.base/java.util.stream.ReferencePipeline.forEach(ReferencePipeline.java:596)
+ at java.base/java.util.stream.ReferencePipeline$7$1.accept(ReferencePipeline.java:276)
+ at java.base/java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:197)
+ at java.base/java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:197)
+ at java.base/java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:197)
+ at java.base/java.util.ArrayList$ArrayListSpliterator.forEachRemaining(ArrayList.java:1708)
+ at java.base/java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:509)
+ at java.base/java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:499)
+ at java.base/java.util.stream.ForEachOps$ForEachOp.evaluateSequential(ForEachOps.java:151)
+ at java.base/java.util.stream.ForEachOps$ForEachOp$OfRef.evaluateSequential(ForEachOps.java:174)
+ at java.base/java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234)
+ at java.base/java.util.stream.ReferencePipeline.forEach(ReferencePipeline.java:596)
+ at java.base/java.util.stream.ReferencePipeline$7$1.accept(ReferencePipeline.java:276)
+ at java.base/java.util.ArrayList$ArrayListSpliterator.forEachRemaining(ArrayList.java:1708)
+ at java.base/java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:509)
+ at java.base/java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:499)
+ at java.base/java.util.stream.ForEachOps$ForEachOp.evaluateSequential(ForEachOps.java:151)
+ at java.base/java.util.stream.ForEachOps$ForEachOp$OfRef.evaluateSequential(ForEachOps.java:174)
+ at java.base/java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234)
+ at java.base/java.util.stream.ReferencePipeline.forEach(ReferencePipeline.java:596)
+ at java.base/java.util.ArrayList.forEach(ArrayList.java:1596)
+ at java.base/java.util.ArrayList.forEach(ArrayList.java:1596)
+ duration: 80 ms
+ status: ✘ FAILED
+[2] https://example.com dynamically registered
+[2] https://example.com
+ tags: []
+ uniqueId: [engine:junit-jupiter]/[class:org.apache.commons.io.build.URIOriginTest]/[test-template:testGetInputStream(java.lang.String)]/[test-template-invocation:#2]
+ parent: [engine:junit-jupiter]/[class:org.apache.commons.io.build.URIOriginTest]/[test-template:testGetInputStream(java.lang.String)]
+ source: MethodSource [className = 'org.apache.commons.io.build.URIOriginTest', methodName = 'testGetInputStream', methodParameterTypes = 'java.lang.String']
+ caught: java.net.UnknownHostException: example.com
+ at java.base/sun.nio.ch.NioSocketImpl.connect(NioSocketImpl.java:567)
+ at java.base/java.net.SocksSocketImpl.connect(SocksSocketImpl.java:327)
+ at java.base/java.net.Socket.connect(Socket.java:751)
+ at java.base/sun.security.ssl.SSLSocketImpl.connect(SSLSocketImpl.java:304)
+ at java.base/sun.security.ssl.BaseSSLSocketImpl.connect(BaseSSLSocketImpl.java:181)
+ at java.base/sun.net.NetworkClient.doConnect(NetworkClient.java:183)
+ at java.base/sun.net.www.http.HttpClient.openServer(HttpClient.java:531)
+ at java.base/sun.net.www.http.HttpClient.openServer(HttpClient.java:636)
+ at java.base/sun.net.www.protocol.https.HttpsClient.<init>(HttpsClient.java:264)
+ at java.base/sun.net.www.protocol.https.HttpsClient.New(HttpsClient.java:377)
+ at java.base/sun.net.www.protocol.https.AbstractDelegateHttpsURLConnection.getNewHttpClient(AbstractDelegateHttpsURLConnection.java:193)
+ at java.base/sun.net.www.protocol.http.HttpURLConnection.plainConnect0(HttpURLConnection.java:1253)
+ at java.base/sun.net.www.protocol.http.HttpURLConnection.plainConnect(HttpURLConnection.java:1139)
+ at java.base/sun.net.www.protocol.https.AbstractDelegateHttpsURLConnection.connect(AbstractDelegateHttpsURLConnection.java:179)
+ at java.base/sun.net.www.protocol.http.HttpURLConnection.getInputStream0(HttpURLConnection.java:1691)
+ at java.base/sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1615)
+ at java.base/sun.net.www.protocol.https.HttpsURLConnectionImpl.getInputStream(HttpsURLConnectionImpl.java:223)
+ at java.base/java.net.URL.openStream(URL.java:1325)
+ at org.apache.commons.io.build.AbstractOrigin$URIOrigin.getInputStream(AbstractOrigin.java:547)
+ at org.apache.commons.io.build.URIOriginTest.testGetInputStream(URIOriginTest.java:56)
+ at java.base/java.lang.reflect.Method.invoke(Method.java:580)
+ at java.base/java.util.stream.ForEachOps$ForEachOp$OfRef.accept(ForEachOps.java:184)
+ at java.base/java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:197)
+ at java.base/java.util.stream.ReferencePipeline$2$1.accept(ReferencePipeline.java:179)
+ at java.base/java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:197)
+ at java.base/java.util.stream.ForEachOps$ForEachOp$OfRef.accept(ForEachOps.java:184)
+ at java.base/java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:197)
+ at java.base/java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:197)
+ at java.base/java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:197)
+ at java.base/java.util.stream.ForEachOps$ForEachOp$OfRef.accept(ForEachOps.java:184)
+ at java.base/java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:197)
+ at java.base/java.util.Spliterators$ArraySpliterator.forEachRemaining(Spliterators.java:1024)
+ at java.base/java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:509)
+ at java.base/java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:499)
+ at java.base/java.util.stream.ForEachOps$ForEachOp.evaluateSequential(ForEachOps.java:151)
+ at java.base/java.util.stream.ForEachOps$ForEachOp$OfRef.evaluateSequential(ForEachOps.java:174)
+ at java.base/java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234)
+ at java.base/java.util.stream.ReferencePipeline.forEach(ReferencePipeline.java:596)
+ at java.base/java.util.stream.ReferencePipeline$7$1.accept(ReferencePipeline.java:276)
+ at java.base/java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:197)
+ at java.base/java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:197)
+ at java.base/java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:197)
+ at java.base/java.util.ArrayList$ArrayListSpliterator.forEachRemaining(ArrayList.java:1708)
+ at java.base/java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:509)
+ at java.base/java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:499)
+ at java.base/java.util.stream.ForEachOps$ForEachOp.evaluateSequential(ForEachOps.java:151)
+ at java.base/java.util.stream.ForEachOps$ForEachOp$OfRef.evaluateSequential(ForEachOps.java:174)
+ at java.base/java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234)
+ at java.base/java.util.stream.ReferencePipeline.forEach(ReferencePipeline.java:596)
+ at java.base/java.util.stream.ReferencePipeline$7$1.accept(ReferencePipeline.java:276)
+ at java.base/java.util.ArrayList$ArrayListSpliterator.forEachRemaining(ArrayList.java:1708)
+ at java.base/java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:509)
+ at java.base/java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:499)
+ at java.base/java.util.stream.ForEachOps$ForEachOp.evaluateSequential(ForEachOps.java:151)
+ at java.base/java.util.stream.ForEachOps$ForEachOp$OfRef.evaluateSequential(ForEachOps.java:174)
+ at java.base/java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234)
+ at java.base/java.util.stream.ReferencePipeline.forEach(ReferencePipeline.java:596)
+ at java.base/java.util.ArrayList.forEach(ArrayList.java:1596)
+ at java.base/java.util.ArrayList.forEach(ArrayList.java:1596)
+ duration: 114 ms
+ status: ✘ FAILED
+
+--- a/src/test/java/org/apache/commons/io/build/URIOriginTest.java
++++ b/src/test/java/org/apache/commons/io/build/URIOriginTest.java
+@@ -23,6 +23,7 @@ import java.net.URI;
+ import java.nio.file.Paths;
+
+ import org.apache.commons.io.build.AbstractOrigin.URIOrigin;
++import org.junit.jupiter.api.Disabled;
+ import org.junit.jupiter.api.Test;
+ import org.junit.jupiter.params.ParameterizedTest;
+ import org.junit.jupiter.params.provider.ValueSource;
+@@ -46,6 +47,7 @@ class URIOriginTest extends AbstractOriginTest<URI, URIOrigin> {
+ return new URIOrigin(Paths.get(FILE_NAME_RW).toUri());
+ }
+
++ @Disabled
+ @ParameterizedTest
+ @ValueSource(strings = {
+ "http://example.com",
diff --git a/dev-java/commons-io/files/commons-io-2.20.0-XmlStreamReaderTest.patch b/dev-java/commons-io/files/commons-io-2.20.0-XmlStreamReaderTest.patch
new file mode 100644
index 000000000000..5871b0819a81
--- /dev/null
+++ b/dev-java/commons-io/files/commons-io-2.20.0-XmlStreamReaderTest.patch
@@ -0,0 +1,112 @@
+testConstructorURLConnectionInput()
+ tags: []
+ uniqueId: [engine:junit-jupiter]/[class:org.apache.commons.io.input.XmlStreamReaderTest]/[method:testConstructorURLConnectionInput()]
+ parent: [engine:junit-jupiter]/[class:org.apache.commons.io.input.XmlStreamReaderTest]
+ source: MethodSource [className = 'org.apache.commons.io.input.XmlStreamReaderTest', methodName = 'testConstructorURLConnectionInput', methodParameterTypes = '']
+ caught: java.net.UnknownHostException: www.apache.org
+ at java.base/jdk.internal.reflect.DirectConstructorHandleAccessor.newInstance(DirectConstructorHandleAccessor.java:62)
+ at java.base/java.lang.reflect.Constructor.newInstanceWithCaller(Constructor.java:499)
+ at java.base/java.lang.reflect.Constructor.newInstance(Constructor.java:483)
+ at java.base/sun.net.www.protocol.http.HttpURLConnection.getChainedException(HttpURLConnection.java:1751)
+ at java.base/sun.net.www.protocol.http.HttpURLConnection.getInputStream0(HttpURLConnection.java:1321)
+ at java.base/sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1302)
+ at java.base/sun.net.www.protocol.https.HttpsURLConnectionImpl.getInputStream(HttpsURLConnectionImpl.java:223)
+ at org.apache.commons.io.input.XmlStreamReader.<init>(XmlStreamReader.java:674)
+ at org.apache.commons.io.input.XmlStreamReaderTest.testConstructorURLConnectionInput(XmlStreamReaderTest.java:285)
+ at java.base/java.lang.reflect.Method.invoke(Method.java:565)
+ at java.base/java.util.ArrayList.forEach(ArrayList.java:1604)
+ at java.base/java.util.ArrayList.forEach(ArrayList.java:1604)
+ Caused by: java.net.UnknownHostException: www.apache.org
+ at java.base/sun.nio.ch.NioSocketImpl.connect(NioSocketImpl.java:569)
+ at java.base/java.net.SocksSocketImpl.connect(SocksSocketImpl.java:284)
+ at java.base/java.net.Socket.connect(Socket.java:659)
+ at java.base/sun.security.ssl.SSLSocketImpl.connect(SSLSocketImpl.java:304)
+ at java.base/sun.security.ssl.BaseSSLSocketImpl.connect(BaseSSLSocketImpl.java:181)
+ at java.base/sun.net.NetworkClient.doConnect(NetworkClient.java:166)
+ at java.base/sun.net.www.http.HttpClient.openServer(HttpClient.java:516)
+ at java.base/sun.net.www.http.HttpClient.openServer(HttpClient.java:604)
+ at java.base/sun.net.www.protocol.https.HttpsClient.<init>(HttpsClient.java:206)
+ at java.base/sun.net.www.protocol.https.HttpsClient.New(HttpsClient.java:288)
+ at java.base/sun.net.www.protocol.https.AbstractDelegateHttpsURLConnection.getNewHttpClient(AbstractDelegateHttpsURLConnection.java:193)
+ at java.base/sun.net.www.protocol.http.HttpURLConnection.plainConnect0(HttpURLConnection.java:963)
+ at java.base/sun.net.www.protocol.http.HttpURLConnection.plainConnect(HttpURLConnection.java:899)
+ at java.base/sun.net.www.protocol.https.AbstractDelegateHttpsURLConnection.connect(AbstractDelegateHttpsURLConnection.java:179)
+ at java.base/sun.net.www.protocol.http.HttpURLConnection.getInputStream0(HttpURLConnection.java:1377)
+ at java.base/sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1302)
+ at java.base/sun.net.www.protocol.http.HttpURLConnection.getHeaderField(HttpURLConnection.java:2866)
+ at java.base/java.net.URLConnection.getContentType(URLConnection.java:508)
+ at java.base/sun.net.www.protocol.https.HttpsURLConnectionImpl.getContentType(HttpsURLConnectionImpl.java:378)
+ at org.apache.commons.io.input.XmlStreamReader.<init>(XmlStreamReader.java:673)
+ ... 4 more
+ duration: 125 ms
+ status: ✘ FAILED
+testConstructorURLInput()
+ tags: []
+ uniqueId: [engine:junit-jupiter]/[class:org.apache.commons.io.input.XmlStreamReaderTest]/[method:testConstructorURLInput()]
+ parent: [engine:junit-jupiter]/[class:org.apache.commons.io.input.XmlStreamReaderTest]
+ source: MethodSource [className = 'org.apache.commons.io.input.XmlStreamReaderTest', methodName = 'testConstructorURLInput', methodParameterTypes = '']
+ caught: java.net.UnknownHostException: www.apache.org
+ at java.base/jdk.internal.reflect.DirectConstructorHandleAccessor.newInstance(DirectConstructorHandleAccessor.java:62)
+ at java.base/java.lang.reflect.Constructor.newInstanceWithCaller(Constructor.java:499)
+ at java.base/java.lang.reflect.Constructor.newInstance(Constructor.java:483)
+ at java.base/sun.net.www.protocol.http.HttpURLConnection.getChainedException(HttpURLConnection.java:1751)
+ at java.base/sun.net.www.protocol.http.HttpURLConnection.getInputStream0(HttpURLConnection.java:1321)
+ at java.base/sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1302)
+ at java.base/sun.net.www.protocol.https.HttpsURLConnectionImpl.getInputStream(HttpsURLConnectionImpl.java:223)
+ at org.apache.commons.io.input.XmlStreamReader.<init>(XmlStreamReader.java:674)
+ at org.apache.commons.io.input.XmlStreamReader.<init>(XmlStreamReader.java:648)
+ at org.apache.commons.io.input.XmlStreamReaderTest.testConstructorURLInput(XmlStreamReaderTest.java:297)
+ at java.base/java.lang.reflect.Method.invoke(Method.java:565)
+ at java.base/java.util.ArrayList.forEach(ArrayList.java:1604)
+ at java.base/java.util.ArrayList.forEach(ArrayList.java:1604)
+ Caused by: java.net.UnknownHostException: www.apache.org
+ at java.base/sun.nio.ch.NioSocketImpl.connect(NioSocketImpl.java:569)
+ at java.base/java.net.SocksSocketImpl.connect(SocksSocketImpl.java:284)
+ at java.base/java.net.Socket.connect(Socket.java:659)
+ at java.base/sun.security.ssl.SSLSocketImpl.connect(SSLSocketImpl.java:304)
+ at java.base/sun.security.ssl.BaseSSLSocketImpl.connect(BaseSSLSocketImpl.java:181)
+ at java.base/sun.net.NetworkClient.doConnect(NetworkClient.java:166)
+ at java.base/sun.net.www.http.HttpClient.openServer(HttpClient.java:516)
+ at java.base/sun.net.www.http.HttpClient.openServer(HttpClient.java:604)
+ at java.base/sun.net.www.protocol.https.HttpsClient.<init>(HttpsClient.java:206)
+ at java.base/sun.net.www.protocol.https.HttpsClient.New(HttpsClient.java:288)
+ at java.base/sun.net.www.protocol.https.AbstractDelegateHttpsURLConnection.getNewHttpClient(AbstractDelegateHttpsURLConnection.java:193)
+ at java.base/sun.net.www.protocol.http.HttpURLConnection.plainConnect0(HttpURLConnection.java:963)
+ at java.base/sun.net.www.protocol.http.HttpURLConnection.plainConnect(HttpURLConnection.java:899)
+ at java.base/sun.net.www.protocol.https.AbstractDelegateHttpsURLConnection.connect(AbstractDelegateHttpsURLConnection.java:179)
+ at java.base/sun.net.www.protocol.http.HttpURLConnection.getInputStream0(HttpURLConnection.java:1377)
+ at java.base/sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1302)
+ at java.base/sun.net.www.protocol.http.HttpURLConnection.getHeaderField(HttpURLConnection.java:2866)
+ at java.base/java.net.URLConnection.getContentType(URLConnection.java:508)
+ at java.base/sun.net.www.protocol.https.HttpsURLConnectionImpl.getContentType(HttpsURLConnectionImpl.java:378)
+ at org.apache.commons.io.input.XmlStreamReader.<init>(XmlStreamReader.java:673)
+ ... 5 more
+ duration: 5 ms
+ status: ✘ FAILED
+
+--- a/src/test/java/org/apache/commons/io/input/XmlStreamReaderTest.java
++++ b/src/test/java/org/apache/commons/io/input/XmlStreamReaderTest.java
+@@ -44,6 +44,7 @@ import java.util.Map;
+ import org.apache.commons.io.CharsetsTest;
+ import org.apache.commons.io.IOUtils;
+ import org.apache.commons.io.function.IOFunction;
++import org.junit.jupiter.api.Disabled;
+ import org.junit.jupiter.api.Test;
+ import org.junit.jupiter.params.ParameterizedTest;
+ import org.junit.jupiter.params.provider.MethodSource;
+@@ -280,6 +281,7 @@ class XmlStreamReaderTest {
+ assertThrows(NullPointerException.class, () -> new XmlStreamReader((Path) null));
+ }
+
++ @Disabled
+ @Test
+ protected void testConstructorURLConnectionInput() throws IOException {
+ try (XmlStreamReader reader = new XmlStreamReader(new URL("https://www.apache.org/").openConnection(), UTF_8)) {
+@@ -292,6 +294,7 @@ class XmlStreamReaderTest {
+ assertThrows(NullPointerException.class, () -> new XmlStreamReader((URLConnection) null, US_ASCII));
+ }
+
++ @Disabled
+ @Test
+ protected void testConstructorURLInput() throws IOException {
+ try (XmlStreamReader reader = new XmlStreamReader(new URL("https://www.apache.org/"))) {
diff --git a/dev-java/commons-lang/Manifest b/dev-java/commons-lang/Manifest
index b32732aa2fad..61ebeb9697a3 100644
--- a/dev-java/commons-lang/Manifest
+++ b/dev-java/commons-lang/Manifest
@@ -1,2 +1,4 @@
DIST commons-lang-3.17.0-src.tar.gz 1195408 BLAKE2B 1f612b8e5ef3ecc820ae040090633fd1a145298f0abdcc404e344adf9fb8c3632d144d1ee1cea4009ec32932b5b49a767abf77c45ff110129b98bdb0a7ba4557 SHA512 e633b0caeb9556c68384c2bf20e374fbac910b9979b25774c632e50c1bec41e97c14362978dc092c8b5859291e54fe51e76ad7a61c9b2efbe1e4538f46c1e3ee
DIST commons-lang-3.17.0-src.tar.gz.asc 488 BLAKE2B ad6bbd5658a4fcdd56f830d55abef4a387fc8f42f4e3cc19d4700033acef8b02e30df4d6774014ae2b0a4f6811bdcc97a5c1a0c154705aa37724325850218beb SHA512 34f48ab6080c5730821bbf32f3715672c9f916d69985940f1dd17f9ab2c2ec04d1907426ee1dac1bd3654f7f50c65730042ebbffde1c12aa758f9a1e5634fcd0
+DIST commons-lang-3.19.0-src.tar.gz 1325280 BLAKE2B f7f27404a35284e156950832b5d1d6a95782ab734c5292110c4953de201899bd0cec629f0830ada5d8ffcd301f702371076bb041ca6f4950cc87b290032032a2 SHA512 75f7626925af2605a936e696c9947bae90b5b0d05830cbb7c97db2051d3e4e71f8e2563a0ff29c1780863fce188334398faf5413052c1df0fd8dae07fb09233a
+DIST commons-lang-3.19.0-src.tar.gz.asc 488 BLAKE2B aade88ca133cecedbab0cfaa5de226dac2fa6bf39f2fff80ce806dd527b839b38d3fe3eeddfe0c1561dc7cfcab3fb83fe0c1a553c34ef70ae73fe1dd944126d2 SHA512 4e71fa045e104116dd64aedbb0b3e1e9720ddfb1d6b49e850119a76895de7b92a1f12c23d16be01c9beeee3152448628770f405f0e2f62d0f9adda668ccfb209
diff --git a/dev-java/commons-lang/commons-lang-3.19.0.ebuild b/dev-java/commons-lang/commons-lang-3.19.0.ebuild
new file mode 100644
index 000000000000..94e6733bf60a
--- /dev/null
+++ b/dev-java/commons-lang/commons-lang-3.19.0.ebuild
@@ -0,0 +1,65 @@
+# Copyright 1999-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+JAVA_PKG_IUSE="doc source test"
+JAVA_TESTING_FRAMEWORKS="junit-jupiter"
+MAVEN_ID="org.apache.commons:commons-lang3:${PV}"
+
+inherit java-pkg-2 java-pkg-simple junit5 verify-sig
+
+DESCRIPTION="Commons components to manipulate core java classes"
+HOMEPAGE="https://commons.apache.org/proper/commons-lang/"
+SRC_URI="mirror://apache/commons/lang/source/${PN}3-${PV}-src.tar.gz -> ${P}-src.tar.gz
+ verify-sig? ( https://downloads.apache.org/commons/lang/source/${PN}3-${PV}-src.tar.gz.asc -> ${P}-src.tar.gz.asc )"
+S="${WORKDIR}/${PN}3-${PV}-src"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~amd64 ~amd64-linux ~x86-linux ~ppc-macos ~x64-solaris"
+
+BDEPEND="verify-sig? ( sec-keys/openpgp-keys-ggregory )"
+
+# [-vintage] because, if junit:5 compiled with 'USE=vintage':
+# Error: Module junit not found, required by org.junit.vintage.engine
+DEPEND="
+ >=virtual/jdk-11:*
+ test? (
+ >=dev-java/asm-9.8-r1:0
+ >=dev-java/commons-text-1.14.0:0
+ >=dev-java/easymock-5.6.0:0
+ dev-java/jmh-core:0
+ dev-java/junit:5[-vintage]
+ dev-java/junit-pioneer:0
+ dev-java/jsr305:0
+ dev-java/opentest4j:0
+ )
+"
+
+RDEPEND=">=virtual/jre-1.8:*"
+
+PATCHES=( "${FILESDIR}/commons-lang-3.19.0-skip-testGetJavaAwtHeadless.patch" )
+
+JAVA_AUTOMATIC_MODULE_NAME="org.apache.commons.lang3"
+JAVA_GENTOO_CLASSPATH_EXTRA="org.apache.commons.lang3.jar"
+JAVA_INTERMEDIATE_JAR_NAME="org.apache.${PN/-/.}3"
+JAVA_MODULE_INFO_OUT="src/main"
+JAVA_SRC_DIR="src/main/java"
+JAVA_TEST_GENTOO_CLASSPATH="asm commons-text easymock jmh-core junit-pioneer junit-5 jsr305 opentest4j"
+JAVA_TEST_RESOURCE_DIRS="src/test/resources"
+JAVA_TEST_SRC_DIR="src/test/java"
+VERIFY_SIG_OPENPGP_KEY_PATH="/usr/share/openpgp-keys/ggregory.asc"
+
+src_prepare() {
+ default #780585
+ java-pkg-2_src_prepare
+}
+
+src_test() {
+ local vm_version="$(java-config -g PROVIDES_VERSION)"
+ if ver_test "${vm_version}" -ge 17; then
+ JAVA_TEST_EXTRA_ARGS+=( --add-opens=java.base/java.{lang,util,time,time.chrono}=ALL-UNNAMED )
+ fi
+ LC_ALL="en_US.UTF-8" junit5_src_test
+}
diff --git a/dev-java/commons-lang/files/commons-lang-3.19.0-skip-testGetJavaAwtHeadless.patch b/dev-java/commons-lang/files/commons-lang-3.19.0-skip-testGetJavaAwtHeadless.patch
new file mode 100644
index 000000000000..0f5a711e88e8
--- /dev/null
+++ b/dev-java/commons-lang/files/commons-lang-3.19.0-skip-testGetJavaAwtHeadless.patch
@@ -0,0 +1,37 @@
+testGetJavaAwtHeadless()
+ tags: []
+ uniqueId: [engine:junit-jupiter]/[class:org.apache.commons.lang3.SystemPropertiesTest]/[method:testGetJavaAwtHeadless()]
+ parent: [engine:junit-jupiter]/[class:org.apache.commons.lang3.SystemPropertiesTest]
+ source: MethodSource [className = 'org.apache.commons.lang3.SystemPropertiesTest', methodName = 'testGetJavaAwtHeadless', methodParameterTypes = '']
+ caught: org.opentest4j.AssertionFailedError: expected: <null> but was: <true>
+ at org.junit.jupiter.api.AssertionFailureBuilder.build(AssertionFailureBuilder.java:151)
+ at org.junit.jupiter.api.AssertionFailureBuilder.buildAndThrow(AssertionFailureBuilder.java:132)
+ at org.junit.jupiter.api.AssertNull.failNotNull(AssertNull.java:50)
+ at org.junit.jupiter.api.AssertNull.assertNull(AssertNull.java:35)
+ at org.junit.jupiter.api.AssertNull.assertNull(AssertNull.java:30)
+ at org.junit.jupiter.api.Assertions.assertNull(Assertions.java:279)
+ at org.apache.commons.lang3.SystemPropertiesTest.testGetJavaAwtHeadless(SystemPropertiesTest.java:512)
+ at java.base/java.lang.reflect.Method.invoke(Method.java:580)
+ at java.base/java.util.ArrayList.forEach(ArrayList.java:1596)
+ at java.base/java.util.ArrayList.forEach(ArrayList.java:1596)
+ duration: 1 ms
+ status: ✘ FAILED
+
+--- a/src/test/java/org/apache/commons/lang3/SystemPropertiesTest.java
++++ b/src/test/java/org/apache/commons/lang3/SystemPropertiesTest.java
+@@ -27,6 +27,7 @@ import static org.junit.jupiter.api.Assumptions.assumeTrue;
+
+ import java.util.function.Supplier;
+
++import org.junit.jupiter.api.Disabled;
+ import org.junit.jupiter.api.Test;
+ import org.junit.jupiter.api.function.ThrowingSupplier;
+ import org.junit.jupiter.params.ParameterizedTest;
+@@ -507,6 +508,7 @@ class SystemPropertiesTest {
+ assertDoesNotThrow(SystemProperties::getJavaAwtGraphicsenv);
+ }
+
++ @Disabled
+ @Test
+ void testGetJavaAwtHeadless() {
+ assertNull(SystemProperties.getJavaAwtHeadless());
diff --git a/dev-java/commons-net/Manifest b/dev-java/commons-net/Manifest
index b5d71b6d6de8..f0c5caf1b377 100644
--- a/dev-java/commons-net/Manifest
+++ b/dev-java/commons-net/Manifest
@@ -1,2 +1,7 @@
DIST commons-net-3.11.1-src.tar.gz 460104 BLAKE2B 5542a7d9d3d8f2f07a90b3ab21e4e8a66bceecfef8f1ae8ec378003e4c3906414435b095cc0c0016f24d3e174a5e16da52cf4c5503209c08d5e550ef25a7bbdc SHA512 0999067cc73cb0e0ab4940302180a0afa998b37c51f93c1c744bf1d346d14c89283166a665283d98200e98f0b8c39854f17493890d49ddad5769c4deb49de37e
DIST commons-net-3.11.1-src.tar.gz.asc 488 BLAKE2B ea6ba15b7b6800b1c249cb82d784057f701fb13775fc9838e5247e1e8ead9360a7c5381083fa0c0e2b783e339b6e4ebb8ff66cb8c8924b3c00c9b28ee696e7a3 SHA512 c9e4c896d2f514996aa50c8af20bab6564d574db4fef69832fe2391beefabfed74a727faf7fe9227b037e943cdba5b2ac143164d5c0df3140b9b7c44ca316e53
+DIST commons-net-3.12.0-src.tar.gz 469615 BLAKE2B 7c563d5c0d909e67ec41699bc35e1b03a26453d7ed84d0f7c8b534c4fd2d40aa47cfe491869fc4af41ccc11a13f34a90117e3c53e233a32dda3a5999f788b5ed SHA512 f33da0d8f279a174e3c4eb4514a091a5ac74bd55067d6f230b268bab425fe92941f7322665c613ab2984c78dcc376cac5d665f966626108dd70604ffe682d149
+DIST commons-net-3.12.0-src.tar.gz.asc 488 BLAKE2B 3fcaf77c3580933dce4b4b4bc2b3f93786cf09e4b78dfde3f49956cdb53119645caddcf3733694a5aa45ce08ac83cb37aac0ce49d7eb46f3ae379ea3329a6993 SHA512 c2605f71ff721b2c6fa964a565c5d34129392e5c95e81b77eb83366082e99768913e99581f0a04f65310c9a9dfe47a5aae17bdb8ede07c6eb101c6582058f461
+DIST ftplet-api-1.2.1.jar 23347 BLAKE2B 89ceb01114f6a342eb9bae4b14c1ee5664278253e9f9c9a888342994021f3c8563cab35944ddc26cf33508f80d745da3102d3164666922071e71462073788b60 SHA512 8f13c2daf5ffb246d45d04c7dec2e4236ab35b8230255b791701fe2b94206eada6d303a4a9f48200d0e633353fdba5fd5e7f78d7e25d46904e8f87c19a047f35
+DIST ftpserver-core-1.2.1.jar 319560 BLAKE2B 10bd90b7cf66834687de1317ed53552aecd67bab6f5390752880e07874e886e15a792d33ec8491991dbe272a0b2d866ac6d6e7672b06dfcd6240664cf899cc83 SHA512 665e8150c4ee4eb091faab77fdb08c49452ddf3141cdd8701ad14479378d170c4482a146f4ec2225c7b72321a26e64bb8b1cd8b7ec4167905ccbe17a5005d77e
+DIST mina-core-2.2.4.jar 701671 BLAKE2B 10c7b357a12dbce4e9f989fb8d518629b2748b3808ddac8fa938b7aac8045a6e7fe59ccfa36ef5ec0c9a1a6a7e95e88bcf01cd3753e1191e72e850a8224bcf12 SHA512 4269e2e16c99692e2490ad1bcc80ec02958b2c40704d8059f3ef1ff04671ef6bd88747637666a497c99a791a7aa7e3e0f98875cf742af849667aed9c16155f74
diff --git a/dev-java/commons-net/commons-net-3.12.0.ebuild b/dev-java/commons-net/commons-net-3.12.0.ebuild
new file mode 100644
index 000000000000..770bf73b06ee
--- /dev/null
+++ b/dev-java/commons-net/commons-net-3.12.0.ebuild
@@ -0,0 +1,106 @@
+# Copyright 1999-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+JAVA_PKG_IUSE="doc source test"
+MAVEN_ID="commons-net:commons-net:${PV}"
+JAVA_TESTING_FRAMEWORKS="junit-jupiter"
+
+inherit java-pkg-2 java-pkg-simple junit5 verify-sig
+
+DESCRIPTION="Client-oriented Java library to implement many Internet protocols"
+HOMEPAGE="https://commons.apache.org/proper/commons-net/"
+FSV="1.2.1" # apache-ftpserver isn't yet packaged
+MCV="2.2.4"
+SRC_URI="mirror://apache/commons/net/source/${P}-src.tar.gz
+ test? (
+ https://repo1.maven.org/maven2/org/apache/ftpserver/ftpserver-core/${FSV}/ftpserver-core-${FSV}.jar
+ https://repo1.maven.org/maven2/org/apache/ftpserver/ftplet-api/${FSV}/ftplet-api-${FSV}.jar
+ https://repo1.maven.org/maven2/org/apache/mina/mina-core/${MCV}/mina-core-${MCV}.jar
+ )
+ verify-sig? ( https://downloads.apache.org/commons/net/source/${P}-src.tar.gz.asc )"
+S="${WORKDIR}/${P}-src"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~amd64 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x64-solaris"
+
+BDEPEND="verify-sig? ( sec-keys/openpgp-keys-ggregory )"
+
+DEPEND="
+ >=dev-java/commons-io-2.20.0:0
+ >=virtual/jdk-11:*
+ test? (
+ >=dev-java/commons-collections-4.5.0:4
+ >=dev-java/commons-lang-3.18.0:0
+ dev-java/junit:4
+ dev-java/opentest4j:0
+ dev-java/slf4j-api:0
+ )
+"
+
+RDEPEND=">=virtual/jre-1.8:*"
+
+DOCS=( CONTRIBUTING.md {NOTICE,RELEASE-NOTES}.txt )
+PATCHES=( "${FILESDIR}/commons-net-3.12.0-skipFailingTests.patch" )
+
+JAVA_CLASSPATH_EXTRA="commons-io"
+JAVA_GENTOO_CLASSPATH_EXTRA=:"${DISTDIR}/ftplet-api-${FSV}.jar"
+JAVA_GENTOO_CLASSPATH_EXTRA+=:"${DISTDIR}/ftpserver-core-${FSV}.jar"
+JAVA_GENTOO_CLASSPATH_EXTRA+=:"${DISTDIR}/mina-core-${MCV}.jar"
+JAVA_INTERMEDIATE_JAR_NAME="org.apache.${PN/-/.}"
+JAVA_MODULE_INFO_OUT="src/main"
+JAVA_RESOURCE_DIRS="src/main/resources"
+JAVA_SRC_DIR="src/main/java"
+JAVA_TEST_GENTOO_CLASSPATH="commons-collections-4 commons-lang junit-4 junit-5 opentest4j slf4j-api"
+JAVA_TEST_RESOURCE_DIRS="src/test/resources"
+JAVA_TEST_SRC_DIR="src/test/java"
+VERIFY_SIG_OPENPGP_KEY_PATH="/usr/share/openpgp-keys/ggregory.asc"
+
+src_unpack() {
+ use verify-sig && verify-sig_verify_detached "${DISTDIR}"/${P}-src.tar.gz{,.asc}
+ default
+}
+
+src_prepare() {
+ default #780585
+ java-pkg-2_src_prepare
+
+ # pom.xml lines 179-188 (do not put it in the main jar)
+ mkdir -p src/examples/java/org/apache/commons/net/ || die
+ mv src/{main,examples}/java/org/apache/commons/net/examples || die "mv java"
+ mkdir -p target/examples || die
+ mv {src/main/resources,target/examples}/org || die "mv resources"
+}
+
+src_test() {
+ # Some examples are needed only for compiling tests but won't be packaged.
+ mkdir -p target/examples || die
+ local examples_sources
+ find src/examples/java -type f -name '*.java' \
+ > examples_sources || die "sources"
+ ejavac -d target/examples @examples_sources \
+ -classpath "$(java-pkg_getjars --build-only commons-io)":commons-net.jar
+ JAVA_GENTOO_CLASSPATH_EXTRA+=":target/examples"
+
+ # src/test/java/org/apache/commons/net/util/SubnetUtilsTest.java:39: error: cannot find symbol
+ # import org.junit.jupiter.params.provider.FieldSource;
+ rm src/test/java/org/apache/commons/net/util/SubnetUtilsTest.java || die "rm SubnetUtilsTest.java"
+
+ # pom.xml lines 208-209
+ find src/test/java -type f -name '*FunctionalTest.java' -delete || die
+ find src/test/java -type f -name 'POP3*Test.java' -delete || die
+
+ JAVA_TEST_EXCLUDES=(
+ # caught: java.net.UnknownHostException:
+ # jdk.internal.util.Exceptions$NonSocketInfo@32f61a31tux: Name or service not known
+ org.apache.commons.net.tftp.TFTPAckPacketTest
+ org.apache.commons.net.tftp.TFTPDataPacketTest
+ org.apache.commons.net.tftp.TFTPErrorPacketTest
+ org.apache.commons.net.tftp.TFTPReadRequestPacketTest
+ org.apache.commons.net.tftp.TFTPRequestPacketTest
+ org.apache.commons.net.tftp.TFTPWriteRequestPacketTest
+ )
+ junit5_src_test
+}
diff --git a/dev-java/commons-net/files/commons-net-3.12.0-skipFailingTests.patch b/dev-java/commons-net/files/commons-net-3.12.0-skipFailingTests.patch
new file mode 100644
index 000000000000..56113e25f5de
--- /dev/null
+++ b/dev-java/commons-net/files/commons-net-3.12.0-skipFailingTests.patch
@@ -0,0 +1,147 @@
+
+testGetTime()
+ tags: []
+ uniqueId: [engine:junit-jupiter]/[class:org.apache.commons.net.daytime.DaytimeUDPClientTest]/[method:testGetTime()]
+ parent: [engine:junit-jupiter]/[class:org.apache.commons.net.daytime.DaytimeUDPClientTest]
+ source: MethodSource [className = 'org.apache.commons.net.daytime.DaytimeUDPClientTest', methodName = 'testGetTime', methodParameterTypes = '']
+ caught: org.opentest4j.AssertionFailedError: Unexpected exception type thrown, expected: <java.lang.NullPointerException> but was: <java.net.UnknownHostException>
+ at org.junit.jupiter.api.AssertionFailureBuilder.build(AssertionFailureBuilder.java:151)
+ at org.junit.jupiter.api.AssertThrows.assertThrows(AssertThrows.java:67)
+ at org.junit.jupiter.api.AssertThrows.assertThrows(AssertThrows.java:35)
+ at org.junit.jupiter.api.Assertions.assertThrows(Assertions.java:3115)
+ at org.apache.commons.net.daytime.DaytimeUDPClientTest.testGetTime(DaytimeUDPClientTest.java:49)
+ at java.base/java.lang.reflect.Method.invoke(Method.java:565)
+ at java.base/java.util.ArrayList.forEach(ArrayList.java:1604)
+ at java.base/java.util.ArrayList.forEach(ArrayList.java:1604)
+ Caused by: java.net.UnknownHostException: jdk.internal.util.Exceptions$NonSocketInfo@2024293ctux: Name or service not known
+ at java.base/java.net.InetAddress.getLocalHost(InetAddress.java:1800)
+ at org.apache.commons.net.daytime.DaytimeUDPClientTest.lambda$testGetTime$0(DaytimeUDPClientTest.java:49)
+ at org.junit.jupiter.api.AssertThrows.assertThrows(AssertThrows.java:53)
+ ... 6 more
+ Caused by: java.net.UnknownHostException: tux: Name or service not known
+ at java.base/java.net.Inet6AddressImpl.lookupAllHostAddr(Native Method)
+ at java.base/java.net.Inet6AddressImpl.lookupAllHostAddr(Inet6AddressImpl.java:52)
+ at java.base/java.net.InetAddress$PlatformResolver.lookupByName(InetAddress.java:1134)
+ at java.base/java.net.InetAddress.getAddressesFromNameService(InetAddress.java:1712)
+ at java.base/java.net.InetAddress$NameServiceAddresses.get(InetAddress.java:1060)
+ at java.base/java.net.InetAddress.getAllByName0(InetAddress.java:1702)
+ at java.base/java.net.InetAddress.getLocalHost(InetAddress.java:1796)
+ ... 8 more
+ duration: 9 ms
+ status: ✘ FAILED
+
+--- a/src/test/java/org/apache/commons/net/daytime/DaytimeUDPClientTest.java
++++ b/src/test/java/org/apache/commons/net/daytime/DaytimeUDPClientTest.java
+@@ -22,6 +22,7 @@ import static org.junit.jupiter.api.Assertions.assertThrows;
+
+ import java.net.InetAddress;
+
++import org.junit.jupiter.api.Disabled;
+ import org.junit.jupiter.api.Test;
+
+ /**
+@@ -42,7 +43,7 @@ public class DaytimeUDPClientTest {
+ assertDoesNotThrow(DaytimeUDPClient::new);
+ }
+
+- @Test
++ @Test @Disabled
+ public void testGetTime() {
+ try (DaytimeUDPClient client = new DaytimeUDPClient()) {
+ // Not connected
+--- a/src/test/java/org/apache/commons/net/time/TimeUDPClientTest.java
++++ b/src/test/java/org/apache/commons/net/time/TimeUDPClientTest.java
+@@ -22,6 +22,7 @@ import static org.junit.jupiter.api.Assertions.assertThrows;
+
+ import java.net.InetAddress;
+
++import org.junit.jupiter.api.Disabled;
+ import org.junit.jupiter.api.Test;
+
+ /**
+@@ -36,7 +37,7 @@ public class TimeUDPClientTest {
+ }
+ }
+
+- @Test
++ @Test @Disabled
+ public void testGetDate() {
+ try (TimeUDPClient client = new TimeUDPClient()) {
+ // Not connected failures
+@@ -45,7 +46,7 @@ public class TimeUDPClientTest {
+ }
+ }
+
+- @Test
++ @Test @Disabled
+ public void testGetTime() {
+ try (TimeUDPClient client = new TimeUDPClient()) {
+ // Not connected failures
+--- a/src/test/java/org/apache/commons/net/chargen/CharGenUDPClientTest.java
++++ b/src/test/java/org/apache/commons/net/chargen/CharGenUDPClientTest.java
+@@ -22,6 +22,7 @@ import static org.junit.jupiter.api.Assertions.assertThrows;
+
+ import java.net.InetAddress;
+
++import org.junit.jupiter.api.Disabled;
+ import org.junit.jupiter.api.Test;
+
+ /**
+@@ -43,7 +44,7 @@ public class CharGenUDPClientTest {
+ }
+ }
+
+- @Test
++ @Test @Disabled
+ public void testSend() {
+ try (CharGenUDPClient client = new CharGenUDPClient()) {
+ // Not connected
+--- a/src/test/java/org/apache/commons/net/discard/DiscardUDPClientTest.java
++++ b/src/test/java/org/apache/commons/net/discard/DiscardUDPClientTest.java
+@@ -22,6 +22,7 @@ import static org.junit.jupiter.api.Assertions.assertThrows;
+
+ import java.net.InetAddress;
+
++import org.junit.jupiter.api.Disabled;
+ import org.junit.jupiter.api.Test;
+
+ /**
+@@ -35,7 +36,7 @@ public class DiscardUDPClientTest {
+ assertDoesNotThrow(DiscardUDPClient::new);
+ }
+
+- @Test
++ @Test @Disabled
+ public void testSend() {
+ try (DiscardUDPClient client = new DiscardUDPClient()) {
+ // Not connected
+--- a/src/test/java/org/apache/commons/net/echo/EchoUDPClientTest.java
++++ b/src/test/java/org/apache/commons/net/echo/EchoUDPClientTest.java
+@@ -21,6 +21,7 @@ import static org.junit.jupiter.api.Assertions.assertThrows;
+
+ import java.net.InetAddress;
+
++import org.junit.jupiter.api.Disabled;
+ import org.junit.jupiter.api.Test;
+
+ /**
+@@ -37,7 +38,7 @@ public class EchoUDPClientTest {
+ }
+ }
+
+- @Test
++ @Test @Disabled
+ public void testSend() {
+ try (EchoUDPClient client = new EchoUDPClient()) {
+ // Not connected
+--- a/src/test/java/org/apache/commons/net/tftp/TFTPTest.java
++++ b/src/test/java/org/apache/commons/net/tftp/TFTPTest.java
+@@ -164,7 +164,7 @@ public class TFTPTest extends TestCase {
+ }
+ }
+
+- public void testSend() throws IOException {
++ public void moTestSend() throws IOException {
+ try (TFTP tftp = new TFTP()) {
+ tftp.open();
+ tftp.send(new TFTPDataPacket(InetAddress.getLocalHost(), tftp.getLocalPort(), 0, new byte[10]));
diff --git a/dev-java/commons-rng/Manifest b/dev-java/commons-rng/Manifest
new file mode 100644
index 000000000000..b24a8b24b510
--- /dev/null
+++ b/dev-java/commons-rng/Manifest
@@ -0,0 +1,2 @@
+DIST commons-rng-1.6-src.tar.gz 3515848 BLAKE2B 453a3c3d9911051aefbde3ea26d5945962845bf42fb2223ec3bd3cfcb29f1c180c7203e3dc8bf6ff24396a066710fc5ccd6d14160bd6dc16838700f8c5be54e1 SHA512 8cb6e78b7a27aaf9492f549848465987838fd490a97996c5f7d516a648093db777d63544cd4be7550de22d69b80b070fdfa5e1f6dd143c2e75c70db684a39e2e
+DIST commons-rng-1.6-src.tar.gz.asc 833 BLAKE2B b4e618d4bd4bba29afe14bafcc766301a29d76e2b19d0cf9c4fca35bc7a304ef9fd9ccd69a6a693e25925c9d785b93f35bafae07ed6a4656c50666247863e2f3 SHA512 16c4bd9ff122d92794f0efc330350f9c44152cec4033a52843418cf6f18ac2dde3b699f9a686685d9336701586b292a4f5ef9a8c677797d08dbd6e4e7ede9386
diff --git a/dev-java/commons-rng/commons-rng-1.6.ebuild b/dev-java/commons-rng/commons-rng-1.6.ebuild
new file mode 100644
index 000000000000..b4e37734d8a6
--- /dev/null
+++ b/dev-java/commons-rng/commons-rng-1.6.ebuild
@@ -0,0 +1,101 @@
+# Copyright 1999-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+JAVA_PKG_IUSE="doc source test"
+JAVA_TESTING_FRAMEWORKS="junit-jupiter"
+
+inherit java-pkg-2 java-pkg-simple junit5 verify-sig
+
+DESCRIPTION="Apache Commons Random Numbers Generators"
+HOMEPAGE="https://commons.apache.org/proper/commons-rng/"
+SRC_URI="mirror://apache/commons/rng/source/${P}-src.tar.gz
+ verify-sig? ( https://downloads.apache.org/commons/rng/source/${P}-src.tar.gz.asc )"
+S="${WORKDIR}/${P}-src"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~amd64"
+
+BDEPEND="verify-sig? ( sec-keys/openpgp-keys-aherbert )"
+
+DEPEND="
+ >=virtual/jdk-11:*
+ test? (
+ >=dev-java/commons-math-3.6.1-r2:3
+ >=dev-java/jmh-core-1.37:0
+ dev-java/opentest4j:0
+ )
+"
+
+RDEPEND=">=virtual/jre-1.8:*"
+
+PATCHES=( "${FILESDIR}/commons-rng-1.6-skipFailingTests.patch" )
+
+JAVADOC_SRC_DIRS=(
+ commons-rng-client-api/src/main/java
+ commons-rng-core/src/main/java
+ commons-rng-simple/src/main/java
+)
+VERIFY_SIG_OPENPGP_KEY_PATH="/usr/share/openpgp-keys/aherbert.asc"
+
+src_prepare() {
+ default #780585
+ java-pkg-2_src_prepare
+}
+
+src_compile() {
+ einfo "Compiling commons-rng-client-api"
+ JAVA_AUTOMATIC_MODULE_NAME="org.apache.commons.rng.api"
+ JAVA_INTERMEDIATE_JAR_NAME="org.apache.${PN/-/.}.api"
+ JAVA_JAR_FILENAME="commons-rng-client-api.jar"
+ JAVA_MODULE_INFO_OUT="commons-rng-client-api/src/main"
+ JAVA_RESOURCE_DIRS=()
+ JAVA_SRC_DIR="commons-rng-client-api/src/main/java"
+ java-pkg-simple_src_compile
+ JAVA_GENTOO_CLASSPATH_EXTRA+=":commons-rng-client-api.jar"
+ rm -r target || die
+
+ einfo "Compiling commons-rng-core"
+ JAVA_AUTOMATIC_MODULE_NAME="org.apache.commons.rng.core"
+ JAVA_INTERMEDIATE_JAR_NAME="org.apache.${PN/-/.}.core"
+ JAVA_JAR_FILENAME="commons-rng-core.jar"
+ JAVA_MODULE_INFO_OUT="commons-rng-core/src/main"
+ JAVA_RESOURCE_DIRS=()
+ JAVA_SRC_DIR="commons-rng-core/src/main/java"
+ java-pkg-simple_src_compile
+ JAVA_GENTOO_CLASSPATH_EXTRA+=":commons-rng-core.jar"
+ rm -r target || die
+
+ einfo "Compiling commons-rng-core"
+ JAVA_AUTOMATIC_MODULE_NAME="org.apache.commons.rng.simple"
+ JAVA_INTERMEDIATE_JAR_NAME="org.apache.${PN/-/.}.simple"
+ JAVA_JAR_FILENAME="commons-rng-simple.jar"
+ JAVA_MODULE_INFO_OUT="commons-rng-simple/src/main"
+ JAVA_RESOURCE_DIRS=()
+ JAVA_SRC_DIR="commons-rng-simple/src/main/java"
+ java-pkg-simple_src_compile
+ JAVA_GENTOO_CLASSPATH_EXTRA+=":commons-rng-simple.jar"
+ rm -r target || die
+
+ use doc && ejavadoc
+}
+
+src_test() {
+ JAVA_TEST_GENTOO_CLASSPATH="commons-math-3 jmh-core junit-5 opentest4j"
+
+ JAVA_TEST_SRC_DIR="commons-rng-client-api/src/test/java"
+ junit5_src_test
+
+ JAVA_TEST_SRC_DIR="commons-rng-core/src/test/java"
+ junit5_src_test
+
+ JAVA_TEST_SRC_DIR="commons-rng-simple/src/test/java"
+ junit5_src_test
+}
+
+src_install() {
+ java-pkg-simple_src_install
+ java-pkg_dojar commons-rng-{client-api,core}.jar
+}
diff --git a/dev-java/commons-rng/files/commons-rng-1.6-skipFailingTests.patch b/dev-java/commons-rng/files/commons-rng-1.6-skipFailingTests.patch
new file mode 100644
index 000000000000..8a86aeab48ac
--- /dev/null
+++ b/dev-java/commons-rng/files/commons-rng-1.6-skipFailingTests.patch
@@ -0,0 +1,125 @@
+
+--- a/commons-rng-core/src/test/java/org/apache/commons/rng/core/ProvidersCommonParametricTest.java
++++ b/commons-rng-core/src/test/java/org/apache/commons/rng/core/ProvidersCommonParametricTest.java
+@@ -22,6 +22,7 @@ import java.util.ArrayList;
+ import java.util.concurrent.Callable;
+ import java.util.function.LongSupplier;
+ import java.util.stream.Collectors;
++import org.junit.jupiter.api.Disabled;
+ import org.junit.jupiter.api.Assertions;
+ import org.junit.jupiter.params.ParameterizedTest;
+ import org.junit.jupiter.params.provider.MethodSource;
+@@ -86,7 +87,7 @@ class ProvidersCommonParametricTest {
+
+ // Uniformity tests
+
+- @ParameterizedTest
++ @ParameterizedTest @Disabled
+ @MethodSource("getList")
+ void testUniformNextBytesFullBuffer(UniformRandomProvider generator) {
+ // Value chosen to exercise all the code lines in the
+@@ -104,7 +105,7 @@ class ProvidersCommonParametricTest {
+ Assertions.assertTrue(isUniformNextBytes(buffer, 0, size, nextMethod), generator::toString);
+ }
+
+- @ParameterizedTest
++ @ParameterizedTest @Disabled
+ @MethodSource("getList")
+ void testUniformNextBytesPartialBuffer(UniformRandomProvider generator) {
+ final int totalSize = 1234;
+@@ -132,7 +133,7 @@ class ProvidersCommonParametricTest {
+ }
+ }
+
+- @ParameterizedTest
++ @ParameterizedTest @Disabled
+ @MethodSource("getList")
+ void testUniformNextIntegerInRange(UniformRandomProvider generator) {
+ // Statistical test uses 10 bins so tests are invalid below this level
+@@ -146,7 +147,7 @@ class ProvidersCommonParametricTest {
+ checkNextIntegerInRange(generator, 1570504788, 1000);
+ }
+
+- @ParameterizedTest
++ @ParameterizedTest @Disabled
+ @MethodSource("getList")
+ void testUniformNextLongInRange(UniformRandomProvider generator) {
+ // Statistical test uses 10 bins so tests are invalid below this level
+@@ -161,19 +162,19 @@ class ProvidersCommonParametricTest {
+ checkNextLongInRange(generator, 3 * q, 1000);
+ }
+
+- @ParameterizedTest
++ @ParameterizedTest @Disabled
+ @MethodSource("getList")
+ void testUniformNextFloat(UniformRandomProvider generator) {
+ checkNextFloat(generator, 1000);
+ }
+
+- @ParameterizedTest
++ @ParameterizedTest @Disabled
+ @MethodSource("getList")
+ void testUniformNextDouble(UniformRandomProvider generator) {
+ checkNextDouble(generator, 1000);
+ }
+
+- @ParameterizedTest
++ @ParameterizedTest @Disabled
+ @MethodSource("getList")
+ void testUniformNextIntRandomWalk(UniformRandomProvider generator) {
+ final Callable<Boolean> nextMethod = new Callable<Boolean>() {
+@@ -186,7 +187,7 @@ class ProvidersCommonParametricTest {
+ checkRandomWalk(generator, 1000, nextMethod);
+ }
+
+- @ParameterizedTest
++ @ParameterizedTest @Disabled
+ @MethodSource("getList")
+ void testUniformNextLongRandomWalk(UniformRandomProvider generator) {
+ final Callable<Boolean> nextMethod = new Callable<Boolean>() {
+@@ -199,7 +200,7 @@ class ProvidersCommonParametricTest {
+ checkRandomWalk(generator, 1000, nextMethod);
+ }
+
+- @ParameterizedTest
++ @ParameterizedTest @Disabled
+ @MethodSource("getList")
+ void testUniformNextBooleanRandomWalk(UniformRandomProvider generator) {
+ final Callable<Boolean> nextMethod = new Callable<Boolean>() {
+--- a/commons-rng-simple/src/test/java/org/apache/commons/rng/simple/ProvidersCommonParametricTest.java
++++ b/commons-rng-simple/src/test/java/org/apache/commons/rng/simple/ProvidersCommonParametricTest.java
+@@ -29,6 +29,7 @@ import java.io.ByteArrayInputStream;
+
+ import org.junit.jupiter.api.Assertions;
+ import org.junit.jupiter.api.Assumptions;
++import org.junit.jupiter.api.Disabled;
+ import org.junit.jupiter.params.ParameterizedTest;
+ import org.junit.jupiter.params.provider.MethodSource;
+
+@@ -162,7 +163,7 @@ class ProvidersCommonParametricTest {
+ Assertions.assertEquals(5, nonNativeSeedCount);
+ }
+
+- @ParameterizedTest
++ @ParameterizedTest @Disabled
+ @MethodSource("getProvidersTestData")
+ void testNullSeed(ProvidersList.Data data) {
+ final RandomSource originalSource = data.getSource();
+@@ -226,7 +227,7 @@ class ProvidersCommonParametricTest {
+ checkNextIntegerInRange(rng, 10, 10000);
+ }
+
+- @ParameterizedTest
++ @ParameterizedTest @Disabled
+ @MethodSource("getProvidersTestData")
+ void testRandomSourceCreateSeed(ProvidersList.Data data) {
+ final RandomSource originalSource = data.getSource();
+@@ -236,7 +237,7 @@ class ProvidersCommonParametricTest {
+ checkNextIntegerInRange(rng, 10, 10000);
+ }
+
+- @ParameterizedTest
++ @ParameterizedTest @Disabled
+ @MethodSource("getProvidersTestData")
+ void testRandomSourceCreateSeedFromRNG(ProvidersList.Data data) {
+ final RandomSource originalSource = data.getSource();
diff --git a/dev-java/commons-rng/metadata.xml b/dev-java/commons-rng/metadata.xml
new file mode 100644
index 000000000000..e25b5c52aab3
--- /dev/null
+++ b/dev-java/commons-rng/metadata.xml
@@ -0,0 +1,10 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "https://liguros.gitlab.io/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="project">
+ <email>java@gentoo.org</email>
+ <name>Java</name>
+ </maintainer>
+
+ <origin>gentoo-staging</origin>
+</pkgmetadata> \ No newline at end of file
diff --git a/dev-java/commons-text/Manifest b/dev-java/commons-text/Manifest
new file mode 100644
index 000000000000..9f998471cd9d
--- /dev/null
+++ b/dev-java/commons-text/Manifest
@@ -0,0 +1,2 @@
+DIST commons-text-1.14.0-src.tar.gz 365401 BLAKE2B bde7f76383f967c5d1cfc9dba383d93ec0f9ba37573d9ff7b030c52cd3b88405f73d56576cb151a5625be8922315438141a921ebbc5c5f4376a60a93e7475dfb SHA512 db9369ca5249e447f871b03f826782ff34d55f7f375c6fe9a6e6ffb740124ad38ced4487ea0bd9fafe1603b5dade9ce6fdd7d595af63b6d3a66560de936aa46a
+DIST commons-text-1.14.0-src.tar.gz.asc 488 BLAKE2B 354170784d3e126633725c384e4fa2f1971adf67dfad5b4e20d215c62a1eafe31abb639a6ecf11d3fc22ce5bf72e521812cee01eef43571229aaab09aa96741c SHA512 9ad22be03e791dab3a1fa66c1781e6d2b2759e0c9ef2ab17bf5d1f83c17943cd5603dd243e9bcec0ae1005f884555969fd0c60ea05709780370d6eafc334b47a
diff --git a/dev-java/commons-text/commons-text-1.14.0.ebuild b/dev-java/commons-text/commons-text-1.14.0.ebuild
new file mode 100644
index 000000000000..c1696ac20f66
--- /dev/null
+++ b/dev-java/commons-text/commons-text-1.14.0.ebuild
@@ -0,0 +1,65 @@
+# Copyright 1999-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+JAVA_PKG_IUSE="doc source test"
+MAVEN_ID="org.apache.commons:commons-text:${PV}"
+JAVA_TESTING_FRAMEWORKS="junit-jupiter"
+
+inherit java-pkg-2 java-pkg-simple junit5 verify-sig
+
+DESCRIPTION="Apache Commons Text is a library focused on algorithms working on strings"
+HOMEPAGE="https://commons.apache.org/proper/commons-text/"
+SRC_URI="mirror://apache//commons/text/source/${P}-src.tar.gz
+ verify-sig? ( https://downloads.apache.org/commons/text/source/${P}-src.tar.gz.asc )"
+S="${WORKDIR}/${P}-src"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~amd64"
+
+BDEPEND="verify-sig? ( sec-keys/openpgp-keys-ggregory )"
+CP_DEPEND=">=dev-java/commons-lang-3.18.0:0"
+
+DEPEND="
+ ${CP_DEPEND}
+ >=virtual/jdk-11:*
+ test? (
+ >=dev-java/commons-io-2.20.0:0
+ >=dev-java/commons-lang-3.18.0:0
+ dev-java/commons-rng:0
+ >=dev-java/jmh-core-1.37:0
+ >=dev-java/jmh-generator-annprocess-1.37:0
+ dev-java/mockito:4
+ )
+"
+
+RDEPEND="
+ ${CP_DEPEND}
+ >=virtual/jre-1.8:*
+"
+
+DOCS=( CONTRIBUTING.md NOTICE.txt README.md RELEASE-NOTES.txt )
+PATCHES=(
+ "${FILESDIR}/commons-text-1.14.0-ResourceBundleStringLookupTest.patch"
+ "${FILESDIR}/commons-text-1.14.0-ScriptStringLookupTest.patch"
+ "${FILESDIR}/commons-text-1.14.0-StringSubstitutorWithInterpolatorStringLookupTest.patch"
+ "${FILESDIR}/commons-text-1.14.0-UrlDecoderStringLookupTest.patch"
+ "${FILESDIR}/commons-text-1.14.0-UrlEncoderStringLookupTest.patch"
+ "${FILESDIR}/commons-text-1.14.0-UrlStringLookupTest.patch"
+)
+
+JAVA_AUTOMATIC_MODULE_NAME="org.apache.commons.text"
+JAVA_INTERMEDIATE_JAR_NAME="org.apache.${PN/-/.}"
+JAVA_MODULE_INFO_OUT="src/main"
+JAVA_SRC_DIR="src/main/java"
+JAVA_TEST_GENTOO_CLASSPATH="commons-io commons-lang commons-rng jmh-core jmh-generator-annprocess mockito-4"
+JAVA_TEST_RESOURCE_DIRS="src/test/resources"
+JAVA_TEST_SRC_DIR="src/test/java"
+VERIFY_SIG_OPENPGP_KEY_PATH="/usr/share/openpgp-keys/ggregory.asc"
+
+src_prepare() {
+ default #780585
+ java-pkg-2_src_prepare
+}
diff --git a/dev-java/commons-text/files/commons-text-1.14.0-ResourceBundleStringLookupTest.patch b/dev-java/commons-text/files/commons-text-1.14.0-ResourceBundleStringLookupTest.patch
new file mode 100644
index 000000000000..8a008cda3e45
--- /dev/null
+++ b/dev-java/commons-text/files/commons-text-1.14.0-ResourceBundleStringLookupTest.patch
@@ -0,0 +1,34 @@
+─ testExceptionGettingString()
+ tags: []
+ uniqueId: [engine:junit-jupiter]/[class:org.apache.commons.text.lookup.ResourceBundleStringLookupTest]/[method:testExceptionGettingString()]
+ parent: [engine:junit-jupiter]/[class:org.apache.commons.text.lookup.ResourceBundleStringLookupTest]
+ source: MethodSource [className = 'org.apache.commons.text.lookup.ResourceBundleStringLookupTest', methodName = 'testExceptionGettingString', methodParameterTypes = '']
+ caught: org.mockito.exceptions.base.MockitoException:
+ Cannot mock/spy class org.apache.commons.text.lookup.ResourceBundleStringLookup
+ Mockito cannot mock/spy because :
+ - final class
+ at org.apache.commons.text.lookup.ResourceBundleStringLookupTest.testExceptionGettingString(ResourceBundleStringLookupTest.java:68)
+ at java.base/java.lang.reflect.Method.invoke(Method.java:565)
+ at java.base/java.util.ArrayList.forEach(ArrayList.java:1604)
+ at java.base/java.util.ArrayList.forEach(ArrayList.java:1604)
+ duration: 204 ms
+ status: ✘ FAILED
+
+--- a/src/test/java/org/apache/commons/text/lookup/ResourceBundleStringLookupTest.java
++++ b/src/test/java/org/apache/commons/text/lookup/ResourceBundleStringLookupTest.java
+@@ -25,6 +25,7 @@ import static org.mockito.Mockito.when;
+ import java.util.ResourceBundle;
+
+ import org.junit.jupiter.api.Assertions;
++import org.junit.jupiter.api.Disabled;
+ import org.junit.jupiter.api.Test;
+
+ /**
+@@ -63,6 +64,7 @@ class ResourceBundleStringLookupTest {
+ .apply(AbstractStringLookup.toLookupKey("OtherBundle", KEY)));
+ }
+
++ @Disabled
+ @Test
+ void testExceptionGettingString() {
+ final ResourceBundleStringLookup mockLookup = spy(ResourceBundleStringLookup.class);
diff --git a/dev-java/commons-text/files/commons-text-1.14.0-ScriptStringLookupTest.patch b/dev-java/commons-text/files/commons-text-1.14.0-ScriptStringLookupTest.patch
new file mode 100644
index 000000000000..725503e07d62
--- /dev/null
+++ b/dev-java/commons-text/files/commons-text-1.14.0-ScriptStringLookupTest.patch
@@ -0,0 +1,86 @@
+─ testOne()
+ tags: []
+ uniqueId: [engine:junit-jupiter]/[class:org.apache.commons.text.lookup.ScriptStringLookupTest]/[method:testOne()]
+ parent: [engine:junit-jupiter]/[class:org.apache.commons.text.lookup.ScriptStringLookupTest]
+ source: MethodSource [className = 'org.apache.commons.text.lookup.ScriptStringLookupTest', methodName = 'testOne', methodParameterTypes = '']
+ caught: java.lang.IllegalArgumentException: Error in script engine [JavaScript] evaluating script ["Hello World!"].
+ at org.apache.commons.text.lookup.IllegalArgumentExceptions.format(IllegalArgumentExceptions.java:49)
+ at org.apache.commons.text.lookup.ScriptStringLookup.lookup(ScriptStringLookup.java:88)
+ at org.apache.commons.text.lookup.StringLookup.apply(StringLookup.java:66)
+ at org.apache.commons.text.lookup.ScriptStringLookupTest.testOne(ScriptStringLookupTest.java:56)
+ at java.base/java.lang.reflect.Method.invoke(Method.java:565)
+ at java.base/java.util.ArrayList.forEach(ArrayList.java:1604)
+ at java.base/java.util.ArrayList.forEach(ArrayList.java:1604)
+ Caused by: java.lang.IllegalArgumentException: No script engine named JavaScript
+ at org.apache.commons.text.lookup.ScriptStringLookup.lookup(ScriptStringLookup.java:84)
+ ... 5 more
+ duration: 1 ms
+ status: ✘ FAILED
+─ testScriptUsingMultipleColons()
+ tags: []
+ uniqueId: [engine:junit-jupiter]/[class:org.apache.commons.text.lookup.ScriptStringLookupTest]/[method:testScriptUsingMultipleColons()]
+ parent: [engine:junit-jupiter]/[class:org.apache.commons.text.lookup.ScriptStringLookupTest]
+ source: MethodSource [className = 'org.apache.commons.text.lookup.ScriptStringLookupTest', methodName = 'testScriptUsingMultipleColons', methodParameterTypes = '']
+ caught: java.lang.IllegalArgumentException: Error in script engine [JavaScript] evaluating script [true ? "It Works" : "It Does Not Work" ].
+ at org.apache.commons.text.lookup.IllegalArgumentExceptions.format(IllegalArgumentExceptions.java:49)
+ at org.apache.commons.text.lookup.ScriptStringLookup.lookup(ScriptStringLookup.java:88)
+ at org.apache.commons.text.lookup.StringLookup.apply(StringLookup.java:66)
+ at org.apache.commons.text.lookup.ScriptStringLookupTest.testScriptUsingMultipleColons(ScriptStringLookupTest.java:72)
+ at java.base/java.lang.reflect.Method.invoke(Method.java:565)
+ at java.base/java.util.ArrayList.forEach(ArrayList.java:1604)
+ at java.base/java.util.ArrayList.forEach(ArrayList.java:1604)
+ Caused by: java.lang.IllegalArgumentException: No script engine named JavaScript
+ at org.apache.commons.text.lookup.ScriptStringLookup.lookup(ScriptStringLookup.java:84)
+ ... 5 more
+ duration: 1 ms
+ status: ✘ FAILED
+─ testSanityCheck()
+ tags: []
+ uniqueId: [engine:junit-jupiter]/[class:org.apache.commons.text.lookup.ScriptStringLookupTest]/[method:testSanityCheck()]
+ parent: [engine:junit-jupiter]/[class:org.apache.commons.text.lookup.ScriptStringLookupTest]
+ source: MethodSource [className = 'org.apache.commons.text.lookup.ScriptStringLookupTest', methodName = 'testSanityCheck', methodParameterTypes = '']
+ caught: org.opentest4j.AssertionFailedError: JavaScript ==> expected: not <null>
+ at org.junit.jupiter.api.AssertionFailureBuilder.build(AssertionFailureBuilder.java:152)
+ at org.junit.jupiter.api.AssertionFailureBuilder.buildAndThrow(AssertionFailureBuilder.java:132)
+ at org.junit.jupiter.api.AssertNotNull.failNull(AssertNotNull.java:49)
+ at org.junit.jupiter.api.AssertNotNull.assertNotNull(AssertNotNull.java:35)
+ at org.junit.jupiter.api.Assertions.assertNotNull(Assertions.java:312)
+ at org.apache.commons.text.lookup.ScriptStringLookupTest.testSanityCheck(ScriptStringLookupTest.java:61)
+ at java.base/java.lang.reflect.Method.invoke(Method.java:565)
+ at java.base/java.util.ArrayList.forEach(ArrayList.java:1604)
+ at java.base/java.util.ArrayList.forEach(ArrayList.java:1604)
+ duration: 1 ms
+ status: ✘ FAILED
+
+--- a/src/test/java/org/apache/commons/text/lookup/ScriptStringLookupTest.java
++++ b/src/test/java/org/apache/commons/text/lookup/ScriptStringLookupTest.java
+@@ -22,6 +22,7 @@ import static org.junit.jupiter.api.Assertions.assertThrows;
+ import javax.script.ScriptEngineManager;
+
+ import org.junit.jupiter.api.Assertions;
++import org.junit.jupiter.api.Disabled;
+ import org.junit.jupiter.api.Test;
+
+ /**
+@@ -51,11 +52,13 @@ class ScriptStringLookupTest {
+ Assertions.assertNull(ScriptStringLookup.INSTANCE.apply(null));
+ }
+
++ @Disabled
+ @Test
+ void testOne() {
+ Assertions.assertEquals("Hello World!", ScriptStringLookup.INSTANCE.apply(JS_NAME + ":\"Hello World!\""));
+ }
+
++ @Disabled
+ @Test
+ void testSanityCheck() {
+ Assertions.assertNotNull(new ScriptEngineManager().getEngineByName(JS_NAME), JS_NAME);
+@@ -66,6 +69,7 @@ class ScriptStringLookupTest {
+ assertThrows(IllegalArgumentException.class, () -> ScriptStringLookup.INSTANCE.apply("JavaScript=\"test\""));
+ }
+
++ @Disabled
+ @Test
+ void testScriptUsingMultipleColons() {
+ Assertions.assertEquals("It Works",
diff --git a/dev-java/commons-text/files/commons-text-1.14.0-StringSubstitutorWithInterpolatorStringLookupTest.patch b/dev-java/commons-text/files/commons-text-1.14.0-StringSubstitutorWithInterpolatorStringLookupTest.patch
new file mode 100644
index 000000000000..fb6e5d7e0a96
--- /dev/null
+++ b/dev-java/commons-text/files/commons-text-1.14.0-StringSubstitutorWithInterpolatorStringLookupTest.patch
@@ -0,0 +1,74 @@
+
+─ testJavaScript()
+ tags: []
+ uniqueId: [engine:junit-jupiter]/[class:org.apache.commons.text.StringSubstitutorWithInterpolatorStringLookupTest]/[method:testJavaScript()]
+ parent: [engine:junit-jupiter]/[class:org.apache.commons.text.StringSubstitutorWithInterpolatorStringLookupTest]
+ source: MethodSource [className = 'org.apache.commons.text.StringSubstitutorWithInterpolatorStringLookupTest', methodName = 'testJavaScript', methodParameterTypes = '']
+ caught: java.lang.IllegalArgumentException: Error in script engine [javascript] evaluating script ["Hello World!"].
+ at org.apache.commons.text.lookup.IllegalArgumentExceptions.format(IllegalArgumentExceptions.java:49)
+ at org.apache.commons.text.lookup.ScriptStringLookup.lookup(ScriptStringLookup.java:88)
+ at org.apache.commons.text.lookup.StringLookup.apply(StringLookup.java:66)
+ at org.apache.commons.text.lookup.InterpolatorStringLookup.lookup(InterpolatorStringLookup.java:127)
+ at org.apache.commons.text.lookup.StringLookup.apply(StringLookup.java:66)
+ at org.apache.commons.text.StringSubstitutor.resolveVariable(StringSubstitutor.java:1154)
+ at org.apache.commons.text.StringSubstitutor.substitute(StringSubstitutor.java:1520)
+ at org.apache.commons.text.StringSubstitutor.substitute(StringSubstitutor.java:1395)
+ at org.apache.commons.text.StringSubstitutor.replace(StringSubstitutor.java:899)
+ at org.apache.commons.text.StringSubstitutorWithInterpolatorStringLookupTest.testJavaScript(StringSubstitutorWithInterpolatorStringLookupTest.java:206)
+ at java.base/java.lang.reflect.Method.invoke(Method.java:565)
+ at java.base/java.util.ArrayList.forEach(ArrayList.java:1604)
+ at java.base/java.util.ArrayList.forEach(ArrayList.java:1604)
+ Caused by: java.lang.IllegalArgumentException: No script engine named javascript
+ at org.apache.commons.text.lookup.ScriptStringLookup.lookup(ScriptStringLookup.java:84)
+ ... 11 more
+ duration: 1 ms
+ status: ✘ FAILED
+─ testDnsLookupAddress()
+ tags: []
+ uniqueId: [engine:junit-jupiter]/[class:org.apache.commons.text.StringSubstitutorWithInterpolatorStringLookupTest]/[method:testDnsLookupAddress()]
+ parent: [engine:junit-jupiter]/[class:org.apache.commons.text.StringSubstitutorWithInterpolatorStringLookupTest]
+ source: MethodSource [className = 'org.apache.commons.text.StringSubstitutorWithInterpolatorStringLookupTest', methodName = 'testDnsLookupAddress', methodParameterTypes = '']
+ caught: java.net.UnknownHostException: apache.org: Temporary failure in name resolution
+ at java.base/java.net.Inet6AddressImpl.lookupAllHostAddr(Native Method)
+ at java.base/java.net.Inet6AddressImpl.lookupAllHostAddr(Inet6AddressImpl.java:52)
+ at java.base/java.net.InetAddress$PlatformResolver.lookupByName(InetAddress.java:1134)
+ at java.base/java.net.InetAddress.getAddressesFromNameService(InetAddress.java:1712)
+ at java.base/java.net.InetAddress$NameServiceAddresses.get(InetAddress.java:1060)
+ at java.base/java.net.InetAddress.getAllByName0(InetAddress.java:1702)
+ at java.base/java.net.InetAddress.getAllByName(InetAddress.java:1582)
+ at java.base/java.net.InetAddress.getByName(InetAddress.java:1492)
+ at org.apache.commons.text.StringSubstitutorWithInterpolatorStringLookupTest.testDnsLookupAddress(StringSubstitutorWithInterpolatorStringLookupTest.java:161)
+ at java.base/java.lang.reflect.Method.invoke(Method.java:565)
+ at java.base/java.util.ArrayList.forEach(ArrayList.java:1604)
+ at java.base/java.util.ArrayList.forEach(ArrayList.java:1604)
+ duration: 1 ms
+ status: ✘ FAILED
+
+--- a/src/test/java/org/apache/commons/text/StringSubstitutorWithInterpolatorStringLookupTest.java
++++ b/src/test/java/org/apache/commons/text/StringSubstitutorWithInterpolatorStringLookupTest.java
+@@ -28,6 +28,7 @@ import org.apache.commons.text.lookup.DefaultStringLookup;
+ import org.apache.commons.text.lookup.StringLookup;
+ import org.apache.commons.text.lookup.StringLookupFactory;
+ import org.junit.jupiter.api.Assertions;
++import org.junit.jupiter.api.Disabled;
+ import org.junit.jupiter.api.Test;
+
+ class StringSubstitutorWithInterpolatorStringLookupTest {
+@@ -154,7 +155,7 @@ class StringSubstitutorWithInterpolatorStringLookupTest {
+ Assertions.assertEquals(input, strSubst.replace(input));
+ }
+
+- @Test
++ @Test @Disabled
+ void testDnsLookupAddress() throws UnknownHostException {
+ final StringSubstitutor strSubst =
+ new StringSubstitutor(createInterpolatorWithLookups(DefaultStringLookup.DNS));
+@@ -198,7 +199,7 @@ class StringSubstitutorWithInterpolatorStringLookupTest {
+ Assertions.assertEquals(unknown, strSubst.replace(unknown));
+ }
+
+- @Test
++ @Test @Disabled
+ void testJavaScript() {
+ final StringSubstitutor strSubst =
+ new StringSubstitutor(createInterpolatorWithLookups(DefaultStringLookup.SCRIPT));
diff --git a/dev-java/commons-text/files/commons-text-1.14.0-UrlDecoderStringLookupTest.patch b/dev-java/commons-text/files/commons-text-1.14.0-UrlDecoderStringLookupTest.patch
new file mode 100644
index 000000000000..f1c40eafb764
--- /dev/null
+++ b/dev-java/commons-text/files/commons-text-1.14.0-UrlDecoderStringLookupTest.patch
@@ -0,0 +1,35 @@
+
+─ testExceptionGettingString()
+ tags: []
+ uniqueId: [engine:junit-jupiter]/[class:org.apache.commons.text.lookup.UrlDecoderStringLookupTest]/[method:testExceptionGettingString()]
+ parent: [engine:junit-jupiter]/[class:org.apache.commons.text.lookup.UrlDecoderStringLookupTest]
+ source: MethodSource [className = 'org.apache.commons.text.lookup.UrlDecoderStringLookupTest', methodName = 'testExceptionGettingString', methodParameterTypes = '']
+ caught: org.mockito.exceptions.base.MockitoException:
+ Cannot mock/spy class org.apache.commons.text.lookup.UrlDecoderStringLookup
+ Mockito cannot mock/spy because :
+ - final class
+ at org.apache.commons.text.lookup.UrlDecoderStringLookupTest.testExceptionGettingString(UrlDecoderStringLookupTest.java:44)
+ at java.base/java.lang.reflect.Method.invoke(Method.java:565)
+ at java.base/java.util.ArrayList.forEach(ArrayList.java:1604)
+ at java.base/java.util.ArrayList.forEach(ArrayList.java:1604)
+ duration: 188 ms
+ status: ✘ FAILED
+
+--- a/src/test/java/org/apache/commons/text/lookup/UrlDecoderStringLookupTest.java
++++ b/src/test/java/org/apache/commons/text/lookup/UrlDecoderStringLookupTest.java
+@@ -25,6 +25,7 @@ import java.io.UnsupportedEncodingException;
+ import java.nio.charset.StandardCharsets;
+
+ import org.junit.jupiter.api.Assertions;
++import org.junit.jupiter.api.Disabled;
+ import org.junit.jupiter.api.Test;
+
+ /**
+@@ -39,6 +40,7 @@ class UrlDecoderStringLookupTest {
+ Assertions.assertEquals(DATA, UrlDecoderStringLookup.INSTANCE.apply("Hello%20World%21"));
+ }
+
++ @Disabled
+ @Test
+ void testExceptionGettingString() throws UnsupportedEncodingException {
+ final UrlDecoderStringLookup mockLookup = spy(UrlDecoderStringLookup.class);
diff --git a/dev-java/commons-text/files/commons-text-1.14.0-UrlEncoderStringLookupTest.patch b/dev-java/commons-text/files/commons-text-1.14.0-UrlEncoderStringLookupTest.patch
new file mode 100644
index 000000000000..bea9a0404bdf
--- /dev/null
+++ b/dev-java/commons-text/files/commons-text-1.14.0-UrlEncoderStringLookupTest.patch
@@ -0,0 +1,35 @@
+
+─ testExceptionGettingString()
+ tags: []
+ uniqueId: [engine:junit-jupiter]/[class:org.apache.commons.text.lookup.UrlEncoderStringLookupTest]/[method:testExceptionGettingString()]
+ parent: [engine:junit-jupiter]/[class:org.apache.commons.text.lookup.UrlEncoderStringLookupTest]
+ source: MethodSource [className = 'org.apache.commons.text.lookup.UrlEncoderStringLookupTest', methodName = 'testExceptionGettingString', methodParameterTypes = '']
+ caught: org.mockito.exceptions.base.MockitoException:
+ Cannot mock/spy class org.apache.commons.text.lookup.UrlEncoderStringLookup
+ Mockito cannot mock/spy because :
+ - final class
+ at org.apache.commons.text.lookup.UrlEncoderStringLookupTest.testExceptionGettingString(UrlEncoderStringLookupTest.java:44)
+ at java.base/java.lang.reflect.Method.invoke(Method.java:565)
+ at java.base/java.util.ArrayList.forEach(ArrayList.java:1604)
+ at java.base/java.util.ArrayList.forEach(ArrayList.java:1604)
+ duration: 196 ms
+ status: ✘ FAILED
+
+--- a/src/test/java/org/apache/commons/text/lookup/UrlEncoderStringLookupTest.java
++++ b/src/test/java/org/apache/commons/text/lookup/UrlEncoderStringLookupTest.java
+@@ -25,6 +25,7 @@ import java.io.UnsupportedEncodingException;
+ import java.nio.charset.StandardCharsets;
+
+ import org.junit.jupiter.api.Assertions;
++import org.junit.jupiter.api.Disabled;
+ import org.junit.jupiter.api.Test;
+
+ /**
+@@ -39,6 +40,7 @@ class UrlEncoderStringLookupTest {
+ Assertions.assertEquals(DATA, UrlEncoderStringLookup.INSTANCE.apply("Hello World!"));
+ }
+
++ @Disabled
+ @Test
+ void testExceptionGettingString() throws UnsupportedEncodingException {
+ final UrlEncoderStringLookup mockLookup = spy(UrlEncoderStringLookup.class);
diff --git a/dev-java/commons-text/files/commons-text-1.14.0-UrlStringLookupTest.patch b/dev-java/commons-text/files/commons-text-1.14.0-UrlStringLookupTest.patch
new file mode 100644
index 000000000000..99f3b51efa4b
--- /dev/null
+++ b/dev-java/commons-text/files/commons-text-1.14.0-UrlStringLookupTest.patch
@@ -0,0 +1,56 @@
+
+testHttpScheme()
+ tags: []
+ uniqueId: [engine:junit-jupiter]/[class:org.apache.commons.text.lookup.UrlStringLookupTest]/[method:testHttpScheme()]
+ parent: [engine:junit-jupiter]/[class:org.apache.commons.text.lookup.UrlStringLookupTest]
+ source: MethodSource [className = 'org.apache.commons.text.lookup.UrlStringLookupTest', methodName = 'testHttpScheme', methodParameterTypes = '']
+ caught: java.lang.IllegalArgumentException: Error looking up URL [https://www.apache.org] with Charset [UTF-8].
+ at org.apache.commons.text.lookup.IllegalArgumentExceptions.format(IllegalArgumentExceptions.java:49)
+ at org.apache.commons.text.lookup.UrlStringLookup.lookup(UrlStringLookup.java:88)
+ at org.apache.commons.text.lookup.StringLookup.apply(StringLookup.java:66)
+ at org.apache.commons.text.lookup.UrlStringLookupTest.testHttpScheme(UrlStringLookupTest.java:63)
+ at java.base/java.lang.reflect.Method.invoke(Method.java:565)
+ at java.base/java.util.ArrayList.forEach(ArrayList.java:1604)
+ at java.base/java.util.ArrayList.forEach(ArrayList.java:1604)
+ Caused by: java.net.UnknownHostException: www.apache.org
+ at java.base/sun.nio.ch.NioSocketImpl.connect(NioSocketImpl.java:569)
+ at java.base/java.net.SocksSocketImpl.connect(SocksSocketImpl.java:284)
+ at java.base/java.net.Socket.connect(Socket.java:666)
+ at java.base/sun.security.ssl.SSLSocketImpl.connect(SSLSocketImpl.java:304)
+ at java.base/sun.security.ssl.BaseSSLSocketImpl.connect(BaseSSLSocketImpl.java:181)
+ at java.base/sun.net.NetworkClient.doConnect(NetworkClient.java:166)
+ at java.base/sun.net.www.http.HttpClient.openServer(HttpClient.java:516)
+ at java.base/sun.net.www.http.HttpClient.openServer(HttpClient.java:604)
+ at java.base/sun.net.www.protocol.https.HttpsClient.<init>(HttpsClient.java:206)
+ at java.base/sun.net.www.protocol.https.HttpsClient.New(HttpsClient.java:288)
+ at java.base/sun.net.www.protocol.https.AbstractDelegateHttpsURLConnection.getNewHttpClient(AbstractDelegateHttpsURLConnection.java:193)
+ at java.base/sun.net.www.protocol.http.HttpURLConnection.plainConnect0(HttpURLConnection.java:963)
+ at java.base/sun.net.www.protocol.http.HttpURLConnection.plainConnect(HttpURLConnection.java:899)
+ at java.base/sun.net.www.protocol.https.AbstractDelegateHttpsURLConnection.connect(AbstractDelegateHttpsURLConnection.java:179)
+ at java.base/sun.net.www.protocol.http.HttpURLConnection.getInputStream0(HttpURLConnection.java:1377)
+ at java.base/sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1302)
+ at java.base/sun.net.www.protocol.https.HttpsURLConnectionImpl.getInputStream(HttpsURLConnectionImpl.java:223)
+ at java.base/java.net.URL.openStream(URL.java:1263)
+ at org.apache.commons.text.lookup.UrlStringLookup.lookup(UrlStringLookup.java:79)
+ ... 5 more
+ duration: 2 ms
+ status: ✘ FAILED
+
+--- a/src/test/java/org/apache/commons/text/lookup/UrlStringLookupTest.java
++++ b/src/test/java/org/apache/commons/text/lookup/UrlStringLookupTest.java
+@@ -26,6 +26,7 @@ import java.nio.file.Path;
+ import java.nio.file.Paths;
+
+ import org.junit.jupiter.api.Assertions;
++import org.junit.jupiter.api.Disabled;
+ import org.junit.jupiter.api.Test;
+
+ /**
+@@ -58,6 +59,7 @@ class UrlStringLookupTest {
+ Assertions.assertEquals(expectedString, UrlStringLookup.INSTANCE.apply("UTF-8:" + uri.toString()));
+ }
+
++ @Disabled
+ @Test
+ void testHttpScheme() {
+ Assertions.assertNotNull(UrlStringLookup.INSTANCE.apply("UTF-8:https://www.apache.org"));
diff --git a/dev-java/commons-text/metadata.xml b/dev-java/commons-text/metadata.xml
new file mode 100644
index 000000000000..cbabee002e10
--- /dev/null
+++ b/dev-java/commons-text/metadata.xml
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "https://liguros.gitlab.io/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="project">
+ <email>java@gentoo.org</email>
+ <name>Java</name>
+ </maintainer>
+ <upstream>
+ <remote-id type="cpe">cpe:/a:apache:commons_text</remote-id>
+ </upstream>
+ <origin>gentoo-staging</origin>
+</pkgmetadata> \ No newline at end of file
diff --git a/dev-java/commons-validator/Manifest b/dev-java/commons-validator/Manifest
index ecae0abf17e8..c3a5b1b2ce6d 100644
--- a/dev-java/commons-validator/Manifest
+++ b/dev-java/commons-validator/Manifest
@@ -1,2 +1,4 @@
+DIST commons-validator-1.10.0-src.tar.gz 314716 BLAKE2B 403352ece53e0b5c00b92442403f7f0ea77e8e4be8638ced425a04e85d783dbecb865131642901a63072915eedb3eaab933c302ee85ad2a46dd21fc3f23aa227 SHA512 4a89e4b59c6cb255fbb827ec6b8561be12a79d9c1031be6e2fdd9416c4e7aef1917a2578a0c3265562c379081ce9b9c66d93a86d8eb440164c839de00ce15ab6
+DIST commons-validator-1.10.0-src.tar.gz.asc 488 BLAKE2B e6282fae3ff43cdc8bea09bf02ade315e71d370ea9dff3a5524b6584546b1f7d60822bac7d3764814aea284877d09cb68f9b26f31d73ef561eefb4547d3e3052 SHA512 b978babf8b8451976e449626c9685354035404c38cfddede638bdea3df7a7db17bb6196f592b1a625d1810aab7bb6da43cac6f11d7996d81bd5696d09a52352b
DIST commons-validator-1.9.0-src.tar.gz 296710 BLAKE2B e5f119cd7e6e1fe148038cb62a3bdc01e5d1b8dee37930e9369e331a398dbc86e3b1fdc1a618b69fce0f96c621d23a44f88dccd4a51cd6a4c6df81a3a4c8c3af SHA512 4e36f0ec5b1b8ae9724f020c51396332444d7359988fbcceaab004cde30e223b8130315e85d9b3d568fdc30399e9e503783bb81f217fe5f846f9e14c484a1fe0
DIST commons-validator-1.9.0-src.tar.gz.asc 488 BLAKE2B 0d7d76a24043c20eda4080273f1535a84256ca1c3b8d52a55b004c62f70f9f6ae481cb6d5667d5b0f0d7468d09041520627127597e1e8d81fc132348e2d8994d SHA512 fa68ae531f7678cb172be1ecd0181999619ef4e711930b880b07156a40f14adbf92fa09c971ab36055936cf6221fda800abc54800eba0aeb90fd95c38175d628
diff --git a/dev-java/commons-validator/commons-validator-1.10.0.ebuild b/dev-java/commons-validator/commons-validator-1.10.0.ebuild
new file mode 100644
index 000000000000..3426022c98aa
--- /dev/null
+++ b/dev-java/commons-validator/commons-validator-1.10.0.ebuild
@@ -0,0 +1,93 @@
+# Copyright 1999-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+JAVA_PKG_IUSE="doc source test"
+MAVEN_ID="commons-validator:commons-validator:${PV}"
+JAVA_TESTING_FRAMEWORKS="junit-jupiter"
+
+inherit java-pkg-2 java-pkg-simple junit5 verify-sig
+
+DESCRIPTION="Commons component to validate user input, or data input"
+HOMEPAGE="https://commons.apache.org/proper/commons-validator/"
+SRC_URI="mirror://apache/commons/validator/source/${P}-src.tar.gz
+ verify-sig? ( https://downloads.apache.org/commons/validator/source/${P}-src.tar.gz.asc )"
+S="${WORKDIR}/${P}-src"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~amd64"
+IUSE="log4j"
+
+BDEPEND="verify-sig? ( sec-keys/openpgp-keys-ggregory )"
+
+COMMON_DEPEND="
+ >=dev-java/commons-beanutils-1.11.0:0[log4j=]
+ dev-java/commons-collections:0
+ >=dev-java/commons-digester-2.1-r3:2.1[log4j=]
+ >=dev-java/commons-logging-1.3.5:0[log4j=]
+ log4j? (
+ dev-java/log4j-12-api:2
+ dev-java/log4j-api:2
+ )
+"
+
+# [-vintage] because, if junit:5 compiled with 'USE=vintage':
+# Error: Module junit not found, required by org.junit.vintage.engine
+DEPEND="
+ ${COMMON_DEPEND}
+ dev-java/jakarta-servlet-api:4
+ dev-java/slf4j-api:0
+ >=virtual/jdk-11:*
+ test? (
+ >=dev-java/commons-csv-1.14.0:0
+ >=dev-java/commons-codec-1.18.0:0
+ >=dev-java/commons-io-2.18.0:0
+ >=dev-java/commons-lang-3.17.0:3.6
+ dev-java/junit-clptr:0
+ dev-java/junit-pioneer:0
+ dev-java/junit:5[-vintage]
+ dev-java/opentest4j:0
+ )
+"
+
+RDEPEND="
+ ${COMMON_DEPEND}
+ >=virtual/jre-1.8:*
+"
+
+JAVA_CLASSPATH_EXTRA="jakarta-servlet-api-4 slf4j-api"
+JAVA_GENTOO_CLASSPATH="commons-beanutils commons-collections commons-digester-2.1 commons-logging"
+JAVA_INTERMEDIATE_JAR_NAME="org.apache.${PN/-/.}"
+JAVA_MODULE_INFO_OUT="src/main"
+JAVA_RESOURCE_DIRS="src/main/resources"
+JAVA_SRC_DIR="src/main/java"
+JAVA_TEST_GENTOO_CLASSPATH="
+ commons-csv
+ commons-codec
+ commons-io
+ commons-lang-3.6
+ junit-clptr
+ junit-pioneer
+ junit-5
+ opentest4j
+"
+JAVA_TEST_RESOURCE_DIRS="src/test/resources"
+JAVA_TEST_SRC_DIR="src/test/java"
+VERIFY_SIG_OPENPGP_KEY_PATH="/usr/share/openpgp-keys/ggregory.asc"
+
+src_prepare() {
+ java-pkg-2_src_prepare
+
+ if use log4j; then
+ JAVA_GENTOO_CLASSPATH+="
+ log4j-12-api-2
+ log4j-api-2
+ "
+ fi
+
+ # src/test/java/org/apache/commons/validator/routines/IBANValidatorTest.java:52: error: cannot find symbol
+ # import org.junit.jupiter.params.provider.FieldSource;
+ rm src/test/java/org/apache/commons/validator/routines/IBANValidatorTest.java || die
+}
diff --git a/dev-java/compile-testing/Manifest b/dev-java/compile-testing/Manifest
new file mode 100644
index 000000000000..b69d2c00e794
--- /dev/null
+++ b/dev-java/compile-testing/Manifest
@@ -0,0 +1 @@
+DIST compile-testing-0.23.0.tar.gz 64643 BLAKE2B b67aa411b0fa96ec6dd4d3d01da73b333b2ef3edaea4db85af6a3b890497bba80849ee8cddbaa56225704bba72a570cc44ac11c62fb84993b2bbb13c88decdb1 SHA512 691c1b02bfc12992f5167d33568e487a25855a4bca32e876a8e4fedb7893a0b6a4df81d58e0999c30698c70e5fcfb2ec91be268efafb7513f665625427cc40dc
diff --git a/dev-java/compile-testing/compile-testing-0.23.0.ebuild b/dev-java/compile-testing/compile-testing-0.23.0.ebuild
new file mode 100644
index 000000000000..bd6f29f79a19
--- /dev/null
+++ b/dev-java/compile-testing/compile-testing-0.23.0.ebuild
@@ -0,0 +1,63 @@
+# Copyright 2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+# Trouble with 'doc', seems to need '--add-exports'?
+JAVA_PKG_IUSE="source test"
+JAVA_TESTING_FRAMEWORKS="junit-4"
+
+inherit java-pkg-2 java-pkg-simple
+
+DESCRIPTION="Testing tools for javac and annotation processors"
+HOMEPAGE="https://github.com/google/compile-testing"
+SRC_URI="https://github.com/google/compile-testing/archive/v${PV}.tar.gz -> ${P}.tar.gz"
+S="${WORKDIR}/${P}"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~amd64"
+
+DEPEND="
+ dev-java/auto-value:0
+ dev-java/checker-framework-qual:0
+ dev-java/error-prone-annotations:0
+ dev-java/escapevelocity:0
+ >=dev-java/guava-33.4.8:0
+ dev-java/incap:0
+ dev-java/javapoet:0
+ dev-java/junit:4
+ dev-java/truth:0
+ >=virtual/jdk-1.8:*
+ test? (
+ >=dev-java/guava-testlib-33.4.8:0
+ dev-java/jspecify:0
+ )
+"
+
+RDEPEND=">=virtual/jre-1.8:*"
+
+JAVA_CLASSPATH_EXTRA="auto-value checker-framework-qual error-prone-annotations guava junit-4 truth"
+JAVA_SRC_DIR="src/main/java"
+JAVA_TEST_GENTOO_CLASSPATH="guava-testlib jspecify junit-4"
+JAVA_TEST_RESOURCE_DIRS="src/test/resources"
+JAVA_TEST_SRC_DIR="src/test/java"
+
+src_compile() {
+ # get processorpath
+ local pp="$(java-pkg_getjar --build-only auto-value auto-value.jar)" # processor
+ pp="${pp}:$(java-pkg_getjar --build-only auto-value auto-common.jar)" # dependencies
+ pp="${pp}:$(java-pkg_getjars --build-only escapevelocity,guava,incap,javapoet)"
+
+ JAVAC_ARGS=" -processorpath ${pp} -s src/main/java"
+
+ java-pkg-simple_src_compile
+}
+
+src_test() {
+ local vm_version="$(java-config -g PROVIDES_VERSION)"
+ if ver_test "${vm_version}" -ge 17; then
+ JAVA_TEST_EXTRA_ARGS=( --add-exports=jdk.compiler/com.sun.tools.javac.{api,file,parser,tree,util}=ALL-UNNAMED)
+ fi
+ java-pkg-simple_src_test
+}
diff --git a/dev-java/compile-testing/metadata.xml b/dev-java/compile-testing/metadata.xml
new file mode 100644
index 000000000000..a63267abaf71
--- /dev/null
+++ b/dev-java/compile-testing/metadata.xml
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "https://liguros.gitlab.io/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="project">
+ <email>java@gentoo.org</email>
+ </maintainer>
+
+ <origin>gentoo-staging</origin>
+</pkgmetadata> \ No newline at end of file
diff --git a/dev-java/easymock/Manifest b/dev-java/easymock/Manifest
index 36d55f52bdad..411a08b9d5eb 100644
--- a/dev-java/easymock/Manifest
+++ b/dev-java/easymock/Manifest
@@ -1,2 +1,4 @@
+DIST dexmaker-1.5.jar 703669 BLAKE2B fec6e8b6bf34473479e80af389509f7f69330b9fe2e8fd5e703f6ab6b294ff00346088a886320edabd7d84c653129beafc619b057b510b34db52a8f77536790c SHA512 c0a60a89b3733ca78e259088a09cfaa35928eba4d91fbc206ebb2f8e52e111b8bd47a2124e6a83b0024fbbb9d18d858e0fb93d87a1bd53513d93d2b0e48f4651
DIST easymock-2.5.2.tar.gz 100112 BLAKE2B 2952aad1a88b169413152e8fa63eaba85767d93ccd8535e309cb647b90ad86695da59c394d1199abfb6f1c624913b2546f326ae5a68092261968d734d2018c5c SHA512 0343815f74258739ac60e1ef2fe72a0e9ce0e1b6ecd4f14d657d7da2a10523e24df5160533b0d75e87ffa0322a3477ec6823b257fe5968929d55dee9dfa68267
DIST easymock-3.3.1.tar.gz 624460 BLAKE2B bb5a472aef6c162d3afe5b66edef4891cc48fe6698c1f1eccc7f45f1883ff7f940b0479af5c0dd61b3354b41225ca50f191ba54b92479362a0074ddf3dbb5b43 SHA512 93fefd458a42b6c13d85ab1df768bf906620f052eea88116e93578374a5086eb8b27d8731e82b689dc3d73699e45d03b718c7d8bf2a430ac4a6a717365e52a9a
+DIST easymock-5.6.0.tar.gz 843206 BLAKE2B 62bbd74b89eec118a724665e854429c36cccac84d2e24ad42e09fac9d1028dcfdfa3d1076c19dece969b17ea70396ae762cc2b690a458987033db1bc39d25b0c SHA512 8df6be9fd352207cacdc65de1e804ebc3c6d6ee0d7d3a39ca8ede873fdb13962c7131d98d5e298483030239dc4fc45da6f415433a349b29088b93ba6d3a3f04f
diff --git a/dev-java/easymock/easymock-5.6.0.ebuild b/dev-java/easymock/easymock-5.6.0.ebuild
new file mode 100644
index 000000000000..089dc0db5454
--- /dev/null
+++ b/dev-java/easymock/easymock-5.6.0.ebuild
@@ -0,0 +1,48 @@
+# Copyright 1999-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+JAVA_PKG_IUSE="doc source test"
+MAVEN_ID="org.easymock:easymock:5.6.0"
+JAVA_TESTING_FRAMEWORKS="junit-jupiter"
+
+inherit java-pkg-2 java-pkg-simple junit5
+
+DESCRIPTION="Mock Objects for interfaces in JUnit tests by generating them on the fly"
+HOMEPAGE="https://easymock.org/"
+DMV="1.5" # dexmaker isn't yet packaged
+SRC_URI="https://github.com/${PN}/${PN}/archive/${P}.tar.gz
+ https://repo1.maven.org/maven2/org/droidparts/dexmaker/dexmaker/${DMV}/dexmaker-${DMV}.jar"
+S="${WORKDIR}/${PN}-${P}"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~amd64"
+
+DEPEND="
+ >=dev-java/byte-buddy-1.17.5:0
+ dev-java/junit:4
+ dev-java/junit:5
+ dev-java/objenesis:0
+ >=virtual/jdk-1.8:*
+ test? (
+ >=dev-java/asm-9.8-r1:0
+ )
+"
+
+RDEPEND=">=virtual/jre-1.8:*"
+
+JAVA_CLASSPATH_EXTRA="byte-buddy junit-4 junit-5 objenesis"
+JAVA_GENTOO_CLASSPATH_EXTRA="${DISTDIR}/dexmaker-${DMV}.jar"
+JAVA_SRC_DIR="core/src/main/java"
+JAVA_TEST_GENTOO_CLASSPATH="asm byte-buddy junit-5"
+JAVA_TEST_SRC_DIR="core/src/test/java"
+
+src_prepare() {
+ java-pkg-2_src_prepare
+
+ # error: package org.testng does not exist
+ # this class seems to be needed only for running with testng
+ rm core/src/main/java/org/easymock/EasyMockListener.java || die
+}
diff --git a/dev-java/escapevelocity/Manifest b/dev-java/escapevelocity/Manifest
new file mode 100644
index 000000000000..e69917bee169
--- /dev/null
+++ b/dev-java/escapevelocity/Manifest
@@ -0,0 +1 @@
+DIST escapevelocity-1.1.tar.gz 58423 BLAKE2B 99cc70fd9f9bb966a15f3fa0802f4980e9601bf3f8f928e2be446a34750135c9447fb1f8fa41f55285a2982903deb82e933b5ea12bcc93fbe6a33d72c70c0d29 SHA512 b5f73f85f72a79302e8e923408421286b3d8bb9d9b7d4268f925ec8862511c6050e98c14055825ab7e8ad85f76a9a7e0302101bf26d9987952773d52956ec0c5
diff --git a/dev-java/escapevelocity/escapevelocity-1.1.ebuild b/dev-java/escapevelocity/escapevelocity-1.1.ebuild
new file mode 100644
index 000000000000..90f4836332a7
--- /dev/null
+++ b/dev-java/escapevelocity/escapevelocity-1.1.ebuild
@@ -0,0 +1,39 @@
+# Copyright 1999-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+JAVA_PKG_IUSE="doc source test"
+JAVA_TESTING_FRAMEWORKS="junit-4"
+
+inherit java-pkg-2 java-pkg-simple
+
+DESCRIPTION="A reimplementation of a subset of the Apache Velocity templating system."
+HOMEPAGE="https://github.com/google/escapevelocity"
+SRC_URI="https://github.com/google/${PN}/archive/${P}.tar.gz"
+S="${WORKDIR}/${PN}-${P}"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~amd64"
+
+CP_DEPEND=">=dev-java/guava-33.4.8:0"
+
+DEPEND="
+ ${CP_DEPEND}
+ >=virtual/jdk-1.8:*
+ test? (
+ >=dev-java/guava-testlib-33.4.8:0
+ dev-java/velocity:0
+ dev-java/truth:0
+ )
+"
+
+RDEPEND="
+ ${CP_DEPEND}
+ >=virtual/jre-1.8:*
+"
+
+JAVA_SRC_DIR="src/main/java"
+JAVA_TEST_GENTOO_CLASSPATH="guava-testlib,junit-4,truth,velocity"
+JAVA_TEST_SRC_DIR="src/test/java"
diff --git a/dev-java/escapevelocity/metadata.xml b/dev-java/escapevelocity/metadata.xml
new file mode 100644
index 000000000000..a63267abaf71
--- /dev/null
+++ b/dev-java/escapevelocity/metadata.xml
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "https://liguros.gitlab.io/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="project">
+ <email>java@gentoo.org</email>
+ </maintainer>
+
+ <origin>gentoo-staging</origin>
+</pkgmetadata> \ No newline at end of file
diff --git a/dev-java/gson/Manifest b/dev-java/gson/Manifest
index e21ed0c2effb..31ace9b67fe4 100644
--- a/dev-java/gson/Manifest
+++ b/dev-java/gson/Manifest
@@ -1,2 +1,3 @@
DIST gson-parent-2.11.0.tar.gz 458360 BLAKE2B 88d242c725b054ac5e7e3ef31f312f77dd03aea29f6604770253564d80f84cd752b43d74dd416785836d08884e462275f8ec924a00e2ffee195c0237bc2bac0b SHA512 1834b7c95f0a40ff1bcf8088f3ffdb8332ae38d452bab4ad2c9271421e75a9236645d1ee0fdb58c2f32eac86cf503afa3de19f08eb422cc91c4d32e370c36eac
+DIST gson-parent-2.13.2.tar.gz 467484 BLAKE2B 46f60960c35aa268eaa4d1f0264f824f32f44d780a353bf4b2208a5fb7351c88a4d04248ca215dfd11ace6ea8ed8c4080e7342e818ddf1d30aace9d004b92043 SHA512 042eec392b52d040579fa23f48edc08f469d970e04904422e8173893f5c700a4ec3df34fec4feecc9da7197d4784392a37cfc8dbde355dcbbca22fe4e7bc1c11
DIST truth-1.1.3.jar 243021 BLAKE2B a59149038c62ef5dd352b13d4b393e1b7715fbafe5ed86ec2d16d722c738a31dcdca10132fc73b17b367ac4309e5407ba2e489f8d4c8fbca60ce5f35ae75d1e3 SHA512 f29a9fb070aff8a32358a7b6c8998c0095de5d8d68afa7f7bac759c7050309deff929e767657ecbbefd96163460f10255ca01bc567ab30df4834b9d916a4fae8
diff --git a/dev-java/gson/gson-2.13.2.ebuild b/dev-java/gson/gson-2.13.2.ebuild
new file mode 100644
index 000000000000..d0c6e3472c1c
--- /dev/null
+++ b/dev-java/gson/gson-2.13.2.ebuild
@@ -0,0 +1,74 @@
+# Copyright 1999-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+JAVA_PKG_IUSE="doc source test"
+JAVA_TESTING_FRAMEWORKS="junit-4"
+
+inherit java-pkg-2 java-pkg-simple
+
+DESCRIPTION="Gson JSON library"
+HOMEPAGE="https://github.com/google/gson"
+SRC_URI="https://github.com/google/gson/archive/gson-parent-${PV}.tar.gz"
+S="${WORKDIR}/gson-gson-parent-${PV}/gson"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~amd64"
+
+DEPEND="
+ >=dev-java/error-prone-annotations-2.41.0:0
+ >=virtual/jdk-11:*
+ test? (
+ >=dev-java/guava-33.4.8:0
+ >=dev-java/guava-testlib-33.4.8:0
+ dev-java/truth:0
+ )
+"
+
+RDEPEND=">=virtual/jre-1.8:*"
+
+DOCS=(
+ ../CHANGELOG.md
+ ../GsonDesignDocument.md
+ ../README.md
+ ../Troubleshooting.md
+ ../UserGuide.md
+)
+
+JAVA_CLASSPATH_EXTRA="error-prone-annotations"
+JAVA_INTERMEDIATE_JAR_NAME="com.google.gson"
+JAVA_RELEASE_SRC_DIRS=( ["9"]="src/main/java9" )
+JAVA_RESOURCE_DIRS="src/main/resources"
+JAVA_SRC_DIR=( src/main/java{,-templates} )
+
+# requires the test class to be obfuscated using proguard which we do not have atm
+JAVA_TEST_EXCLUDES=( "com.google.gson.functional.EnumWithObfuscatedTest" )
+
+JAVA_TEST_GENTOO_CLASSPATH="guava guava-testlib junit-4 truth"
+JAVA_TEST_RESOURCE_DIRS="src/test/resources"
+JAVA_TEST_SRC_DIR="src/test/java"
+
+src_prepare() {
+ java-pkg-2_src_prepare
+
+ sed -e "s/\${project.version}/${PV}/g" \
+ -i src/main/java-templates/com/google/gson/internal/GsonBuildConfig.java \
+ || die "Failed to set version"
+
+ # Upstream builds it as META-INF/versions/9/module-info.class
+ mkdir -p src/main/java9 || die "mkdir java9"
+ mv src/main/java{,9}/module-info.java || die "move module-info.java"
+}
+
+src_test() {
+ # src/test/java/com/google/gson/functional/Java17RecordTest.java:78:
+ # error: records are not supported in -source 11
+ local vm_version="$(java-config -g PROVIDES_VERSION)"
+ if ver_test "${vm_version}" -ge 17 ; then
+ JAVAC_ARGS="--source 17 --target 17" java-pkg-simple_src_test
+ else
+ einfo "Tests need at least Java 17"
+ fi
+}
diff --git a/dev-java/incap/Manifest b/dev-java/incap/Manifest
new file mode 100644
index 000000000000..1b0d846c2c26
--- /dev/null
+++ b/dev-java/incap/Manifest
@@ -0,0 +1 @@
+DIST incap-1.0.0.tar.gz 78422 BLAKE2B ea57247fa613a97c557a1c3b6f15e4a5d1d961f39e099be99cce9743541614e273b7833ddef856bcb4a6db73c5f93e072e65701727d5018c958d9352bdca00e6 SHA512 e6b0c0c9b3d387b30258d0d814e3ea5dc6bca01e718260ca9eb4d32d7610c762e8c049a1878de70d5c77daf8b62c90b7dd83df05b3ebd05918ecef02629f9429
diff --git a/dev-java/incap/incap-1.0.0.ebuild b/dev-java/incap/incap-1.0.0.ebuild
new file mode 100644
index 000000000000..213e9846d5a4
--- /dev/null
+++ b/dev-java/incap/incap-1.0.0.ebuild
@@ -0,0 +1,22 @@
+# Copyright 1999-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+JAVA_PKG_IUSE="doc source"
+
+inherit java-pkg-2 java-pkg-simple
+
+DESCRIPTION="Helper library for building incremental annotation processors"
+HOMEPAGE="https://github.com/tbroyer/gradle-incap-helper"
+SRC_URI="https://github.com/tbroyer/gradle-incap-helper/archive/v${PV}.tar.gz -> ${P}.tar.gz"
+S="${WORKDIR}/gradle-incap-helper-${PV}"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~amd64"
+
+DEPEND=">=virtual/jdk-1.8:*"
+RDEPEND=">=virtual/jre-1.8:*"
+
+JAVA_SRC_DIR="lib/src/main/java"
diff --git a/dev-java/incap/metadata.xml b/dev-java/incap/metadata.xml
new file mode 100644
index 000000000000..a63267abaf71
--- /dev/null
+++ b/dev-java/incap/metadata.xml
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "https://liguros.gitlab.io/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="project">
+ <email>java@gentoo.org</email>
+ </maintainer>
+
+ <origin>gentoo-staging</origin>
+</pkgmetadata> \ No newline at end of file
diff --git a/dev-java/javapoet/Manifest b/dev-java/javapoet/Manifest
new file mode 100644
index 000000000000..a4d2145a040e
--- /dev/null
+++ b/dev-java/javapoet/Manifest
@@ -0,0 +1 @@
+DIST javapoet-1.13.0.tar.gz 89919 BLAKE2B 5e4cf550ee122a2ddefcd089ffa448a10ef700851d8496d8c130283094bfbeb5997dd373fcd24c5b3739654889d2ebbe3bd9909e7ae3e0c790c3fc2c11de2745 SHA512 3c6118dd57529f6c56e0361f2b07bbc754d9140134cd324109ce6ba4b82e434551ef4409bbba0c7176c2ea10e94e03df014fd8e922162e370b4042999dae270a
diff --git a/dev-java/javapoet/files/javapoet-1.13.0-ClassNameTest.patch b/dev-java/javapoet/files/javapoet-1.13.0-ClassNameTest.patch
new file mode 100644
index 000000000000..38e028d15aa0
--- /dev/null
+++ b/dev-java/javapoet/files/javapoet-1.13.0-ClassNameTest.patch
@@ -0,0 +1,83 @@
+There was 1 failure:
+1) classNameFromTypeElementDoesntUseGetKind(com.squareup.javapoet.ClassNameTest)
+org.mockito.exceptions.base.MockitoException:
+Mockito cannot mock this class: class com.sun.tools.javac.code.Symbol$ClassSymbol.
+
+Mockito can only mock non-private & non-final classes.
+If you're not sure why you're getting this error, please report to the mailing list.
+
+
+Java : 25
+JVM vendor name : Gentoo
+JVM vendor version : 25+17
+JVM name : OpenJDK 64-Bit Server VM
+JVM version : 25+17
+JVM info : mixed mode, sharing
+OS name : Linux
+OS version : 6.12.21-gentoo
+
+
+Underlying exception : org.mockito.exceptions.base.MockitoException:
+Could not force module adjustment of the module of class com.sun.tools.javac.code.Symbol$ClassSymbol
+
+This is required to adjust the module graph to enable mock creation
+ at com.squareup.javapoet.ClassNameTest.preventGetKind(ClassNameTest.java:134)
+ at com.squareup.javapoet.ClassNameTest.classNameFromTypeElementDoesntUseGetKind(ClassNameTest.java:122)
+ ... 45 trimmed
+Caused by: org.mockito.exceptions.base.MockitoException:
+Could not force module adjustment of the module of class com.sun.tools.javac.code.Symbol$ClassSymbol
+
+This is required to adjust the module graph to enable mock creation
+ at net.bytebuddy.TypeCache.findOrInsert(TypeCache.java:168)
+ at net.bytebuddy.TypeCache$WithInlineExpunction.findOrInsert(TypeCache.java:399)
+ at net.bytebuddy.TypeCache.findOrInsert(TypeCache.java:190)
+ at net.bytebuddy.TypeCache$WithInlineExpunction.findOrInsert(TypeCache.java:410)
+ ... 48 more
+Caused by: java.lang.IllegalArgumentException: com.sun.tools.javac.code.Symbol$ClassSymbol$MockitoModuleProbe$58544662 must be defined in the same package as org.mockito.codegen.InjectionBase
+ at net.bytebuddy.dynamic.loading.ClassInjector$UsingLookup.injectRaw(ClassInjector.java:1683)
+ at net.bytebuddy.dynamic.loading.ClassInjector$AbstractBase.injectRaw(ClassInjector.java:167)
+ at net.bytebuddy.dynamic.loading.ClassInjector$AbstractBase.inject(ClassInjector.java:155)
+ at net.bytebuddy.dynamic.loading.ClassLoadingStrategy$UsingLookup.load(ClassLoadingStrategy.java:519)
+ at net.bytebuddy.dynamic.TypeResolutionStrategy$Passive.initialize(TypeResolutionStrategy.java:101)
+ at net.bytebuddy.dynamic.DynamicType$Default$Unloaded.load(DynamicType.java:6432)
+ at org.mockito.internal.creation.bytebuddy.ModuleHandler$ModuleSystemFound.adjustModuleGraph(ModuleHandler.java:198)
+ at org.mockito.internal.creation.bytebuddy.SubclassBytecodeGenerator.mockClass(SubclassBytecodeGenerator.java:106)
+ at org.mockito.internal.creation.bytebuddy.TypeCachingBytecodeGenerator$1.call(TypeCachingBytecodeGenerator.java:37)
+ at org.mockito.internal.creation.bytebuddy.TypeCachingBytecodeGenerator$1.call(TypeCachingBytecodeGenerator.java:34)
+ at net.bytebuddy.TypeCache.findOrInsert(TypeCache.java:168)
+ at net.bytebuddy.TypeCache$WithInlineExpunction.findOrInsert(TypeCache.java:399)
+ at net.bytebuddy.TypeCache.findOrInsert(TypeCache.java:190)
+ at net.bytebuddy.TypeCache$WithInlineExpunction.findOrInsert(TypeCache.java:410)
+ at org.mockito.internal.creation.bytebuddy.TypeCachingBytecodeGenerator.mockClass(TypeCachingBytecodeGenerator.java:32)
+ at org.mockito.internal.creation.bytebuddy.SubclassByteBuddyMockMaker.createMockType(SubclassByteBuddyMockMaker.java:71)
+ at org.mockito.internal.creation.bytebuddy.SubclassByteBuddyMockMaker.createMock(SubclassByteBuddyMockMaker.java:42)
+ at org.mockito.internal.creation.bytebuddy.ByteBuddyMockMaker.createMock(ByteBuddyMockMaker.java:25)
+ at org.mockito.internal.util.MockUtil.createMock(MockUtil.java:35)
+ at org.mockito.internal.MockitoCore.mock(MockitoCore.java:62)
+ at org.mockito.Mockito.spy(Mockito.java:1992)
+ ... 48 more
+
+FAILURES!!!
+Tests run: 383, Failures: 1
+
+With Java versions 21 and lower the tests pass.
+
+--- a/src/test/java/com/squareup/javapoet/ClassNameTest.java
++++ b/src/test/java/com/squareup/javapoet/ClassNameTest.java
+@@ -21,6 +21,7 @@ import javax.lang.model.element.TypeElement;
+ import javax.lang.model.util.Elements;
+ import org.junit.Rule;
+ import org.junit.Test;
++import org.junit.Ignore;
+ import org.junit.runner.RunWith;
+ import org.junit.runners.JUnit4;
+ import org.mockito.Mockito;
+@@ -116,7 +117,7 @@ public final class ClassNameTest {
+ * Buck builds with "source-based ABI generation" and those builds don't support
+ * {@link TypeElement#getKind()}. Test to confirm that we don't use that API.
+ */
+- @Test public void classNameFromTypeElementDoesntUseGetKind() {
++ @Test @Ignore public void classNameFromTypeElementDoesntUseGetKind() {
+ Elements elements = compilationRule.getElements();
+ TypeElement object = elements.getTypeElement(Object.class.getCanonicalName());
+ assertThat(ClassName.get(preventGetKind(object)).toString())
diff --git a/dev-java/javapoet/files/javapoet-1.13.0-skipFailingTests.patch b/dev-java/javapoet/files/javapoet-1.13.0-skipFailingTests.patch
new file mode 100644
index 000000000000..79d7665c4c91
--- /dev/null
+++ b/dev-java/javapoet/files/javapoet-1.13.0-skipFailingTests.patch
@@ -0,0 +1,46 @@
+
+
+There was 1 failure:
+1) overrideGenerics(com.squareup.javapoet.MethodSpecTest)
+expected:
+ @java.lang.Override
+ <T, R, V extends java.lang.Throwable> T run(R param) throws V {
+ return null;
+ }
+
+but was:
+ @java.lang.Override
+ <T, R, V extends java.lang.Throwable> T run(R arg0) throws V {
+ return null;
+ }
+
+ at com.squareup.javapoet.MethodSpecTest.overrideGenerics(MethodSpecTest.java:167)
+
+FAILURES!!!
+Tests run: 384, Failures: 1
+
+Built and tests run with Java 21.
+
+Testing with java 25 would need asm-jdk-bridge built with target 25:
+Caused by: java.lang.IllegalStateException:
+Could not invoke proxy: Type not available on current VM: codes.rafael.asmjdkbridge.JdkClassWriter
+
+--- a/src/test/java/com/squareup/javapoet/MethodSpecTest.java
++++ b/src/test/java/com/squareup/javapoet/MethodSpecTest.java
+@@ -39,6 +39,7 @@ import javax.tools.JavaFileObject;
+ import org.junit.Before;
+ import org.junit.Rule;
+ import org.junit.Test;
++import org.junit.Ignore;
+
+ import static com.google.common.collect.Iterables.getOnlyElement;
+ import static com.google.common.truth.Truth.assertThat;
+@@ -158,7 +159,7 @@ public final class MethodSpecTest {
+ + "}\n");
+ }
+
+- @Test public void overrideGenerics() {
++ @Test @Ignore public void overrideGenerics() {
+ TypeElement classElement = getElement(Generics.class);
+ ExecutableElement methodElement = getOnlyElement(methodsIn(classElement.getEnclosedElements()));
+ MethodSpec method = MethodSpec.overriding(methodElement)
diff --git a/dev-java/javapoet/javapoet-1.13.0.ebuild b/dev-java/javapoet/javapoet-1.13.0.ebuild
new file mode 100644
index 000000000000..eae3a16fa9e3
--- /dev/null
+++ b/dev-java/javapoet/javapoet-1.13.0.ebuild
@@ -0,0 +1,75 @@
+# Copyright 1999-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+JAVA_PKG_IUSE="doc source test"
+JAVA_TESTING_FRAMEWORKS="junit-4"
+
+inherit java-pkg-2 java-pkg-simple
+
+DESCRIPTION="Use beautiful Java code to generate beautiful Java code."
+HOMEPAGE="https://github.com/square/javapoet/"
+SRC_URI="https://github.com/square/${PN}/archive/${P}.tar.gz"
+S="${WORKDIR}/${PN}-${P}"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~amd64"
+
+DEPEND="
+ >=virtual/jdk-1.8:*
+ test? (
+ dev-java/eclipse-ecj:4.20
+ dev-java/compile-testing:0
+ dev-java/jimfs:0
+ dev-java/junit:4
+ dev-java/mockito:2
+ dev-java/truth:0
+ )
+"
+
+RDEPEND=">=virtual/jre-1.8:*"
+
+PATCHES=(
+ "${FILESDIR}/javapoet-1.13.0-skipFailingTests.patch"
+ "${FILESDIR}/javapoet-1.13.0-ClassNameTest.patch" # works with Java <= 21
+)
+
+JAVA_AUTOMATIC_MODULE_NAME="com.squareup.javapoet"
+JAVA_SRC_DIR="src/main/java"
+
+JAVA_TEST_EXCLUDES=(
+ com.squareup.javapoet.TestUtil # no runnable methods
+ com.squareup.javapoet.TestFiler # no runnable methods
+)
+
+JAVA_TEST_GENTOO_CLASSPATH="
+ compile-testing
+ eclipse-ecj-4.20
+ jimfs
+ junit-4
+ mockito-2
+"
+
+JAVA_TEST_SRC_DIR="src/test/java"
+
+src_prepare() {
+ default #780585
+ java-pkg-2_src_prepare
+}
+
+src_test() {
+ # Having 'truth' in JAVA_TEST_GENTOO_CLASSPATH would cause one test failure
+ # on 'compileJavaFile(com.squareup.javapoet.FileReadingTest)'.
+ # The eclass builds that classpath '--with-dependencies' which would add the
+ # annotation processor so that annotation processing gets enabled.
+ JAVA_GENTOO_CLASSPATH_EXTRA+=":$(java-pkg_getjars --build-only truth)"
+
+ local vm_version="$(java-config -g PROVIDES_VERSION)"
+ if ver_test "${vm_version}" -ge 17; then
+ JAVA_TEST_EXTRA_ARGS+=( --add-opens=java.base/java.lang.reflect=ALL-UNNAMED )
+ JAVA_TEST_EXTRA_ARGS+=( --add-opens=jdk.compiler/com.sun.tools.javac.code=ALL-UNNAMED )
+ fi
+ java-pkg-simple_src_test
+}
diff --git a/dev-java/javapoet/metadata.xml b/dev-java/javapoet/metadata.xml
new file mode 100644
index 000000000000..a63267abaf71
--- /dev/null
+++ b/dev-java/javapoet/metadata.xml
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "https://liguros.gitlab.io/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="project">
+ <email>java@gentoo.org</email>
+ </maintainer>
+
+ <origin>gentoo-staging</origin>
+</pkgmetadata> \ No newline at end of file
diff --git a/dev-java/jimfs/Manifest b/dev-java/jimfs/Manifest
index b43255dddabd..c36c7826655c 100644
--- a/dev-java/jimfs/Manifest
+++ b/dev-java/jimfs/Manifest
@@ -1,2 +1,3 @@
DIST jimfs-1.3.0.tar.gz 157568 BLAKE2B 1febcf132c162ebb87ec9507bc12e05d6a9354195f36b0e198fd50faa22284608adafd1989a79390271ced4c063dda44c477fc7ae051c32960afca0f4f2ee2b7 SHA512 1c769ba74d45de1656fd30bd695b61caaa5ec9bd6c6e051310d371012fa6c746d0b2ba85d3f94490ebfb9f74ca75f173b879144673f8e3af8fde1a132725490d
+DIST jimfs-1.3.1.tar.gz 157004 BLAKE2B 71ec4c814f0b349778ec62b7eba4314d6c78b7ee824661add8aa8f3270b791ce8d851e497a516ba7999b02ddf536730175969a2ad375b40e0c0b81f94d423a51 SHA512 a724c55175af454ad676c302391753855e7bc445027007426620d0575c4f096ff6c2d8fe96575e7936349063923e320ea8ac38c9e6f773078ba17fde07e9dddf
DIST truth-1.1.3.jar 243021 BLAKE2B a59149038c62ef5dd352b13d4b393e1b7715fbafe5ed86ec2d16d722c738a31dcdca10132fc73b17b367ac4309e5407ba2e489f8d4c8fbca60ce5f35ae75d1e3 SHA512 f29a9fb070aff8a32358a7b6c8998c0095de5d8d68afa7f7bac759c7050309deff929e767657ecbbefd96163460f10255ca01bc567ab30df4834b9d916a4fae8
diff --git a/dev-java/jimfs/jimfs-1.3.1.ebuild b/dev-java/jimfs/jimfs-1.3.1.ebuild
new file mode 100644
index 000000000000..118e100869f2
--- /dev/null
+++ b/dev-java/jimfs/jimfs-1.3.1.ebuild
@@ -0,0 +1,71 @@
+# Copyright 1999-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+JAVA_PKG_IUSE="doc source test"
+MAVEN_ID="com.google.jimfs:jimfs:${PV}"
+JAVA_TESTING_FRAMEWORKS="junit-4"
+
+inherit java-pkg-2 java-pkg-simple
+
+DESCRIPTION="An in-memory file system for Java 7+"
+HOMEPAGE="https://github.com/google/jimfs"
+SRC_URI="https://github.com/google/jimfs/archive/v${PV}.tar.gz -> ${P}.tar.gz"
+S="${WORKDIR}/${P}/jimfs"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~amd64"
+
+CP_DEPEND="
+ dev-java/auto-service-annotations:0
+ >=dev-java/error-prone-annotations-2.41.0:0
+ >=dev-java/guava-33.4.8:0
+ >=dev-java/icu4j-77.1:0
+ dev-java/jsr305:0
+"
+
+DEPEND="
+ ${CP_DEPEND}
+ >=dev-java/checker-framework-qual-3.49.5:0
+ >=virtual/jdk-1.8:*
+ test? (
+ >=dev-java/guava-testlib-33.4.8:0
+ dev-java/truth:0
+ )
+"
+
+RDEPEND="
+ ${CP_DEPEND}
+ >=virtual/jre-1.8:*
+"
+
+JAVA_AUTOMATIC_MODULE_NAME="com.google.common.jimfs"
+JAVA_CLASSPATH_EXTRA="checker-framework-qual"
+JAVA_RESOURCE_DIRS="src/main/res"
+JAVA_SRC_DIR="src/main/java"
+JAVA_TEST_GENTOO_CLASSPATH="guava-testlib junit-4 truth"
+JAVA_TEST_SRC_DIR="src/test/java"
+
+src_prepare() {
+ java-pkg-2_src_prepare
+ mkdir -p src/main/res/META-INF/services || die
+ echo "com.google.common.jimfs.SystemJimfsFileSystemProvider" > \
+ src/main/res/META-INF/services/java.nio.file.spi.FileSystemProvider || die
+}
+
+src_test() {
+ # Using the defaults of java-pkg-simple would exclude
+ # several tests which are run by "mvn test".
+ local JAVA_TEST_RUN_ONLY=$(find src/test/java \
+ -name "*Test.java" \
+ ! -name AbstractGlob*.java \
+ ! -name AbstractPathMatcherTest.java \
+ ! -name AbstractJimfsIntegrationTest.java \
+ ! -name AbstractAttributeProviderTest.java \
+ -printf '%P\n')
+ JAVA_TEST_RUN_ONLY="${JAVA_TEST_RUN_ONLY//.java}"
+ JAVA_TEST_RUN_ONLY="${JAVA_TEST_RUN_ONLY//\//.}"
+ java-pkg-simple_src_test
+}
diff --git a/dev-java/jnr-ffi/files/jnr-ffi-2.2.17-r1-GetLoadedLibrariesTest.patch b/dev-java/jnr-ffi/files/jnr-ffi-2.2.17-r1-GetLoadedLibrariesTest.patch
new file mode 100644
index 000000000000..969d8e4233d7
--- /dev/null
+++ b/dev-java/jnr-ffi/files/jnr-ffi-2.2.17-r1-GetLoadedLibrariesTest.patch
@@ -0,0 +1,98 @@
+testLazyLoadedLibrary()
+ tags: []
+ uniqueId: [engine:junit-jupiter]/[class:jnr.ffi.GetLoadedLibrariesTest]/[method:testLazyLoadedLibrary()]
+ parent: [engine:junit-jupiter]/[class:jnr.ffi.GetLoadedLibrariesTest]
+ source: MethodSource [className = 'jnr.ffi.GetLoadedLibrariesTest', methodName = 'testLazyLoadedLibrary', methodParameterTypes = '']
+ caught: org.opentest4j.AssertionFailedError: expected: <true> but was: <false>
+ at org.junit.jupiter.api.AssertionFailureBuilder.build(AssertionFailureBuilder.java:151)
+ at org.junit.jupiter.api.AssertionFailureBuilder.buildAndThrow(AssertionFailureBuilder.java:132)
+ at org.junit.jupiter.api.AssertTrue.failNotTrue(AssertTrue.java:63)
+ at org.junit.jupiter.api.AssertTrue.assertTrue(AssertTrue.java:36)
+ at org.junit.jupiter.api.AssertTrue.assertTrue(AssertTrue.java:31)
+ at org.junit.jupiter.api.Assertions.assertTrue(Assertions.java:183)
+ at jnr.ffi.GetLoadedLibrariesTest.testLazyLoadedLibrary(GetLoadedLibrariesTest.java:51)
+ at java.base/java.lang.reflect.Method.invoke(Method.java:566)
+ at java.base/java.util.ArrayList.forEach(ArrayList.java:1541)
+ at java.base/java.util.ArrayList.forEach(ArrayList.java:1541)
+ duration: 80 ms
+ status: ✘ FAILED
+testLoadedLibraryCorrect()
+ tags: []
+ uniqueId: [engine:junit-jupiter]/[class:jnr.ffi.GetLoadedLibrariesTest]/[method:testLoadedLibraryCorrect()]
+ parent: [engine:junit-jupiter]/[class:jnr.ffi.GetLoadedLibrariesTest]
+ source: MethodSource [className = 'jnr.ffi.GetLoadedLibrariesTest', methodName = 'testLoadedLibraryCorrect', methodParameterTypes = '']
+ caught: org.opentest4j.AssertionFailedError: expected: <true> but was: <false>
+ at org.junit.jupiter.api.AssertionFailureBuilder.build(AssertionFailureBuilder.java:151)
+ at org.junit.jupiter.api.AssertionFailureBuilder.buildAndThrow(AssertionFailureBuilder.java:132)
+ at org.junit.jupiter.api.AssertTrue.failNotTrue(AssertTrue.java:63)
+ at org.junit.jupiter.api.AssertTrue.assertTrue(AssertTrue.java:36)
+ at org.junit.jupiter.api.AssertTrue.assertTrue(AssertTrue.java:31)
+ at org.junit.jupiter.api.Assertions.assertTrue(Assertions.java:183)
+ at jnr.ffi.GetLoadedLibrariesTest.testLoadedLibraryCorrect(GetLoadedLibrariesTest.java:40)
+ at java.base/java.lang.reflect.Method.invoke(Method.java:566)
+ at java.base/java.util.ArrayList.forEach(ArrayList.java:1541)
+ at java.base/java.util.ArrayList.forEach(ArrayList.java:1541)
+ duration: 23 ms
+ status: ✘ FAILED
+testMultipleInstancesOfSameLibrary()
+ tags: []
+ uniqueId: [engine:junit-jupiter]/[class:jnr.ffi.GetLoadedLibrariesTest]/[method:testMultipleInstancesOfSameLibrary()]
+ parent: [engine:junit-jupiter]/[class:jnr.ffi.GetLoadedLibrariesTest]
+ source: MethodSource [className = 'jnr.ffi.GetLoadedLibrariesTest', methodName = 'testMultipleInstancesOfSameLibrary', methodParameterTypes = '']
+ caught: org.opentest4j.AssertionFailedError: expected: <3> but was: <19>
+ at org.junit.jupiter.api.AssertionFailureBuilder.build(AssertionFailureBuilder.java:151)
+ at org.junit.jupiter.api.AssertionFailureBuilder.buildAndThrow(AssertionFailureBuilder.java:132)
+ at org.junit.jupiter.api.AssertEquals.failNotEqual(AssertEquals.java:197)
+ at org.junit.jupiter.api.AssertEquals.assertEquals(AssertEquals.java:150)
+ at org.junit.jupiter.api.AssertEquals.assertEquals(AssertEquals.java:145)
+ at org.junit.jupiter.api.Assertions.assertEquals(Assertions.java:531)
+ at jnr.ffi.GetLoadedLibrariesTest.testMultipleInstancesOfSameLibrary(GetLoadedLibrariesTest.java:78)
+ at java.base/java.lang.reflect.Method.invoke(Method.java:566)
+ at java.base/java.util.ArrayList.forEach(ArrayList.java:1541)
+ at java.base/java.util.ArrayList.forEach(ArrayList.java:1541)
+ duration: 10 ms
+ status: ✘ FAILED
+
+--- a/src/test/java/jnr/ffi/GetLoadedLibrariesTest.java
++++ b/src/test/java/jnr/ffi/GetLoadedLibrariesTest.java
+@@ -1,5 +1,6 @@
+ package jnr.ffi;
+
++import org.junit.jupiter.api.Disabled;
+ import org.junit.jupiter.api.Test;
+
+ import java.util.List;
+@@ -20,7 +21,7 @@ public class GetLoadedLibrariesTest {
+ private static final String LIB_NAME = "test";
+
+ // A correct library has loaded correctly, is shown in getLoadedLibraries, and when GC'd, is removed
+- @Test
++ @Test @Disabled
+ public void testLoadedLibraryCorrect() {
+ TestLib testLib = LibraryLoader.loadLibrary(TestLib.class, null, LIB_NAME);
+ assertNotNull(testLib);
+@@ -41,7 +42,7 @@ public class GetLoadedLibrariesTest {
+ }
+
+ // Library that didn't load yet doesn't show up in getLoadedLibraries
+- @Test
++ @Test @Disabled
+ public void testLazyLoadedLibrary() {
+ // because of lazy loading behavior, empty mappings don't load anything
+ EmptyLib testLib = LibraryLoader.loadLibrary(EmptyLib.class, null, LIB_NAME);
+@@ -65,7 +66,7 @@ public class GetLoadedLibrariesTest {
+ }
+
+ // Multiple instances of same library show up as a loaded library for each one
+- @Test
++ @Test @Disabled
+ public void testMultipleInstancesOfSameLibrary() {
+ TestLib testLib0 = LibraryLoader.loadLibrary(TestLib.class, null, LIB_NAME);
+ assertNotNull(testLib0);
+@@ -89,4 +90,4 @@ public class GetLoadedLibrariesTest {
+
+ public static interface EmptyLib {
+ }
+-}
+\ No newline at end of file
++}
diff --git a/dev-java/jnr-ffi/jnr-ffi-2.2.17.ebuild b/dev-java/jnr-ffi/jnr-ffi-2.2.17-r1.ebuild
index 3768005266ee..0b67722dce01 100644
--- a/dev-java/jnr-ffi/jnr-ffi-2.2.17.ebuild
+++ b/dev-java/jnr-ffi/jnr-ffi-2.2.17-r1.ebuild
@@ -3,12 +3,11 @@
EAPI=8
-JAVA_PKG_IUSE="doc source"
+JAVA_PKG_IUSE="doc source test"
+JAVA_TESTING_FRAMEWORKS="junit-jupiter"
MAVEN_ID="com.github.jnr:jnr-ffi:2.2.17"
-# We don't have junit-jupiter yet
-# JAVA_TESTING_FRAMEWORKS="junit-jupiter"
-inherit java-pkg-2 java-pkg-simple
+inherit java-pkg-2 java-pkg-simple junit5 toolchain-funcs
DESCRIPTION="A library for invoking native functions from java"
HOMEPAGE="https://github.com/jnr/jnr-ffi"
@@ -20,7 +19,7 @@ SLOT="0"
KEYWORDS="amd64 arm64 ppc64"
CP_DEPEND="
- dev-java/asm:9
+ dev-java/asm:0
>=dev-java/jffi-1.3.13:0
dev-java/jnr-a64asm:2
dev-java/jnr-x86asm:1.0
@@ -29,6 +28,7 @@ CP_DEPEND="
DEPEND="
${CP_DEPEND}
>=virtual/jdk-1.8:*
+ test? ( dev-java/opentest4j:0 )
"
RDEPEND="
@@ -36,4 +36,19 @@ RDEPEND="
>=virtual/jre-1.8:*
"
+PATCHES=( "${FILESDIR}/jnr-ffi-2.2.17-r1-GetLoadedLibrariesTest.patch" )
+
JAVA_SRC_DIR="src/main/java"
+JAVA_TEST_EXTRA_ARGS=( -Djava.library.path=build )
+JAVA_TEST_GENTOO_CLASSPATH="junit-5 opentest4j"
+JAVA_TEST_SRC_DIR="src/test/java"
+
+src_prepare() {
+ default #780585
+ java-pkg-2_src_prepare
+}
+
+src_test() {
+ emake -f libtest/GNUmakefile CC="$(tc-getCC)"
+ junit5_src_test
+}
diff --git a/dev-java/junit-pioneer/Manifest b/dev-java/junit-pioneer/Manifest
new file mode 100644
index 000000000000..d13dcc87a819
--- /dev/null
+++ b/dev-java/junit-pioneer/Manifest
@@ -0,0 +1 @@
+DIST junit-pioneer-1.9.1.tar.gz 323481 BLAKE2B e55fdeda0bfcac123e49300cdf8625fd71379b516175035c0a2ef2a62f6fc47c41cc0ae8d2b67f83aa88773d74bc7d3a64c628b496efd5371753cabc00e10f47 SHA512 0d9f5536e9c1f3d4686d4a5343f0480d4a1ba82e9ed59c07fc885a366c3469f2b5099223ea88aa7a2f388cf3d9354e7780f88609915aec72fc364a7705f40dc1
diff --git a/dev-java/junit-pioneer/junit-pioneer-1.9.1.ebuild b/dev-java/junit-pioneer/junit-pioneer-1.9.1.ebuild
new file mode 100644
index 000000000000..26581990ea26
--- /dev/null
+++ b/dev-java/junit-pioneer/junit-pioneer-1.9.1.ebuild
@@ -0,0 +1,30 @@
+# Copyright 2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+# We cannot run the tests because of too many missing test dependencies.
+JAVA_PKG_IUSE="doc source"
+
+inherit java-pkg-2 java-pkg-simple
+
+DESCRIPTION="JUnit 5 Extension Pack"
+HOMEPAGE="https://junit-pioneer.org"
+SRC_URI="https://github.com/junit-pioneer/junit-pioneer/archive/v${PV}.tar.gz -> ${P}.tar.gz"
+S="${WORKDIR}/${P}"
+
+LICENSE="EPL-2.0"
+SLOT="0"
+KEYWORDS="~amd64"
+
+DEPEND="
+ dev-java/jackson-databind:0
+ dev-java/junit:5
+ >=virtual/jdk-11:*
+"
+
+RDEPEND=">=virtual/jre-1.8:*"
+
+JAVA_CLASSPATH_EXTRA="jackson-databind junit-5"
+JAVA_RESOURCE_DIRS="src/main/resources"
+JAVA_SRC_DIR=( src/main/{java,module} )
diff --git a/dev-java/junit-pioneer/metadata.xml b/dev-java/junit-pioneer/metadata.xml
new file mode 100644
index 000000000000..a63267abaf71
--- /dev/null
+++ b/dev-java/junit-pioneer/metadata.xml
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "https://liguros.gitlab.io/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="project">
+ <email>java@gentoo.org</email>
+ </maintainer>
+
+ <origin>gentoo-staging</origin>
+</pkgmetadata> \ No newline at end of file
diff --git a/dev-java/snappy-java/Manifest b/dev-java/snappy-java/Manifest
index 8b163656615f..c1ca8962f301 100644
--- a/dev-java/snappy-java/Manifest
+++ b/dev-java/snappy-java/Manifest
@@ -1,2 +1,3 @@
DIST hadoop-common-3.3.5.jar 4535144 BLAKE2B 66582661a1832cc54493fc9dcea9076eb0e3f4e974a7d24d593e8fff2b9e2a3a82ed6eb4587f23523473aecc35d2a15de2ad81b2617c1bdac50847149cdeb6a8 SHA512 f1fb439a5853b04e9e771ec4e80e1ed078494ecfaa741abe065936fc1c26b5369fdd4e8082f4da59c1a3a7a5c025beaa14a68c38dc772e81499f83a3cb91717b
DIST snappy-java-1.1.10.7.tar.gz 3953515 BLAKE2B 40657085a25186b7c78024196406002a39afe26e97145f57a438d783fb512c0168b48ef3f38d9d123954458c56e593f8490a5069a1712bb7d4ec86cf425a828c SHA512 1d7f484202f6bfd59454d56a9f57b0795f0919ae607e0bfd4da0b58c0caae437ae3c3f8638699a94b0b4794197a03058c3b5e258c5cf87b95683587a3e8396fe
+DIST snappy-java-1.1.10.8.tar.gz 4063792 BLAKE2B ca8761e169353f01d190a3c11d5d45fef96645771f60dcb7e55d49ce963c0b3f5f6059ee27771aa0f3d65248efa76fd4bc22440773ddf2c8a2c59fe7f599e151 SHA512 219d16f098b8d9c7b1248b713f9e9485293d7ad23cde77a1efa9179aa0add37851439e2f6a215eb5dc8fe68a607998cb7b7e8feb8eaee69dffae7d5a887ef793
diff --git a/dev-java/snappy-java/snappy-java-1.1.10.8.ebuild b/dev-java/snappy-java/snappy-java-1.1.10.8.ebuild
new file mode 100644
index 000000000000..02d69c3252c7
--- /dev/null
+++ b/dev-java/snappy-java/snappy-java-1.1.10.8.ebuild
@@ -0,0 +1,157 @@
+# Copyright 1999-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+JAVA_PKG_IUSE="doc source test"
+MAVEN_ID="org.xerial.snappy:snappy-java:${PV}"
+JAVA_TESTING_FRAMEWORKS="junit-4"
+
+inherit edo check-reqs java-pkg-2 java-pkg-simple toolchain-funcs
+
+DESCRIPTION="Snappy compressor/decompressor for Java"
+HOMEPAGE="https://github.com/xerial/snappy-java/"
+# ::gentoo does not have hadoop-common packaged. Currently we bundle the binary version.
+# It's used for testing only and does not get installed.
+HCV="3.3.5"
+SRC_URI="https://github.com/xerial/snappy-java/archive/v${PV}.tar.gz -> ${P}.tar.gz
+ test? ( https://repo1.maven.org/maven2/org/apache/hadoop/hadoop-common/${HCV}/hadoop-common-${HCV}.jar )"
+S="${WORKDIR}/${P}"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~amd64"
+
+CP_DEPEND="dev-java/osgi-core:0"
+
+CDEPEND="
+ app-arch/snappy
+ >=dev-libs/bitshuffle-0.3.5-r1
+"
+
+DEPEND="
+ >=virtual/jdk-1.8:*
+ ${CP_DEPEND}
+ ${CDEPEND}
+ test? (
+ >=dev-java/ant-1.10.15:0[junit4]
+ >=dev-java/commons-io-2.20.0:0
+ >=dev-java/commons-lang-3.18.0:0
+ dev-java/plexus-classworlds:0
+ dev-java/xerial-core:0
+ )
+"
+
+RDEPEND="
+ >=virtual/jre-1.8:*
+ ${CP_DEPEND}
+ ${CDEPEND}
+"
+
+PATCHES=(
+ "${FILESDIR}/snappy-1.1.10.5-SnappyOutputStreamTest.patch"
+ "${FILESDIR}/snappy-java-1.1.10.7-skipFailingTest.patch"
+)
+
+JAVA_RESOURCE_DIRS="src/main/resources"
+JAVA_SRC_DIR="src/main/java"
+
+JAVA_TEST_GENTOO_CLASSPATH="
+ commons-io
+ commons-lang
+ junit-4
+ plexus-classworlds
+ xerial-core
+"
+
+JAVA_TEST_RESOURCE_DIRS="src/test/resources"
+JAVA_TEST_SRC_DIR="src/test/java"
+
+check_env() {
+ if use test; then
+ # this is needed only for tests
+ CHECKREQS_MEMORY="2560M"
+ check-reqs_pkg_pretend
+ fi
+}
+
+pkg_pretend() {
+ check_env
+}
+
+pkg_setup() {
+ check_env
+ java-pkg-2_pkg_setup
+}
+
+src_prepare() {
+ default #780585
+ java-pkg-2_src_prepare
+ # remove pre-compiled sofiles
+ rm -r src/main/resources/org/xerial/snappy/native || die
+ rm -r src/test/resources/lib || die
+}
+
+compile_lib() {
+ edo "$(tc-getCC)" "${@}" ${CFLAGS} ${CPPFLAGS} ${LDFLAGS} \
+ $(java-pkg_get-jni-cflags)
+}
+
+src_compile() {
+ java-pkg-simple_src_compile
+
+ # Create some directories, Java 8 doesn't do it for us.
+ mkdir -p build/objects target/jni-classes || die "mkdir"
+
+ einfo "Generate headers"
+ ejavac \
+ -h build/jni-headers \
+ -d target/jni-classes \
+ -sourcepath src/main/java \
+ src/main/java/org/xerial/snappy/SnappyNative.java \
+ src/main/java/org/xerial/snappy/BitShuffleNative.java
+
+ einfo "Generate native library"
+ compile_lib -o build/objects/BitShuffleNative.o \
+ -Ibuild/build/jni-headers \
+ -c src/main/java/org/xerial/snappy/BitShuffleNative.cpp
+
+ compile_lib -o build/objects/SnappyNative.o \
+ -Ibuild/build/jni-headers \
+ -c src/main/java/org/xerial/snappy/SnappyNative.cpp
+
+ compile_lib -o build/objects/libsnappyjava.so \
+ build/objects/{SnappyNative.o,BitShuffleNative.o} \
+ -shared -lsnappy -lbitshuffle
+}
+
+src_test() {
+ JAVA_GENTOO_CLASSPATH_EXTRA="${DISTDIR}/hadoop-common-${HCV}.jar"
+
+ # Setting use.systemlib=true is essential.
+ JAVA_TEST_EXTRA_ARGS=(
+ -Xmx${CHECKREQS_MEMORY}
+ -Djava.library.path=build/objects
+ -Dorg.xerial.snappy.use.systemlib=true
+ --enable-native-access=ALL-UNNAMED
+ )
+ local vm_version="$(java-config -g PROVIDES_VERSION)"
+ if ver_test "${vm_version}" -ge 17; then
+ java-pkg-simple_src_test
+ else
+ einfo "Tests need jdk-17 to pass."
+ fi
+}
+
+src_install() {
+ java-pkg-simple_src_install
+
+ local jniext=.so
+ if [[ ${CHOST} == *-darwin* ]] ; then
+ jniext=.jnilib
+ # avoid install_name check failure
+ install_name_tool -id "@loader_path/libsnappyjava${jniext}" \
+ "target/libsnappyjava${jniext}"
+ fi
+ java-pkg_doso "build/objects/libsnappyjava${jniext}"
+}
diff --git a/dev-java/truth/Manifest b/dev-java/truth/Manifest
new file mode 100644
index 000000000000..265dbce18185
--- /dev/null
+++ b/dev-java/truth/Manifest
@@ -0,0 +1 @@
+DIST truth-1.4.5.tar.gz 344929 BLAKE2B 8e4b4b5ff4943d11f32cbd6aa18eeb66d7af992a6fb4074059011d07503c1a49c3111f4f88bf4195a31574f156163465ff233611b77459e1ed636ad9c4573eb4 SHA512 1bb22f55b431249242cdd5af466644417ff989cd5b56e2d5cb64245cf1ac438f40852b86cf29f41de482ae4b5b7ae45ef8bd0a1dd1d2b9be2712fb4c2455feb0
diff --git a/dev-java/truth/metadata.xml b/dev-java/truth/metadata.xml
new file mode 100644
index 000000000000..a63267abaf71
--- /dev/null
+++ b/dev-java/truth/metadata.xml
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "https://liguros.gitlab.io/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="project">
+ <email>java@gentoo.org</email>
+ </maintainer>
+
+ <origin>gentoo-staging</origin>
+</pkgmetadata> \ No newline at end of file
diff --git a/dev-java/truth/truth-1.4.5.ebuild b/dev-java/truth/truth-1.4.5.ebuild
new file mode 100644
index 000000000000..c0bf7ec51522
--- /dev/null
+++ b/dev-java/truth/truth-1.4.5.ebuild
@@ -0,0 +1,72 @@
+# Copyright 2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+JAVA_PKG_IUSE="doc source test"
+JAVA_TESTING_FRAMEWORKS="junit-4"
+
+inherit java-pkg-2 java-pkg-simple
+
+DESCRIPTION="Fluent assertions for Java and Android"
+HOMEPAGE="https://truth.dev/"
+SRC_URI="https://github.com/google/truth/archive/v${PV}.tar.gz -> ${P}.tar.gz"
+S="${WORKDIR}/${P}"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~amd64"
+
+DEPEND="
+ dev-java/asm:0
+ dev-java/auto-value:0
+ dev-java/escapevelocity:0
+ >=dev-java/guava-33.4.8:0
+ >=dev-java/guava-testlib-33.4.8:0
+ dev-java/incap:0
+ dev-java/javapoet:0
+ dev-java/jspecify:0
+ dev-java/junit:4
+ >=virtual/jdk-1.8:*
+"
+
+RDEPEND=">=virtual/jre-1.8:*"
+
+JAVA_CLASSPATH_EXTRA="asm,auto-value,guava,jspecify,junit-4"
+JAVA_SRC_DIR="core/src/main/java"
+JAVA_TEST_EXCLUDES=(
+ com.google.common.truth.BaseSubjectTestCase # No runnable methods
+ com.google.common.truth.PlatformBaseSubjectTestCase # No runnable methods
+ com.google.common.truth.TestCorrespondences # No runnable methods
+ com.google.common.truth.TestPlatform # No runnable methods
+ com.google.common.truth.NoJUnitTest # No runnable methods
+ com.google.common.truth.ActualValueInferenceTest # run it in a second step
+)
+JAVA_TEST_GENTOO_CLASSPATH="guava-testlib,junit-4"
+JAVA_TEST_SRC_DIR="core/src/test/java"
+
+src_prepare() {
+ java-pkg-2_src_prepare
+ rm -r core/src/{main,test}/java/com/google/common/truth/super || die "remove super"
+ rm -r core/src/test/java/com/google/common/truth/gwt || die "remove gwt"
+}
+
+src_compile() {
+ # get processorpath
+ local pp="$(java-pkg_getjar --build-only auto-value auto-value.jar)"
+ pp="${pp}:$(java-pkg_getjar --build-only auto-value auto-common.jar)"
+ pp="${pp}:$(java-pkg_getjars --build-only escapevelocity,guava,incap,javapoet)"
+
+ JAVAC_ARGS=" -processorpath ${pp} -s core/src/main/java"
+
+ java-pkg-simple_src_compile
+}
+
+src_test() {
+ JAVA_TEST_RUN_ONLY=( com.google.common.truth.ActualValueInferenceTest )
+ JAVA_TEST_EXTRA_ARGS=( -Dcom.google.common.truth.enable_infer_description_for_expect_failure=true )
+ java-pkg-simple_src_test
+ JAVA_TEST_RUN_ONLY=()
+ JAVA_TEST_EXTRA_ARGS=( -Dcom.google.common.truth.enable_infer_description_for_expect_failure=false )
+ java-pkg-simple_src_test
+}
diff --git a/dev-java/zstd-jni/Manifest b/dev-java/zstd-jni/Manifest
index 058ed6af6eed..c61dfed0c880 100644
--- a/dev-java/zstd-jni/Manifest
+++ b/dev-java/zstd-jni/Manifest
@@ -1 +1,2 @@
DIST zstd-jni-1.5.2.5.tar.gz 9342510 BLAKE2B 259f3087f06c567f2126dacfb90ecfcc1d20f389ff99ef48a6f8c558441b37b56f29b73ca55aad176116439c4ef47f9ad253116a968f74e527eb13a0fda98f7e SHA512 16f2aeee6005e2da366a849f0972b3ef9245d355ed875e633bf4013d340cc74445604710e7b628aefafa90f74dfaa82a93c741f06f633b8a6c2162e9da304850
+DIST zstd-jni-1.5.7.4.tar.gz 13408429 BLAKE2B 04fa91c4101c26c789a11d50e1fdf772af0778205ebc4f65f7439fb3fc72ededb03b450823c8b0943bf8ae41ca955b9bf3725f8802b620d11558c6a242fc579a SHA512 e72505421a390b1dbeedb2c20cbf6cfae12a693798e62c059c9fa4cd39481dc5ee52582acccbe22ca8756c5dc233a5269d9248882d5a336757f2f8c5232d36e0
diff --git a/dev-java/zstd-jni/zstd-jni-1.5.7.4.ebuild b/dev-java/zstd-jni/zstd-jni-1.5.7.4.ebuild
new file mode 100644
index 000000000000..9871001f1807
--- /dev/null
+++ b/dev-java/zstd-jni/zstd-jni-1.5.7.4.ebuild
@@ -0,0 +1,62 @@
+# Copyright 1999-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+JAVA_PKG_IUSE="doc source"
+MAVEN_ID="com.github.luben:zstd-jni:1.5.7-4"
+
+inherit cmake java-pkg-2 java-pkg-simple
+
+DESCRIPTION="JNI bindings for Zstd native library"
+HOMEPAGE="https://github.com/luben/zstd-jni"
+SRC_URI="https://github.com/luben/zstd-jni/archive/v$(ver_rs 3 -).tar.gz -> ${P}.tar.gz"
+S="${WORKDIR}/zstd-jni-$(ver_rs 3 -)"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~amd64 ~arm64 ~ppc64"
+
+RDEPEND=">=virtual/jre-1.8:*"
+DEPEND=">=virtual/jdk-1.8:*"
+
+JAVA_AUTOMATIC_MODULE_NAME="com.github.luben.zstd_jni"
+JAVA_RESOURCE_DIRS="resources"
+JAVA_SRC_DIR="src/main/java"
+
+src_prepare() {
+ cmake_src_prepare
+ # https://github.com/luben/zstd-jni/blob/c1.5.2-5/build.gradle#L66
+ cat > src/main/java/com/github/luben/zstd/util/ZstdVersion.java <<-EOF || die
+ package com.github.luben.zstd.util;
+
+ public class ZstdVersion
+ {
+ public static final String VERSION = "$(ver_rs 3 -)";
+ }
+ EOF
+
+ mkdir -p resources/META-INF || die
+ echo "Implementation-Version: $(ver_rs 3 -)" \
+ > resources/META-INF/MANIFEST.MF || die
+}
+
+src_configure() {
+ local mycmakeargs=(
+ -DJAVA_HOME="$(java-config -g JAVA_HOME)"
+ # Resolve bug #776910
+ # Reference: https://stackoverflow.com/a/51764145
+ -DJAVA_AWT_LIBRARY="NotNeeded"
+ )
+ cmake_src_configure
+}
+
+src_compile() {
+ cmake_src_compile
+ java-pkg-simple_src_compile
+}
+
+src_install() {
+ java-pkg_doso "${BUILD_DIR}/libzstd-jni-$(ver_rs 3 -).so"
+ java-pkg-simple_src_install
+}