summaryrefslogtreecommitdiff
path: root/dev-java
diff options
context:
space:
mode:
Diffstat (limited to 'dev-java')
-rw-r--r--dev-java/Manifest.gzbin54051 -> 54556 bytes
-rw-r--r--dev-java/animal-sniffer-annotations/Manifest2
-rw-r--r--dev-java/animal-sniffer-annotations/animal-sniffer-annotations-1.15-r1.ebuild1
-rw-r--r--dev-java/commons-compress/Manifest2
-rw-r--r--dev-java/commons-compress/commons-compress-1.21-r1.ebuild121
-rw-r--r--dev-java/easymock/Manifest6
-rw-r--r--dev-java/easymock/easymock-2.5.2.ebuild57
-rw-r--r--dev-java/easymock/easymock-3.3.1-r1.ebuild2
-rw-r--r--dev-java/easymock/files/easymock-2.5.5-nameClash.patch230
-rw-r--r--dev-java/easymock/files/easymock-2.5.5-tests2nameClash.patch420
-rw-r--r--dev-java/felix-framework/Manifest3
-rw-r--r--dev-java/felix-framework/felix-framework-7.0.5.ebuild106
-rw-r--r--dev-java/felix-framework/metadata.xml12
-rw-r--r--dev-java/felix-resolver/Manifest3
-rw-r--r--dev-java/felix-resolver/felix-resolver-2.0.4.ebuild71
-rw-r--r--dev-java/felix-resolver/metadata.xml11
-rw-r--r--dev-java/felix-utils/Manifest4
-rw-r--r--dev-java/felix-utils/felix-utils-1.11.8.ebuild59
-rw-r--r--dev-java/felix-utils/files/felix-utils-1.11.8-Port-to-osgi-cmpn.patch123
-rw-r--r--dev-java/felix-utils/metadata.xml11
-rw-r--r--dev-java/jakarta-servlet-api/Manifest2
-rw-r--r--dev-java/jakarta-servlet-api/jakarta-servlet-api-4.0.4.ebuild2
-rw-r--r--dev-java/junitparams/Manifest2
-rw-r--r--dev-java/junitparams/junitparams-1.1.1-r1.ebuild2
-rw-r--r--dev-java/zstd-jni/Manifest2
-rw-r--r--dev-java/zstd-jni/zstd-jni-1.5.2.4.ebuild67
26 files changed, 1314 insertions, 7 deletions
diff --git a/dev-java/Manifest.gz b/dev-java/Manifest.gz
index 3bdfc2912631..4ab9c189e7be 100644
--- a/dev-java/Manifest.gz
+++ b/dev-java/Manifest.gz
Binary files differ
diff --git a/dev-java/animal-sniffer-annotations/Manifest b/dev-java/animal-sniffer-annotations/Manifest
index f0f1c0a0920a..350daa388b32 100644
--- a/dev-java/animal-sniffer-annotations/Manifest
+++ b/dev-java/animal-sniffer-annotations/Manifest
@@ -1,3 +1,3 @@
DIST animal-sniffer-parent-1.15.tar.gz 77766 BLAKE2B 6d99959c457d032e69f5a5109dc9ae80660db0a3fa34e2ebfdd7e3941a33e19f0078a05f3c6d561760a89584b2826bca6ef40dd7f5ea943b32ae43a4f2ed403b SHA512 8d0f6baa86fcb79fc54b826eff0f7c390d236d3cfc285914d3645e3bd9c72612c039eb0f1c3c2a9fbaca43040d967a2a69e10a9e5713682d1e441e44f3b55eb1
-EBUILD animal-sniffer-annotations-1.15-r1.ebuild 654 BLAKE2B 89caf59ab9ea56307ef9894ba5d3e297466a5baf6251d1f16bb56659d8eba8ca58189204ada14137e015358a0332fb2616c877f6d68950ddda9a71ce8223816e SHA512 e3388314a81b0e13c35c2ac338d2a1dbe8df6f243209a63c73a6b7fcb9a4f607b160debbe51f6f73e7ec004c4a0adf10126c47c2a4b50753c1a8955b460d8d7a
+EBUILD animal-sniffer-annotations-1.15-r1.ebuild 715 BLAKE2B 4e7d2adc63c32ba495f0f1fbae3fde8da81dba83b9e1169665f0d926ee499202f2ed41eee1fe4c35b0ff79afa20205d42be31a531cb3d6545547b1d719faf58b SHA512 bc9673afd0faf77510ccb8e569d9dbf7ffde62840bf18a7be442b35bbc549f1856edc35299af8fd263c0e66bd03ea4d4d200d3a69bea6e20340b05c716a2e0af
MISC metadata.xml 325 BLAKE2B 96e92a307063c6d997316abf0b9395c65445907c3141313f07aa336eed839cb909f624bce9b67d6960c7703b79537e136beaf01025d7cf39dcbbe6262a0093f8 SHA512 032db77bc61e5e86c039cb49faa6d50363e4b94c0b14b2ef5192e8ee6fdba3592616e1970ad6f87d662ad01b187627e7b6fb6774664839fa549e76aa3e9bbe7b
diff --git a/dev-java/animal-sniffer-annotations/animal-sniffer-annotations-1.15-r1.ebuild b/dev-java/animal-sniffer-annotations/animal-sniffer-annotations-1.15-r1.ebuild
index 12973df6f557..265decdfdc6f 100644
--- a/dev-java/animal-sniffer-annotations/animal-sniffer-annotations-1.15-r1.ebuild
+++ b/dev-java/animal-sniffer-annotations/animal-sniffer-annotations-1.15-r1.ebuild
@@ -5,6 +5,7 @@ EAPI=8
MY_PN="${PN%-annotations}"
JAVA_PKG_IUSE="doc source"
+MAVEN_ID="org.codehaus.mojo:animal-sniffer-annotations:1.15"
inherit java-pkg-2 java-pkg-simple
diff --git a/dev-java/commons-compress/Manifest b/dev-java/commons-compress/Manifest
index ed3c6749043b..b25108c47ed1 100644
--- a/dev-java/commons-compress/Manifest
+++ b/dev-java/commons-compress/Manifest
@@ -1,4 +1,6 @@
AUX commons-compress-1.21-asm7+.patch 7037 BLAKE2B 49270e040492c413fb9f26ce81dde2e7594a02b48d4dfd68bfe977eefc9d41e21e585d1a0d2e56803d08d1af617f8c2d0e3f3d3b0cffa893bfc8d2d3c50b6d9d SHA512 6722a9fb119d72c7061d12b94452fac40eef63be7610eee81ddc115c346610e5e4caca0cbf659ec9e7ff1a58f9def4ebfef26476b915bc74299a1f984d2eb29c
DIST commons-compress-1.21-sources.tar.gz 15165800 BLAKE2B 3fed32af039860c6b434c485f0c78939ed810a224a12680ddf1d9d6ed540f4e74530edd0e0077fd41af31404c296a607db912465cfd725c31446bc6fa7b8df8a SHA512 8041371b491057435ca62390e70b30031e4d21e80c37d9cb922fdffa794b56aee3b5d60d8241e4db0cecc28c82dfdaafbe52b2175e26062da169fec8efbb17e1
+DIST commons-compress-1.21-src.tar.gz 15165800 BLAKE2B 3fed32af039860c6b434c485f0c78939ed810a224a12680ddf1d9d6ed540f4e74530edd0e0077fd41af31404c296a607db912465cfd725c31446bc6fa7b8df8a SHA512 8041371b491057435ca62390e70b30031e4d21e80c37d9cb922fdffa794b56aee3b5d60d8241e4db0cecc28c82dfdaafbe52b2175e26062da169fec8efbb17e1
+EBUILD commons-compress-1.21-r1.ebuild 4317 BLAKE2B 61a9348d45a6c8c6f7822079aa5f8185b46924d29ef15c014491d63a5aa1a2a5e4b822f9c410161196c71873072b5455ce8f9b6f3529656e04c1490cff82016b SHA512 496391fdcc5f31dee2769babf43ce6d00d81d15b5bcfa477ea30893dea3ca8bef03822fdf0df4185fbfbbb9a0b7e2528752ebfa3a540d9bb2ab86a1a23563fab
EBUILD commons-compress-1.21.ebuild 2369 BLAKE2B 64f03ba92636ab8f747552423d4745232649e7a13486c98737b80d330c8bf3e7473794262b50deca2c182ac09241a60c9ba1418fd1c1dbfdfd20f1eb413e8dd7 SHA512 650f15362bfcc8ff7376d39264d54c5bee8a16faa4052f06323faff97e4df5c3464af9f69c95bc8f172613cd75e2c0a733858f69a6963d7698e72fb39af3bd47
MISC metadata.xml 233 BLAKE2B 2b385ca77219f08b2874b3a4a91a0c836d3cb45ec44b05babb33d590c56ceb5337ecb93a8450a37f8e6bbf4cfc1455892e8142d22e0a1d527d40361e2dce350b SHA512 1acc975a7dc3344bc63282d652ca00d8245970b58353b4fd00f09a4859db3eaba2dcd85e1537d424b7174e4f9c01c2ffb10ec6d107b5c895c9ca20730666de7f
diff --git a/dev-java/commons-compress/commons-compress-1.21-r1.ebuild b/dev-java/commons-compress/commons-compress-1.21-r1.ebuild
new file mode 100644
index 000000000000..a5870641d1c2
--- /dev/null
+++ b/dev-java/commons-compress/commons-compress-1.21-r1.ebuild
@@ -0,0 +1,121 @@
+# Copyright 1999-2022 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+# Skeleton command:
+# java-ebuilder --generate-ebuild --workdir . --pom pom.xml --download-uri https://apache.miloslavbrada.cz//commons/compress/source/commons-compress-1.21-src.tar.gz --slot 0 --keywords "~amd64 ~arm64 ~x86" --ebuild commons-compress-1.21.ebuild
+
+EAPI=8
+
+JAVA_PKG_IUSE="doc source test"
+MAVEN_ID="org.apache.commons:commons-compress:1.21"
+JAVA_TESTING_FRAMEWORKS="junit-4"
+
+inherit java-pkg-2 java-pkg-simple
+
+DESCRIPTION="Java API for working with archive files"
+HOMEPAGE="https://commons.apache.org/proper/commons-compress/"
+SRC_URI="mirror://apache/commons/compress/source/${P}-src.tar.gz"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~amd64"
+
+# Common dependencies
+# POM: pom.xml
+# asm:asm:3.2 -> !!!groupId-not-found!!!
+# com.github.luben:zstd-jni:1.5.0-2 -> >=dev-java/zstd-jni-1.5.0.5:0
+# org.brotli:dec:0.1.2 -> >=dev-java/brotli-dec-0.1.2:0
+# org.tukaani:xz:1.9 -> >=dev-java/xz-java-1.9:0
+
+CP_DEPEND="
+ dev-java/asm:9
+ dev-java/brotli-dec:0
+ dev-java/xz-java:0
+ dev-java/zstd-jni:0
+"
+
+# Compile dependencies
+# POM: pom.xml
+# org.osgi:osgi.core:6.0.0 -> >=dev-java/osgi-core-8.0.0:0
+# POM: pom.xml
+# test? com.github.marschall:memoryfilesystem:2.1.0 -> >=dev-java/memoryfilesystem-2.3.0:0
+# test? javax.inject:javax.inject:1 -> >=dev-java/javax-inject-1:0
+# test? junit:junit:4.13.2 -> >=dev-java/junit-4.13.2:4
+# test? org.apache.felix:org.apache.felix.framework:7.0.0 -> >=dev-java/felix-framework-7.0.5:0
+# test? org.hamcrest:hamcrest:2.2 -> >=dev-java/hamcrest-2.2:0
+# test? org.mockito:mockito-core:3.11.1 -> >=dev-java/mockito-4.6.1:4
+# test? org.ops4j.pax.exam:pax-exam-cm:4.13.1 -> !!!groupId-not-found!!!
+# test? org.ops4j.pax.exam:pax-exam-container-native:4.13.1 -> !!!groupId-not-found!!!
+# test? org.ops4j.pax.exam:pax-exam-junit4:4.13.1 -> !!!groupId-not-found!!!
+# test? org.ops4j.pax.exam:pax-exam-link-mvn:4.13.1 -> !!!groupId-not-found!!!
+# test? org.slf4j:slf4j-api:1.7.30 -> >=dev-java/slf4j-api-1.7.36:0
+
+DEPEND="
+ >=virtual/jdk-11:*
+ ${CP_DEPEND}
+ dev-java/osgi-core:0
+ test? (
+ dev-java/felix-framework:0
+ dev-java/hamcrest:0
+ dev-java/javax-inject:0
+ dev-java/memoryfilesystem:0
+ dev-java/mockito:4
+ dev-java/slf4j-api:0
+ )
+"
+
+RDEPEND="
+ >=virtual/jre-1.8:*
+ ${CP_DEPEND}"
+
+S="${WORKDIR}/${P}-src"
+
+PATCHES=(
+ "${FILESDIR}/${P}-asm7+.patch"
+)
+
+JAVA_AUTOMATIC_MODULE_NAME="org.apache.commons.compress"
+JAVA_CLASSPATH_EXTRA="osgi-core"
+JAVA_ENCODING="iso-8859-1"
+JAVA_MAIN_CLASS="org.apache.commons.compress.archivers.Lister"
+JAVA_SRC_DIR="src/main/java"
+
+JAVA_TEST_GENTOO_CLASSPATH="memoryfilesystem,javax-inject,junit-4,felix-framework,hamcrest,mockito-4,slf4j-api"
+JAVA_TEST_RESOURCE_DIRS="src/test/resources"
+JAVA_TEST_SRC_DIR="src/test/java"
+
+src_prepare() {
+ default
+ # error: package org.ops4j.pax.exam does not exist
+ # removing it costs 2 tests
+ rm src/test/java/org/apache/commons/compress/OsgiITest.java || die
+
+ # java.io.FileNotFoundException: couldn't find zstandard.testdata.zst
+ # pom.xml lines 420-422
+ tar xf src/test/resources/zstd-tests.tar \
+ -C src/test/resources || die "cannot unpack zstd-tests.tar"
+
+ # pom.xml lines 518-520
+ tar xjf src/test/resources/zip64support.tar.bz2 \
+ -C src/test/resources || die "cannot unpack zip64support.tar.bz2"
+
+ JAVA_TEST_EXTRA_ARGS=( -Djava.library.path="${EPREFIX}/usr/$(get_libdir)/zstd-jni/" )
+}
+
+JAVA_TEST_EXCLUDES=(
+ # No runnable methods
+ org.apache.commons.compress.archivers.TestArchiveStreamProvider
+ org.apache.commons.compress.compressors.TestCompressorStreamProvider
+
+ # fails without useful message
+ org.apache.commons.compress.compressors.DetectCompressorTestCase # has 8 tests
+
+ # These tests pass but they prevent printing test messages::
+# org.apache.commons.compress.compressors.pack200.Pack200UtilsTest # has 2 tests
+# org.apache.commons.compress.compressors.FramedSnappyTestCase # has 5 tests
+# org.apache.commons.compress.compressors.XZTestCase # has 4 tests
+# org.apache.commons.compress.compressors.Pack200TestCase # has 15 tests
+# org.apache.commons.compress.harmony.pack200.tests.PackingOptionsTest # has 12 tests
+# org.apache.commons.compress.harmony.pack200.tests.ArchiveTest # has 9 tests
+# org.apache.commons.compress.harmony.unpack200.tests.ArchiveTest # has 13 tests
+)
diff --git a/dev-java/easymock/Manifest b/dev-java/easymock/Manifest
index 72b23f7ace0b..c5db826e39e9 100644
--- a/dev-java/easymock/Manifest
+++ b/dev-java/easymock/Manifest
@@ -1,4 +1,8 @@
AUX 3.3.1-r1-no-android.patch 590 BLAKE2B 1fd2493bc0208516421c31adead309adfaad4b30a137739a082588f38b8d85933258718aca277f8f863f468c2775ec1c4ce107948b7d10cc8a4fc8b07cb47383 SHA512 ba9fcb6c5922869511f421b9f1c005c7656840762fac0d9aecf87b5db615dd181bae24d9ce491191c2a7ee8a863ebf14aaf42f94e40d40d8f2192ad4296ece7f
+AUX easymock-2.5.5-nameClash.patch 7264 BLAKE2B 9f94d1f3d87fbe5ee90695370140ab59c92ce2e917e23c442455c02021f6d51fa565b4d7abee575a75918e630b59709588d0982530c3193d3301636f4dee113b SHA512 a4d64a9680a8b55da9b444fc6255b5d5179268b95cb050ee22a1307b0d2e531288d531914aa7cb79ed4afb35a274b21bb6814f9dfa9de1643219b398c4adaed3
+AUX easymock-2.5.5-tests2nameClash.patch 16138 BLAKE2B 8d93149e3415c315a98a82cab7d1d212ea39090b9558bd8b92d55b5e8f3e2777908a53a0f61c9db54ecfa5a683cb38f59bc1bd30045a128c3ae88c57f7c9d4d5 SHA512 fe58f8373757b539ef7be9f5907a448b5e8fb21546215ec3c978a658f283c5aa4f06ebc15c5d6518a37beb480ea12620654023bfa8614c2f797418dbfad8d1d0
+DIST easymock-2.5.2.tar.gz 100112 BLAKE2B 2952aad1a88b169413152e8fa63eaba85767d93ccd8535e309cb647b90ad86695da59c394d1199abfb6f1c624913b2546f326ae5a68092261968d734d2018c5c SHA512 0343815f74258739ac60e1ef2fe72a0e9ce0e1b6ecd4f14d657d7da2a10523e24df5160533b0d75e87ffa0322a3477ec6823b257fe5968929d55dee9dfa68267
DIST easymock-3.3.1.tar.gz 624460 BLAKE2B bb5a472aef6c162d3afe5b66edef4891cc48fe6698c1f1eccc7f45f1883ff7f940b0479af5c0dd61b3354b41225ca50f191ba54b92479362a0074ddf3dbb5b43 SHA512 93fefd458a42b6c13d85ab1df768bf906620f052eea88116e93578374a5086eb8b27d8731e82b689dc3d73699e45d03b718c7d8bf2a430ac4a6a717365e52a9a
-EBUILD easymock-3.3.1-r1.ebuild 1979 BLAKE2B 2ab812d03cb65011e77c86e61b40ee8bd08f2a13b509befef1c7fd5a84eb874e00561a947aafbde1659e0f263a58d0e5ad79761257237e9f7ff529921bcbedad SHA512 c4015af4854cd0543d1b0a178a0ceb983e26ca6479a5a902b03aa52d485651c98f582f3d2f653b4adf7db10155925a3116f94e5962dd593c26c421103d3ed935
+EBUILD easymock-2.5.2.ebuild 1839 BLAKE2B 59a411692b6107d12e0dce4507a587064683ab55c5c935ab968ec2ae3f9341513f1ade4b4b4505ee0e264937aa8c36d9fc90b2c5285c2aa88d2a69d661f7be2a SHA512 78cba8008bb6c95a4d81871471ff7d320ad1689edc6eb2d32331c1155788f571be2d82baddc9fd6b1a987d7f2e129996a9e338b3c4f9dcbd00e205639fcb294c
+EBUILD easymock-3.3.1-r1.ebuild 1979 BLAKE2B c7a45a9824b47b5de1eccfcee1f9c1e7b44a0383a48d31358381b22084348b23005d88f040624b378d445fc37932cf4ab44f0be72202ded34d246dcc7939c8e3 SHA512 fe6d6076f6cd4957274cccf802cc2f67cd47d5b2e46e2a6defd17d18cb39a9f0d7b344571ca0173e222cba0a08f5ae74fa165bd91e53a39d404f2988eff56f31
MISC metadata.xml 487 BLAKE2B a24b4adf994d9fe7aa7db824ee499c476d971c7d4265a6a502644d0dd498e87bbecf1b50fa3a0b53a27e1b7d9e91a1c67bafaa783d173435228f0c36a740df12 SHA512 dba708a8b66d470df4378efc4e0ceba8bd896132f3d086f7751ca9409a47e04a24fc5f98255264b44711efd960810bf491c657975acec72bfb863ba603bc64ee
diff --git a/dev-java/easymock/easymock-2.5.2.ebuild b/dev-java/easymock/easymock-2.5.2.ebuild
new file mode 100644
index 000000000000..44d36338c51a
--- /dev/null
+++ b/dev-java/easymock/easymock-2.5.2.ebuild
@@ -0,0 +1,57 @@
+# Copyright 1999-2022 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+# Skeleton command:
+# java-ebuilder --generate-ebuild --workdir . --pom pom.xml --download-uri https://github.com/easymock/easymock/archive/easymock-2.5.2.tar.gz --slot 2.5 --keywords "~amd64" --ebuild easymock-2.5.2.ebuild
+
+EAPI=8
+
+JAVA_PKG_IUSE="doc source test"
+MAVEN_ID="org.easymock:easymock:2.5.2"
+JAVA_TESTING_FRAMEWORKS="junit-4"
+
+inherit java-pkg-2 java-pkg-simple
+
+DESCRIPTION="Mock Objects for interfaces in JUnit tests by generating them on the fly"
+HOMEPAGE="https://easymock.org"
+SRC_URI="https://github.com/easymock/easymock/archive/${P}.tar.gz"
+
+LICENSE="Apache-2.0"
+SLOT="2.5"
+KEYWORDS="~amd64"
+
+DEPEND=">=virtual/jdk-1.8:*"
+RDEPEND=">=virtual/jre-1.8:*"
+
+PATCHES=(
+ "${FILESDIR}/easymock-2.5.5-nameClash.patch"
+ "${FILESDIR}/easymock-2.5.5-tests2nameClash.patch"
+)
+
+S="${WORKDIR}/easymock-easymock-${PV}"
+
+JAVA_SRC_DIR="src/main/java"
+
+JAVA_TEST_GENTOO_CLASSPATH="junit-4"
+JAVA_TEST_SRC_DIR="src/test/java"
+JAVA_TEST_RESOURCE_DIRS="src/test/resources"
+
+src_prepare() {
+ default # https://bugs.gentoo.org/780585
+ # 1) testGetInstance(org.easymock.tests2.EasyMockPropertiesTest)
+ # java.lang.AssertionError: expected:<1> but was:<null>
+ sed \
+ -e '/import org.junit.Test/a import org.junit.Ignore;' \
+ -e '/testGetInstance()/i @Ignore' \
+ -i src/test/java/org/easymock/tests2/EasyMockPropertiesTest.java || die
+
+ # 2) testPrimitiveDeprecated(org.easymock.tests2.CaptureTest)
+ # java.lang.AssertionError:
+ # 3) testPrimitiveVsObject(org.easymock.tests2.CaptureTest)
+ # java.lang.AssertionError:
+ sed \
+ -e '/import org.junit.Test/a import org.junit.Ignore;' \
+ -e '/testPrimitiveDeprecated()/i @Ignore' \
+ -e '/testPrimitiveVsObject()/i @Ignore' \
+ -i src/test/java/org/easymock/tests2/CaptureTest.java || die
+}
diff --git a/dev-java/easymock/easymock-3.3.1-r1.ebuild b/dev-java/easymock/easymock-3.3.1-r1.ebuild
index 8a7db3b2235f..0193c3bb5f12 100644
--- a/dev-java/easymock/easymock-3.3.1-r1.ebuild
+++ b/dev-java/easymock/easymock-3.3.1-r1.ebuild
@@ -1,7 +1,7 @@
# Copyright 1999-2022 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
-EAPI=7
+EAPI=8
JAVA_PKG_IUSE="doc source test"
MAVEN_ID="org.easymock:easymock:3.3.1"
diff --git a/dev-java/easymock/files/easymock-2.5.5-nameClash.patch b/dev-java/easymock/files/easymock-2.5.5-nameClash.patch
new file mode 100644
index 000000000000..7a4f0d92ab64
--- /dev/null
+++ b/dev-java/easymock/files/easymock-2.5.5-nameClash.patch
@@ -0,0 +1,230 @@
+--- a/src/main/java/org/easymock/EasyMock.java Thu Feb 23 10:32:43 2012 +0100
++++ b/src/main/java/org/easymock/EasyMock.java Thu Feb 23 11:25:46 2012 +0100
+@@ -1452,81 +1452,200 @@
+
+ /**
+ * Expect any object but captures it for later use.
+- *
+- * @param <T> Type of the captured object
+- * @param captured Where the parameter is captured
++ *
++ * @param <T>
++ * Type of the captured object
++ * @param captured
++ * Where the parameter is captured
+ * @return <code>null</code>
+ */
+- public static <T> T capture(Capture<T> captured) {
++ public static <T> T capture(final Capture<T> captured) {
+ reportMatcher(new Captures<T>(captured));
+ return null;
+ }
+-
++
++ /**
++ * Expect any boolean but captures it for later use.
++ *
++ * @param captured
++ * Where the parameter is captured
++ * @return <code>false</code>
++ */
++ public static boolean captureBoolean(final Capture<Boolean> captured) {
++ reportMatcher(new Captures<Boolean>(captured));
++ return false;
++ }
++
++// /**
++// * Expect any boolean but captures it for later use.
++// *
++// * @param captured
++// * Where the parameter is captured
++// * @return <code>0</code>
++// *
++// * @deprecated Because of harder erasure enforcement, doesn't compile in
++// * Java 7
++// */
++// @Deprecated
++// public static boolean capture(final Capture<Boolean> captured) {
++// return captureBoolean(captured);
++// }
++
+ /**
+ * Expect any int but captures it for later use.
+- *
+- * @param captured Where the parameter is captured
++ *
++ * @param captured
++ * Where the parameter is captured
+ * @return <code>0</code>
+ */
+- public static int capture(Capture<Integer> captured) {
++ public static int captureInt(final Capture<Integer> captured) {
+ reportMatcher(new Captures<Integer>(captured));
+ return 0;
+ }
+-
++// /**
++// * Expect any int but captures it for later use.
++// *
++// * @param captured
++// * Where the parameter is captured
++// * @return <code>0</code>
++// *
++// * @deprecated Because of harder erasure enforcement, doesn't compile in
++// * Java 7
++// */
++// @Deprecated
++// public static int capture(final Capture<Integer> captured) {
++// return captureInt(captured);
++// }
++
+ /**
+ * Expect any long but captures it for later use.
+- *
+- * @param captured Where the parameter is captured
++ *
++ * @param captured
++ * Where the parameter is captured
+ * @return <code>0</code>
+ */
+- public static long capture(Capture<Long> captured) {
++ public static long captureLong(final Capture<Long> captured) {
+ reportMatcher(new Captures<Long>(captured));
+ return 0;
+ }
+-
++// /**
++// * Expect any long but captures it for later use.
++// *
++// * @param captured
++// * Where the parameter is captured
++// * @return <code>0</code>
++// *
++// * @deprecated Because of harder erasure enforcement, doesn't compile in
++// * Java 7
++// */
++// @Deprecated
++// public static long capture(final Capture<Long> captured) {
++// return captureLong(captured);
++// }
++
+ /**
+ * Expect any float but captures it for later use.
+- *
+- * @param captured Where the parameter is captured
++ *
++ * @param captured
++ * Where the parameter is captured
+ * @return <code>0</code>
+ */
+- public static float capture(Capture<Float> captured) {
++ public static float captureFloat(final Capture<Float> captured) {
+ reportMatcher(new Captures<Float>(captured));
+ return 0;
+ }
+-
++// /**
++// * Expect any float but captures it for later use.
++// *
++// * @param captured
++// * Where the parameter is captured
++// * @return <code>0</code>
++// *
++// * @deprecated Because of harder erasure enforcement, doesn't compile in
++// * Java 7
++// */
++// @Deprecated
++// public static float capture(final Capture<Float> captured) {
++// return captureFloat(captured);
++// }
++
+ /**
+ * Expect any double but captures it for later use.
+- *
+- * @param captured Where the parameter is captured
++ *
++ * @param captured
++ * Where the parameter is captured
+ * @return <code>0</code>
+ */
+- public static double capture(Capture<Double> captured) {
++ public static double captureDouble(final Capture<Double> captured) {
+ reportMatcher(new Captures<Double>(captured));
+ return 0;
+ }
++// /**
++// * Expect any double but captures it for later use.
++// *
++// * @param captured
++// * Where the parameter is captured
++// * @return <code>0</code>
++// *
++// * @deprecated Because of harder erasure enforcement, doesn't compile in
++// * Java 7
++// */
++// @Deprecated
++// public static double capture(final Capture<Double> captured) {
++// return captureDouble(captured);
++// }
+
+ /**
+ * Expect any byte but captures it for later use.
+- *
+- * @param captured Where the parameter is captured
++ *
++ * @param captured
++ * Where the parameter is captured
+ * @return <code>0</code>
+ */
+- public static byte capture(Capture<Byte> captured) {
++ public static byte captureByte(final Capture<Byte> captured) {
+ reportMatcher(new Captures<Byte>(captured));
+ return 0;
+ }
+-
++// /**
++// * Expect any byte but captures it for later use.
++// *
++// * @param captured
++// * Where the parameter is captured
++// * @return <code>0</code>
++// *
++// * @deprecated Because of harder erasure enforcement, doesn't compile in
++// * Java 7
++// */
++// @Deprecated
++// public static byte capture(final Capture<Byte> captured) {
++// return captureByte(captured);
++// }
++
+ /**
+ * Expect any char but captures it for later use.
+- *
+- * @param captured Where the parameter is captured
++ *
++ * @param captured
++ * Where the parameter is captured
+ * @return <code>0</code>
+ */
+- public static char capture(Capture<Character> captured) {
++ public static char captureChar(final Capture<Character> captured) {
+ reportMatcher(new Captures<Character>(captured));
+ return 0;
+ }
++// /**
++// * Expect any char but captures it for later use.
++// *
++// * @param captured
++// * Where the parameter is captured
++// * @return <code>0</code>
++// *
++// * @deprecated Because of harder erasure enforcement, doesn't compile in
++// * Java 7
++// */
++// @Deprecated
++// public static char capture(final Capture<Character> captured) {
++// return captureChar(captured);
++// }
+
+ /**
+ * Switches the given mock objects (more exactly: the controls of the mock
diff --git a/dev-java/easymock/files/easymock-2.5.5-tests2nameClash.patch b/dev-java/easymock/files/easymock-2.5.5-tests2nameClash.patch
new file mode 100644
index 000000000000..23ed754e3854
--- /dev/null
+++ b/dev-java/easymock/files/easymock-2.5.5-tests2nameClash.patch
@@ -0,0 +1,420 @@
+--- a/src/test/java/org/easymock/tests2/CaptureTest.java Thu Feb 23 10:32:43 2012 +0100
++++ b/src/test/java/org/easymock/tests2/CaptureTest.java Thu Feb 23 11:25:46 2012 +0100
+@@ -1,12 +1,12 @@
+-/*
+- * Copyright 2003-2009 OFFIS, Henri Tremblay
+- *
++/**
++ * Copyright 2001-2011 the original author or authors.
++ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+- *
++ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+- *
++ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+@@ -27,10 +27,13 @@
+ import org.junit.Before;
+ import org.junit.Test;
+
++/**
++ * @author Henri Tremblay
++ */
+ public class CaptureTest {
+
+ public static class A {
+- public String foo(IMethods methods) {
++ public String foo(final IMethods methods) {
+ return methods.oneArg(2);
+ }
+ }
+@@ -42,16 +45,16 @@
+ @After
+ public void tearDown() throws Exception {
+ }
+-
+- private Capture<Integer> testCaptureType(CaptureType type) {
+- IMethods mock = createMock(IMethods.class);
+- Capture<Integer> captured = new Capture<Integer>(type);
+-
+- expect(mock.oneArg(capture(captured))).andReturn("1");
++
++ private Capture<Integer> testCaptureType(final CaptureType type) {
++ final IMethods mock = createMock(IMethods.class);
++ final Capture<Integer> captured = new Capture<Integer>(type);
++
++ expect(mock.oneArg(captureInt(captured))).andReturn("1");
+ expect(mock.oneArg(anyInt())).andReturn("1");
+- expect(mock.oneArg(capture(captured))).andReturn("2").times(2);
+- mock.twoArgumentMethod(capture(captured), eq(5));
+- mock.twoArgumentMethod(capture(captured), capture(captured));
++ expect(mock.oneArg(captureInt(captured))).andReturn("2").times(2);
++ mock.twoArgumentMethod(captureInt(captured), eq(5));
++ mock.twoArgumentMethod(captureInt(captured), captureInt(captured));
+
+ replay(mock);
+
+@@ -66,28 +69,28 @@
+
+ return captured;
+ }
+-
++
+ @Test
+ public void testCaptureFirst() {
+- Capture<Integer> captured = testCaptureType(CaptureType.FIRST);
++ final Capture<Integer> captured = testCaptureType(CaptureType.FIRST);
+ assertEquals(0, (int) captured.getValue());
+ }
+
+ @Test
+ public void testCaptureLast() {
+- Capture<Integer> captured = testCaptureType(CaptureType.LAST);
++ final Capture<Integer> captured = testCaptureType(CaptureType.LAST);
+ assertEquals(7, (int) captured.getValue());
+ }
+
+ @Test
+ public void testCaptureAll() {
+- Capture<Integer> captured = testCaptureType(CaptureType.ALL);
++ final Capture<Integer> captured = testCaptureType(CaptureType.ALL);
+ assertEquals(Arrays.asList(0, 2, 3, 4, 6, 7), captured.getValues());
+ }
+
+ @Test
+ public void testCaptureNone() {
+- Capture<Integer> captured = testCaptureType(CaptureType.NONE);
++ final Capture<Integer> captured = testCaptureType(CaptureType.NONE);
+ assertFalse(captured.hasCaptured());
+ }
+
+@@ -96,11 +99,10 @@
+
+ @Test
+ public void testCaptureRightOne() {
+- Capture<String> captured = new Capture<String>();
+- IMethods mock = createMock(IMethods.class);
++ final Capture<String> captured = new Capture<String>();
++ final IMethods mock = createMock(IMethods.class);
+
+- expect(mock.oneArg(and(eq("test"), capture(captured)))).andReturn(
+- "answer1");
++ expect(mock.oneArg(and(eq("test"), capture(captured)))).andReturn("answer1");
+ expect(mock.oneArg("a")).andReturn("answer2");
+
+ replay(mock);
+@@ -114,10 +116,11 @@
+ verify(mock);
+ }
+
++ @SuppressWarnings("deprecation")
+ @Test
+ public void testPrimitiveVsObject() {
+- Capture<Integer> capture = new Capture<Integer>();
+- IMethods mock = createMock(IMethods.class);
++ final Capture<Integer> capture = new Capture<Integer>();
++ final IMethods mock = createMock(IMethods.class);
+
+ expect(mock.oneArg(capture(capture))).andReturn("answer");
+ expect(mock.oneArg((Integer) capture(capture))).andReturn("answer");
+@@ -135,11 +138,10 @@
+
+ @Test
+ public void testAnd() {
+- Capture<String> captured = new Capture<String>();
+- IMethods mock = createMock(IMethods.class);
++ final Capture<String> captured = new Capture<String>();
++ final IMethods mock = createMock(IMethods.class);
+
+- expect(mock.oneArg(and(capture(captured), eq("test")))).andReturn(
+- "answer");
++ expect(mock.oneArg(and(capture(captured), eq("test")))).andReturn("answer");
+
+ replay(mock);
+
+@@ -148,17 +150,19 @@
+
+ verify(mock);
+ }
+-
++
++ @SuppressWarnings("deprecation")
+ @Test
+- public void testPrimitive() {
+- Capture<Integer> captureI = new Capture<Integer>();
+- Capture<Long> captureL = new Capture<Long>();
+- Capture<Float> captureF = new Capture<Float>();
+- Capture<Double> captureD = new Capture<Double>();
+- Capture<Byte> captureB = new Capture<Byte>();
+- Capture<Character> captureC = new Capture<Character>();
++ public void testPrimitiveDeprecated() {
++ final Capture<Integer> captureI = new Capture<Integer>();
++ final Capture<Long> captureL = new Capture<Long>();
++ final Capture<Float> captureF = new Capture<Float>();
++ final Capture<Double> captureD = new Capture<Double>();
++ final Capture<Byte> captureB = new Capture<Byte>();
++ final Capture<Character> captureC = new Capture<Character>();
++ final Capture<Boolean> captureBool = new Capture<Boolean>();
+
+- IMethods mock = createMock(IMethods.class);
++ final IMethods mock = createMock(IMethods.class);
+
+ expect(mock.oneArg(capture(captureI))).andReturn("answerI");
+ expect(mock.oneArg(capture(captureL))).andReturn("answerL");
+@@ -166,6 +170,7 @@
+ expect(mock.oneArg(capture(captureD))).andReturn("answerD");
+ expect(mock.oneArg(capture(captureB))).andReturn("answerB");
+ expect(mock.oneArg(capture(captureC))).andReturn("answerC");
++ expect(mock.oneArg(capture(captureBool))).andReturn("answerZ");
+
+ replay(mock);
+
+@@ -175,6 +180,7 @@
+ assertEquals("answerD", mock.oneArg(4.0));
+ assertEquals("answerB", mock.oneArg((byte) 5));
+ assertEquals("answerC", mock.oneArg((char) 6));
++ assertEquals("answerZ", mock.oneArg(true));
+
+ assertEquals(1, captureI.getValue().intValue());
+ assertEquals(2l, captureL.getValue().longValue());
+@@ -182,19 +188,60 @@
+ assertEquals(4.0, captureD.getValue().doubleValue(), 0.0);
+ assertEquals((byte) 5, captureB.getValue().byteValue());
+ assertEquals((char) 6, captureC.getValue().charValue());
+-
++ assertEquals(true, captureBool.getValue().booleanValue());
++
+ verify(mock);
+ }
+-
++
++ @Test
++ public void testPrimitive() {
++ final Capture<Integer> captureI = new Capture<Integer>();
++ final Capture<Long> captureL = new Capture<Long>();
++ final Capture<Float> captureF = new Capture<Float>();
++ final Capture<Double> captureD = new Capture<Double>();
++ final Capture<Byte> captureB = new Capture<Byte>();
++ final Capture<Character> captureC = new Capture<Character>();
++ final Capture<Boolean> captureBool = new Capture<Boolean>();
++
++ final IMethods mock = createMock(IMethods.class);
++
++ expect(mock.oneArg(captureInt(captureI))).andReturn("answerI");
++ expect(mock.oneArg(captureLong(captureL))).andReturn("answerL");
++ expect(mock.oneArg(captureFloat(captureF))).andReturn("answerF");
++ expect(mock.oneArg(captureDouble(captureD))).andReturn("answerD");
++ expect(mock.oneArg(captureByte(captureB))).andReturn("answerB");
++ expect(mock.oneArg(captureChar(captureC))).andReturn("answerC");
++ expect(mock.oneArg(captureBoolean(captureBool))).andReturn("answerZ");
++
++ replay(mock);
++
++ assertEquals("answerI", mock.oneArg(1));
++ assertEquals("answerL", mock.oneArg(2l));
++ assertEquals("answerF", mock.oneArg(3.0f));
++ assertEquals("answerD", mock.oneArg(4.0));
++ assertEquals("answerB", mock.oneArg((byte) 5));
++ assertEquals("answerC", mock.oneArg((char) 6));
++ assertEquals("answerZ", mock.oneArg(true));
++
++ assertEquals(1, captureI.getValue().intValue());
++ assertEquals(2l, captureL.getValue().longValue());
++ assertEquals(3.0f, captureF.getValue().floatValue(), 0.0);
++ assertEquals(4.0, captureD.getValue().doubleValue(), 0.0);
++ assertEquals((byte) 5, captureB.getValue().byteValue());
++ assertEquals((char) 6, captureC.getValue().charValue());
++ assertEquals(true, captureBool.getValue().booleanValue());
++
++ verify(mock);
++ }
++
+ @Test
+ public void testCapture() {
+- Capture<String> capture = new Capture<String>();
++ final Capture<String> capture = new Capture<String>();
+ assertFalse(capture.hasCaptured());
+ try {
+ capture.getValue();
+ fail("Should not be allowed");
+- }
+- catch(AssertionError e) {
++ } catch (final AssertionError e) {
+ assertEquals("Nothing captured yet", e.getMessage());
+ }
+ assertEquals("Nothing captured yet", capture.toString());
+@@ -207,29 +254,26 @@
+ try {
+ capture.getValue();
+ fail();
+- }
+- catch(AssertionError e) {
++ } catch (final AssertionError e) {
+ assertEquals("Nothing captured yet", e.getMessage());
+ }
+-
++
+ capture.setValue(null);
+ assertTrue(capture.hasCaptured());
+ assertNull(capture.getValue());
+ assertEquals("null", capture.toString());
+ }
+-
++
+ @Test
+ public void testCaptureMultiple() {
+- Capture<String> capture = new Capture<String>(CaptureType.ALL);
++ final Capture<String> capture = new Capture<String>(CaptureType.ALL);
+ capture.setValue("a");
+ capture.setValue("b");
+ try {
+ capture.getValue();
+ fail();
+- } catch (AssertionError e) {
+- assertEquals(
+- "More than one value captured: " + capture.getValues(), e
+- .getMessage());
++ } catch (final AssertionError e) {
++ assertEquals("More than one value captured: " + capture.getValues(), e.getMessage());
+ }
+ assertEquals(Arrays.asList("a", "b"), capture.getValues());
+ }
+@@ -237,30 +281,26 @@
+ @Test
+ public void testCapture_2617107() {
+
+- IMethods mock = createMock(IMethods.class);
++ final IMethods mock = createMock(IMethods.class);
+
+- Capture<String> cap1 = new Capture<String>();
+- Capture<String> cap2 = new Capture<String>();
+- Capture<String> cap3 = new Capture<String>();
+- Capture<String> cap4 = new Capture<String>();
++ final Capture<String> cap1 = new Capture<String>();
++ final Capture<String> cap2 = new Capture<String>();
++ final Capture<String> cap3 = new Capture<String>();
++ final Capture<String> cap4 = new Capture<String>();
+
+- mock.simpleMethodWithArgument(and(isA(String.class),
+- capture(cap1)));
+- mock.simpleMethodWithArgument(and(isA(String.class),
+- capture(cap2)));
+- mock.simpleMethodWithArgument(and(isA(String.class),
+- capture(cap3)));
+- mock.simpleMethodWithArgument(and(isA(String.class),
+- capture(cap4)));
++ mock.simpleMethodWithArgument(and(isA(String.class), capture(cap1)));
++ mock.simpleMethodWithArgument(and(isA(String.class), capture(cap2)));
++ mock.simpleMethodWithArgument(and(isA(String.class), capture(cap3)));
++ mock.simpleMethodWithArgument(and(isA(String.class), capture(cap4)));
+
+ replay(mock);
+
+ final String[] s = { "one", "two", "three", "four" };
+
+- for (int i = 0; i < s.length; i++) {
+- mock.simpleMethodWithArgument(s[i]);
++ for (final String element : s) {
++ mock.simpleMethodWithArgument(element);
+ }
+-
++
+ assertEquals("one", cap1.getValue());
+ assertEquals("two", cap2.getValue());
+ assertEquals("three", cap3.getValue());
+@@ -268,7 +308,7 @@
+
+ verify(mock);
+ }
+-
++
+ @Test
+ public void testCaptureNonStrictControl_2133741() {
+ testCaptureHelper(createMock(IMethods.class));
+@@ -279,9 +319,9 @@
+ testCaptureHelper(createStrictMock(IMethods.class));
+ }
+
+- protected void testCaptureHelper(IMethods mock) {
+- Capture<String> capture1 = new Capture<String>();
+- Capture<String> capture2 = new Capture<String>();
++ protected void testCaptureHelper(final IMethods mock) {
++ final Capture<String> capture1 = new Capture<String>();
++ final Capture<String> capture2 = new Capture<String>();
+
+ mock.simpleMethodWithArgument(capture(capture1));
+ mock.simpleMethodWithArgument(capture(capture2));
+@@ -294,25 +334,25 @@
+ assertTrue(capture1.hasCaptured());
+ assertTrue(capture2.hasCaptured());
+ assertFalse(capture1.getValue() == capture2.getValue());
+- }
+-
++ }
++
+ @Test
+ public void testCapture1_2446744() {
+- Capture<String> capture1 = new Capture<String>();
+- Capture<String> capture2 = new Capture<String>();
+- Capture<String> capture3 = new Capture<String>();
+- IMethods mock = createMock(IMethods.class);
++ final Capture<String> capture1 = new Capture<String>();
++ final Capture<String> capture2 = new Capture<String>();
++ final Capture<String> capture3 = new Capture<String>();
++ final IMethods mock = createMock(IMethods.class);
+ expect(mock.oneArg(capture(capture1))).andReturn("1").once();
+ expect(mock.oneArg(capture(capture2))).andReturn("2").once();
+ expect(mock.oneArg(capture(capture3))).andReturn("3").once();
+-
++
+ replay(mock);
+-
++
+ for (int i = 0; i < 3; i++) {
+- String string = "Run" + (i + 1);
++ final String string = "Run" + (i + 1);
+ mock.oneArg(string);
+ }
+-
++
+ assertEquals("Run3", capture3.getValue());
+ assertEquals("Run2", capture2.getValue());
+ assertEquals("Run1", capture1.getValue());
+@@ -320,16 +360,16 @@
+
+ @Test
+ public void testCapture2_2446744() {
+- Capture<String> capture = new Capture<String>(CaptureType.ALL);
+- IMethods mock = createMock(IMethods.class);
++ final Capture<String> capture = new Capture<String>(CaptureType.ALL);
++ final IMethods mock = createMock(IMethods.class);
+ expect(mock.oneArg(capture(capture))).andReturn("1").once();
+ expect(mock.oneArg(capture(capture))).andReturn("2").once();
+ expect(mock.oneArg(capture(capture))).andReturn("3").once();
+-
++
+ replay(mock);
+-
++
+ for (int i = 0; i < 3; i++) {
+- String string = "Run" + (i + 1);
++ final String string = "Run" + (i + 1);
+ mock.oneArg(string);
+ }
+
+@@ -338,8 +378,8 @@
+
+ @Test
+ public void testCaptureFromStub() {
+- Capture<String> capture = new Capture<String>(CaptureType.ALL);
+- IMethods mock = createMock(IMethods.class);
++ final Capture<String> capture = new Capture<String>(CaptureType.ALL);
++ final IMethods mock = createMock(IMethods.class);
+ expect(mock.oneArg(capture(capture))).andStubReturn("1");
+
+ replay(mock);
diff --git a/dev-java/felix-framework/Manifest b/dev-java/felix-framework/Manifest
new file mode 100644
index 000000000000..a7565f2c8be3
--- /dev/null
+++ b/dev-java/felix-framework/Manifest
@@ -0,0 +1,3 @@
+DIST felix-framework-7.0.5.tar.gz 505118 BLAKE2B 3652d46dfb4c9c5b43b159450b81ad896483fb2df40165d7e7b8bbd718c8e3297163065474bd10f3858ff7fc2646134ed470e34ede8eeb5efc05cec75f1a7aec SHA512 58fa96500fed827c348a47ac8672aeb4e5b94bfd681c4cde610b3a453fd2abfe2d631742281a192c76718ee83fc4c30980a5179926ff3bc7b8ea649ef07f34a3
+EBUILD felix-framework-7.0.5.ebuild 3563 BLAKE2B 08b2fe7c8b729cf8d6e27432868a4e8e2be6482f424d3e512cb63d2f1ad3854d7f44c936cb8452d57ec11a32f4593cdf1e08dc5e8c0ffc04c0de79b1ae2737a8 SHA512 3487caf78e9ec47aa5a8ce63d84ba4c6c034c8370f4f7d479d155a7b64043baee50755a50fb9096a996b91512605b8c22edf298a76626803760c0227d38d05ed
+MISC metadata.xml 455 BLAKE2B 69e2d92cd05dd44530363b6920e0673ac8f6d87cebf7ca931d4699378062348b83391fdfeaa4dc95d470a718d363fa7e6578f949b6f8f3510317f6d63bc7c514 SHA512 585dc4c8a3fb5c6c01940c887207346065ca9c7499abdb79ab6f6554a05fe6b27734e48101cb0dab61b8e0e32417bf28e722947864bd0ea3d48296198a3f3264
diff --git a/dev-java/felix-framework/felix-framework-7.0.5.ebuild b/dev-java/felix-framework/felix-framework-7.0.5.ebuild
new file mode 100644
index 000000000000..a8a67fa28876
--- /dev/null
+++ b/dev-java/felix-framework/felix-framework-7.0.5.ebuild
@@ -0,0 +1,106 @@
+# Copyright 1999-2022 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+# Skeleton command:
+# java-ebuilder --generate-ebuild --workdir . --pom pom.xml --download-uri mirror://apache/felix/org.apache.felix.framework-7.0.5-source-release.tar.gz --slot 0 --keywords "~amd64" --ebuild felix-framework-7.0.5.ebuild
+
+EAPI=8
+
+JAVA_PKG_IUSE="doc source test"
+MAVEN_ID="org.apache.felix:org.apache.felix.framework:7.0.5"
+JAVA_TESTING_FRAMEWORKS="junit-4"
+
+inherit java-pkg-2 java-pkg-simple
+
+DESCRIPTION="Implementation of the OSGi R8 core framework specification"
+HOMEPAGE="https://felix.apache.org/documentation/subprojects/apache-felix-framework.html"
+SRC_URI="mirror://apache/felix/org.apache.${PN//-/.}-${PV}-source-release.tar.gz -> ${P}.tar.gz"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~amd64"
+
+# Common dependencies
+# POM: pom.xml
+# org.codehaus.mojo:animal-sniffer-annotations:1.9 -> >=dev-java/animal-sniffer-annotations-1.15:0
+
+CP_DEPEND="dev-java/animal-sniffer-annotations:0"
+
+# Compile dependencies
+# POM: pom.xml
+# org.apache.felix:org.apache.felix.resolver:2.0.4 -> >=dev-java/felix-resolver-2.0.4:0
+# org.osgi:org.osgi.annotation:6.0.0 -> !!!artifactId-not-found!!!
+# POM: pom.xml
+# test? junit:junit:4.12 -> >=dev-java/junit-4.13.2:4
+# test? org.easymock:easymock:2.5.2 -> >=dev-java/easymock-2.5.2:2.5
+# test? org.mockito:mockito-all:1.10.19 -> !!!artifactId-not-found!!!
+# test? org.ow2.asm:asm-all:5.2 -> !!!artifactId-not-found!!!
+
+DEPEND="
+ >=virtual/jdk-11:*
+ ${CP_DEPEND}
+ dev-java/osgi-annotation:0
+ dev-java/felix-resolver:0
+ test? (
+ dev-java/asm:4
+ dev-java/easymock:2.5
+ dev-java/mockito:0
+ )
+"
+
+RDEPEND="
+ >=virtual/jre-1.8:*
+ ${CP_DEPEND}"
+
+S="${WORKDIR}/org.apache.felix.framework-${PV}"
+
+JAVA_CLASSPATH_EXTRA="felix-resolver,osgi-annotation"
+JAVA_SRC_DIR="src/main/java"
+JAVA_RESOURCE_DIRS="src/main/resources"
+
+JAVA_TEST_GENTOO_CLASSPATH="asm-4,junit-4,easymock-2.5,mockito"
+JAVA_TEST_SRC_DIR="src/test/java"
+
+src_prepare() {
+ default
+ # 58,91 pom.xml
+ cat > src/main/java/module-info.java <<-EOF
+ $( sed -n '/<moduleInfoSource>/,/<\/moduleInfoSource/p' pom.xml \
+ | grep -v moduleInfoSource )
+ EOF
+
+ sed -e 's/{dollar}//g' -i src/main/resources/default.properties || die
+
+ sed -e "s:\${pom.version}:${PV}:" \
+ -i src/main/resources/org/apache/felix/framework/Felix.properties || die
+
+ # bundling some classes from felix-resolver according to 99,132 pom.xml
+ # if we don't bundle compilation would fail with:
+ # src/main/java/module-info.java:23: error: package is empty or does not exist: org.osgi.service.resolver
+ cd src/main/resources || die
+ jar xvf "$(java-pkg_getjar --build-only felix-resolver felix-resolver.jar)" \
+ org/{apache/felix,osgi/service}/resolver/ || die
+}
+
+src_compile() {
+ java-pkg-simple_src_compile
+
+ # according to pom.xml, line 129
+ # grep the line between <Add-opens> and </Add-opens> from pom.xml
+ local add_opens="$(sed -n '/<Add-opens>/,/<\/Add-opens/p' pom.xml \
+ | grep -v Add-opens | tr -s '[:space:]')" || die
+ echo "Add-opens:${add_opens}" > "${T}/Add-opens-to-MANIFEST.MF" \
+ || die "Add-opens-to-MANIFEST.MF failed"
+ jar ufmv ${JAVA_JAR_FILENAME} "${T}/Add-opens-to-MANIFEST.MF" \
+ || die "updating MANIFEST.MF failed"
+}
+
+src_test() {
+ # java.base does not "opens java.lang" to unnamed module
+ # adding it to MANIFEST.MF would not fix the test failures.
+ 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=ALL-UNNAMED )
+ fi
+ java-pkg-simple_src_test
+}
diff --git a/dev-java/felix-framework/metadata.xml b/dev-java/felix-framework/metadata.xml
new file mode 100644
index 000000000000..e6816da2d497
--- /dev/null
+++ b/dev-java/felix-framework/metadata.xml
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="project">
+ <email>java@gentoo.org</email>
+ </maintainer>
+ <upstream>
+ <bugs-to>https://issues.apache.org/jira/browse/FELIX</bugs-to>
+ <doc>https://felix.apache.org/documentation/subprojects/apache-felix-framework.html</doc>
+ <remote-id type="github">apache/felix-dev</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-java/felix-resolver/Manifest b/dev-java/felix-resolver/Manifest
new file mode 100644
index 000000000000..bee400afe3be
--- /dev/null
+++ b/dev-java/felix-resolver/Manifest
@@ -0,0 +1,3 @@
+DIST felix-resolver-2.0.4.tar.gz 164538 BLAKE2B 38d979557e484692bc6e47ce069bac5ca3c19f4b01b2d6222760708da571ca79166f4821c0b79c181a40c4228095dbe28f051e7d84d696cfddeef63f5a006ddd SHA512 bf4da4550b208dbe9e74cb4f66e9456fb0a3da66f6e60c08ebea88b68cc6f71200dcf324d22d85e6f5558e7f67335f8899e932de3b813a7fc7e9325eb8a31b61
+EBUILD felix-resolver-2.0.4.ebuild 2113 BLAKE2B de38ac614ff7582d7bd3562b4c9da22d2260aed2ce0e6f93c735388929da2cece65b50386e7232ebb8d226d0c413ac7f4d27d6a7d8addcca70f29455a0f7ea62 SHA512 465592736caaa84f1dbdd62caea8e0292434c87bac725382bedd89dbb333a47f607b014375631ece15754d1cc10c60ccbd52e7fab481b7c11b082c0d02ca9e0f
+MISC metadata.xml 369 BLAKE2B 9cd4712616cc7fbb8010c253c0f6edf4855e190f79eac831794cf53e966f2963945f5432ae3a9f12534cbb5611986247e00b7c2981c0604e7fa0c3fffa42ec4c SHA512 1b18db4dd45409a4296c24c198e5aeaad34fd8901c041f490a2c1ecaf4f692e3140c304fd76faa18644ad0f359b551443bba096445efb819503434e35636e791
diff --git a/dev-java/felix-resolver/felix-resolver-2.0.4.ebuild b/dev-java/felix-resolver/felix-resolver-2.0.4.ebuild
new file mode 100644
index 000000000000..771b23571b6f
--- /dev/null
+++ b/dev-java/felix-resolver/felix-resolver-2.0.4.ebuild
@@ -0,0 +1,71 @@
+# Copyright 1999-2022 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+# Skeleton command:
+# java-ebuilder --generate-ebuild --workdir . --pom pom.xml --download-uri mirror://apache/felix/org.apache.felix.resolver-2.0.4-source-release.tar.gz --slot 0 --keywords "~amd64" --ebuild felix-resolver-2.0.4.ebuild
+
+EAPI=8
+
+JAVA_PKG_IUSE="doc source test"
+MAVEN_ID="org.apache.felix:org.apache.felix.resolver:2.0.4"
+JAVA_TESTING_FRAMEWORKS="junit-4"
+
+inherit java-pkg-2 java-pkg-simple
+
+DESCRIPTION="Provide OSGi resolver service."
+HOMEPAGE="https://felix.apache.org/documentation/index.html"
+SRC_URI="mirror://apache/felix/org.apache.${PN//-/.}-${PV}-source-release.tar.gz -> ${P}.tar.gz"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~amd64"
+
+# Common dependencies
+# POM: pom.xml
+# org.osgi:org.osgi.core:5.0.0 -> >=dev-java/osgi-core-api-5.0.0:0
+# org.osgi:osgi.annotation:6.0.1 -> >=dev-java/osgi-annotation-8.1.0:0
+
+CP_DEPEND="
+ dev-java/osgi-annotation:0
+ dev-java/osgi-core:0
+"
+
+# Compile dependencies
+# POM: pom.xml
+# test? junit:junit:4.11 -> >=dev-java/junit-4.13.2:4
+# test? org.apache.felix:org.apache.felix.utils:1.8.0 -> >=dev-java/felix-utils-1.11.8:0
+# test? org.mockito:mockito-all:1.10.19 -> !!!artifactId-not-found!!!
+
+DEPEND="
+ >=virtual/jdk-1.8:*
+ ${CP_DEPEND}
+ test? (
+ dev-java/felix-utils:0
+ dev-java/mockito:0
+ )
+"
+
+RDEPEND="
+ >=virtual/jre-1.8:*
+ ${CP_DEPEND}"
+
+DOCS=( DEPENDENCIES NOTICE doc/changelog.txt )
+
+S="${WORKDIR}/org.apache.felix.resolver-${PV}"
+
+JAVA_RESOURCE_DIRS="src/main/resources"
+JAVA_SRC_DIR="src/main/java"
+
+JAVA_TEST_GENTOO_CLASSPATH="felix-utils,junit-4,mockito"
+JAVA_TEST_RESOURCE_DIRS="src/test/resources"
+JAVA_TEST_SRC_DIR="src/test/java"
+
+src_test() {
+ # java.lang.ClassFormatError accessible: module java.base does not "opens java.lang" to unnamed module @73ec6027
+ 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=ALL-UNNAMED )
+ JAVA_TEST_EXTRA_ARGS+=( --add-opens=java.base/java.io=ALL-UNNAMED )
+ fi
+ java-pkg-simple_src_test
+}
diff --git a/dev-java/felix-resolver/metadata.xml b/dev-java/felix-resolver/metadata.xml
new file mode 100644
index 000000000000..4af2d5d52d45
--- /dev/null
+++ b/dev-java/felix-resolver/metadata.xml
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="project">
+ <email>java@gentoo.org</email>
+ </maintainer>
+ <upstream>
+ <doc>https://felix.apache.org/documentation/documentation.html</doc>
+ <remote-id type="github">apache/felix-dev</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-java/felix-utils/Manifest b/dev-java/felix-utils/Manifest
new file mode 100644
index 000000000000..afa2e5d3bb9e
--- /dev/null
+++ b/dev-java/felix-utils/Manifest
@@ -0,0 +1,4 @@
+AUX felix-utils-1.11.8-Port-to-osgi-cmpn.patch 4717 BLAKE2B 012aa489c1f063bfa5d3f8e9504bc72176493d4bd345e1aa9027d73d560c6852589a448cd96927410220286a247e2d14f4ab0a08a2ed70f9dba34b86e6be7e0d SHA512 267b3bd025fe71992b3cc3872cabbd0d13407e1aec013c671754d3ed94bd104ffb52bb22255acb0bfc4be6428f16073e37d3e79fa4b7a45bca34f3e4a1d82637
+DIST felix-utils-1.11.8.tar.gz 90519 BLAKE2B 2fe6ce8101e8e4d9533a2decacc581d35babd3a26747598a196ade7cea787d6e379968208619dc9c4d89c8f670ccb98124223828c852347f859c4ae3a7f284c8 SHA512 cef0f05754857a5863869145b3c465a1fea0d41767637df904b0b041579af18e5b5e3c8e09dc89f0e2e3d252585e0765b6b6e34bf932df1ebdc62a7127ac8cfd
+EBUILD felix-utils-1.11.8.ebuild 1619 BLAKE2B dc5d8f51b54056c0e975446f7299f3db026f4ebe67f6422787d27e5eeacf687ac4b62a94929e048ba932525bf22b6d889b83c83d42158bfd367892a71f201fe4 SHA512 6f0847156d16928de2f314f5e10a39384e7c7b597c7fd890665f3a0559380bc20c504be1211e3fa635bce921bf5514aaf7891c087e707f91ac99fce226c8d397
+MISC metadata.xml 369 BLAKE2B 9cd4712616cc7fbb8010c253c0f6edf4855e190f79eac831794cf53e966f2963945f5432ae3a9f12534cbb5611986247e00b7c2981c0604e7fa0c3fffa42ec4c SHA512 1b18db4dd45409a4296c24c198e5aeaad34fd8901c041f490a2c1ecaf4f692e3140c304fd76faa18644ad0f359b551443bba096445efb819503434e35636e791
diff --git a/dev-java/felix-utils/felix-utils-1.11.8.ebuild b/dev-java/felix-utils/felix-utils-1.11.8.ebuild
new file mode 100644
index 000000000000..170d165ff6d8
--- /dev/null
+++ b/dev-java/felix-utils/felix-utils-1.11.8.ebuild
@@ -0,0 +1,59 @@
+# Copyright 1999-2022 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+# Skeleton command:
+# java-ebuilder --generate-ebuild --workdir . --pom pom.xml --download-uri mirror://apache/felix/org.apache.felix.utils-1.11.8-source-release.tar.gz --slot 0 --keywords "~amd64" --ebuild felix-utils-1.11.8.ebuild
+
+EAPI=8
+
+JAVA_PKG_IUSE="doc source test"
+MAVEN_ID="org.apache.felix:org.apache.felix.utils:1.11.8"
+JAVA_TESTING_FRAMEWORKS="junit-4"
+
+inherit java-pkg-2 java-pkg-simple
+
+DESCRIPTION="Utility classes for OSGi"
+HOMEPAGE="https://felix.apache.org/documentation/index.html"
+SRC_URI="mirror://apache/felix/org.apache.felix.utils-${PV}-source-release.tar.gz -> ${P}.tar.gz"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~amd64"
+
+# Compile dependencies
+# POM: pom.xml
+# org.osgi:osgi.cmpn:5.0.0 -> >=dev-java/osgi-cmpn-8.0.0:8
+# org.osgi:osgi.core:5.0.0 -> >=dev-java/osgi-core-8.0.0:0
+# POM: pom.xml
+# test? junit:junit:4.12 -> >=dev-java/junit-4.13.2:4
+# test? org.mockito:mockito-core:2.18.3 -> >=dev-java/mockito-4.7.0:4
+
+DEPEND="
+ >=virtual/jdk-1.8:*
+ dev-java/osgi-cmpn:8
+ dev-java/osgi-core:0
+ test? (
+ dev-java/mockito:4
+ )
+"
+
+RDEPEND=">=virtual/jre-1.8:*"
+
+PATCHES=(
+ "${FILESDIR}/felix-utils-1.11.8-Port-to-osgi-cmpn.patch"
+)
+
+DOCS=( DEPENDENCIES NOTICE doc/changelog.txt )
+
+S="${WORKDIR}/org.apache.felix.utils-${PV}"
+
+JAVA_CLASSPATH_EXTRA="osgi-cmpn-8,osgi-core"
+JAVA_SRC_DIR="src/main/java"
+
+JAVA_TEST_GENTOO_CLASSPATH="junit-4,mockito-4"
+JAVA_TEST_SRC_DIR="src/test/java"
+JAVA_TEST_RESOURCE_DIRS="src/test/resources"
+
+src_prepare() {
+ default # https://bugs.gentoo.org/780585
+}
diff --git a/dev-java/felix-utils/files/felix-utils-1.11.8-Port-to-osgi-cmpn.patch b/dev-java/felix-utils/files/felix-utils-1.11.8-Port-to-osgi-cmpn.patch
new file mode 100644
index 000000000000..22b0222af68b
--- /dev/null
+++ b/dev-java/felix-utils/files/felix-utils-1.11.8-Port-to-osgi-cmpn.patch
@@ -0,0 +1,123 @@
+From d7a2d969b55ab34a223ad1422b2e3ef7d95a347f Mon Sep 17 00:00:00 2001
+From: Marian Koncek <mkoncek@redhat.com>
+Date: Mon, 5 Nov 2018 09:59:04 +0100
+Subject: [PATCH] Port to osgi-cmpn
+
+---
+ .../utils/repository/AggregateRepository.java | 20 +++++++++++++++++++
+ .../utils/repository/BaseRepository.java | 19 ++++++++++++++++++
+ .../utils/properties/MockBundleContext.java | 10 ++++++++++
+ 3 files changed, 49 insertions(+)
+
+diff --git a/src/main/java/org/apache/felix/utils/repository/AggregateRepository.java b/src/main/java/org/apache/felix/utils/repository/AggregateRepository.java
+index 50dceaf..4da3141 100644
+--- a/src/main/java/org/apache/felix/utils/repository/AggregateRepository.java
++++ b/src/main/java/org/apache/felix/utils/repository/AggregateRepository.java
+@@ -25,7 +25,12 @@ import java.util.Map;
+
+ import org.osgi.resource.Capability;
+ import org.osgi.resource.Requirement;
++import org.osgi.resource.Resource;
++import org.osgi.service.repository.ExpressionCombiner;
+ import org.osgi.service.repository.Repository;
++import org.osgi.service.repository.RequirementBuilder;
++import org.osgi.service.repository.RequirementExpression;
++import org.osgi.util.promise.Promise;
+
+ public class AggregateRepository implements Repository {
+
+@@ -52,4 +57,19 @@ public class AggregateRepository implements Repository {
+ }
+ return result;
+ }
++
++ @Override
++ public Promise<Collection<Resource>> findProviders(RequirementExpression expression) {
++ throw new UnsupportedOperationException();
++ }
++
++ @Override
++ public ExpressionCombiner getExpressionCombiner() {
++ throw new UnsupportedOperationException();
++ }
++
++ @Override
++ public RequirementBuilder newRequirementBuilder(String namespace) {
++ throw new UnsupportedOperationException();
++ }
+ }
+diff --git a/src/main/java/org/apache/felix/utils/repository/BaseRepository.java b/src/main/java/org/apache/felix/utils/repository/BaseRepository.java
+index 95adadd..0998ab0 100644
+--- a/src/main/java/org/apache/felix/utils/repository/BaseRepository.java
++++ b/src/main/java/org/apache/felix/utils/repository/BaseRepository.java
+@@ -30,7 +30,11 @@ import org.osgi.framework.Constants;
+ import org.osgi.resource.Capability;
+ import org.osgi.resource.Requirement;
+ import org.osgi.resource.Resource;
++import org.osgi.service.repository.ExpressionCombiner;
+ import org.osgi.service.repository.Repository;
++import org.osgi.service.repository.RequirementBuilder;
++import org.osgi.service.repository.RequirementExpression;
++import org.osgi.util.promise.Promise;
+
+ /**
+ */
+@@ -90,4 +94,19 @@ public class BaseRepository implements Repository {
+ }
+ return result;
+ }
++
++ @Override
++ public Promise<Collection<Resource>> findProviders(RequirementExpression expression) {
++ throw new UnsupportedOperationException();
++ }
++
++ @Override
++ public ExpressionCombiner getExpressionCombiner() {
++ throw new UnsupportedOperationException();
++ }
++
++ @Override
++ public RequirementBuilder newRequirementBuilder(String namespace) {
++ throw new UnsupportedOperationException();
++ }
+ }
+diff --git a/src/test/java/org/apache/felix/utils/properties/MockBundleContext.java b/src/test/java/org/apache/felix/utils/properties/MockBundleContext.java
+index 3eab444..df94a6c 100644
+--- a/src/test/java/org/apache/felix/utils/properties/MockBundleContext.java
++++ b/src/test/java/org/apache/felix/utils/properties/MockBundleContext.java
+@@ -25,7 +25,9 @@ import org.osgi.framework.BundleListener;
+ import org.osgi.framework.Filter;
+ import org.osgi.framework.FrameworkListener;
+ import org.osgi.framework.InvalidSyntaxException;
++import org.osgi.framework.ServiceFactory;
+ import org.osgi.framework.ServiceListener;
++import org.osgi.framework.ServiceObjects;
+ import org.osgi.framework.ServiceReference;
+ import org.osgi.framework.ServiceRegistration;
+
+@@ -105,6 +107,10 @@ public class MockBundleContext implements BundleContext {
+ throw new UnsupportedOperationException();
+ }
+
++ public <S> ServiceRegistration<S> registerService(Class<S> clazz, ServiceFactory<S> factory, Dictionary<String, ?> properties) {
++ throw new UnsupportedOperationException();
++ }
++
+ public ServiceReference[] getServiceReferences(String s, String s1) throws InvalidSyntaxException {
+ throw new UnsupportedOperationException();
+ }
+@@ -125,6 +131,10 @@ public class MockBundleContext implements BundleContext {
+ throw new UnsupportedOperationException();
+ }
+
++ public <S> ServiceObjects<S> getServiceObjects(ServiceReference<S> reference) {
++ throw new UnsupportedOperationException();
++ }
++
+ public File getDataFile(String s) {
+ throw new UnsupportedOperationException();
+ }
+--
+2.17.2
+
diff --git a/dev-java/felix-utils/metadata.xml b/dev-java/felix-utils/metadata.xml
new file mode 100644
index 000000000000..4af2d5d52d45
--- /dev/null
+++ b/dev-java/felix-utils/metadata.xml
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="project">
+ <email>java@gentoo.org</email>
+ </maintainer>
+ <upstream>
+ <doc>https://felix.apache.org/documentation/documentation.html</doc>
+ <remote-id type="github">apache/felix-dev</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-java/jakarta-servlet-api/Manifest b/dev-java/jakarta-servlet-api/Manifest
index d102c4cdd998..7cea03e459ee 100644
--- a/dev-java/jakarta-servlet-api/Manifest
+++ b/dev-java/jakarta-servlet-api/Manifest
@@ -1,5 +1,5 @@
DIST jakarta-servlet-api-4.0.4-RELEASE.tar.gz 188270 BLAKE2B 6c5db208603333abb9aa31726e60d489c5f860e3b6ad61e691d65e8b99909a8139f7677cec52d2a74ed9e8445ea2f0f510875ca32a2e512a09183245a9822889 SHA512 9cd613f8c33f5d415b06f70543eee926c81e87a14d03b837998a6c4db11ce5fb9c2b97f796f2936a63f2a6dc7847d7a97aec7a804b80234cd52e4bfdca9920a9
DIST jakarta-servlet-api-6.0.0-RELEASE.tar.gz 634690 BLAKE2B e48375f6a0b74950a2c50d73f2d50f7c79db96e22d5c845380bff670948cd1a1d1ea98eaf93e7fa02887e94010c8573382ba3f6fb52a8fca6fa98e5915c307f6 SHA512 65285bce3e8b5143eb33d548549ff5653c6c90f55e7a19e8fdb4a7799842d3430cfe0cebe54f7a7d253d9da4c2b6d4d7a08b35846636c11a2ca814b8311cecc7
-EBUILD jakarta-servlet-api-4.0.4.ebuild 939 BLAKE2B 1fe921708f4607a19425174f0c89e32854d8d5aae19b61ad7792d2aa258aec6d43451ed8d5f1da20766bcf0fe85e44d5380fbfb28861f17bff2b02929a78b05b SHA512 d2560d62f14496380384fdec3797f875505eb1ae021d97401987a35afea59dad91e988b3e4317f9f56e809e2ab534872e14228101b44c44b33639351e2000609
+EBUILD jakarta-servlet-api-4.0.4.ebuild 935 BLAKE2B 5007e96b0617853577ea6159caa7e587e9316568f5ea620c8366d27c9dbe74b280b646d8b60c2ad9dd37b1ff37556d9c2a5c49f74d918d0d0ec58ad243e2f3ff SHA512 cab6ebbea0966a0be1f785efd65e2af6ff8b80a602101877f8551be26ea945f20208d820743a8be59fc83aff4c84e12d03516cf2dea79b2de9d8e207b0ddf03c
EBUILD jakarta-servlet-api-6.0.0.ebuild 1278 BLAKE2B 6fa04052e4998180cbf2b91d2ad3ef2d8fdaa2eb3287d516458a93a4fba8b429f14817218ac276ba81816c9b5a3a3da51ec52860d8bda33bdb6bb9f8bd4ea06e SHA512 fc36764e2ed54b3e2818dc3d85f3f09adc8b0ae3e122b658ffdad48d546906793dff340c6c4308c47eb3a19eda2bf416101062f99db41ccff589b23ea8541467
MISC metadata.xml 332 BLAKE2B b9a06fe2a5573bde0da5b4f0d11a4cdf8c26738b67ac575014c01ed7fadfbc057a63fe2de907942a83d12afe8335933edbf671460b33939969bbb8d2657ffd81 SHA512 4c044f785c3a41116e24cc56b46b8e74327e4fbe29b11a25e1004e18d815023d073465658bb9467afbf80f8490e29815e1e52ce3d5ccde250ae48f0edbf0d380
diff --git a/dev-java/jakarta-servlet-api/jakarta-servlet-api-4.0.4.ebuild b/dev-java/jakarta-servlet-api/jakarta-servlet-api-4.0.4.ebuild
index 0ed4e93cbabd..063b338f3af5 100644
--- a/dev-java/jakarta-servlet-api/jakarta-servlet-api-4.0.4.ebuild
+++ b/dev-java/jakarta-servlet-api/jakarta-servlet-api-4.0.4.ebuild
@@ -14,7 +14,7 @@ SRC_URI="https://github.com/jakartaee/servlet/archive/${PV}-RELEASE.tar.gz -> ${
LICENSE="|| ( GPL-2 GPL-2-with-classpath-exception )"
SLOT="4"
-KEYWORDS="~amd64 ~arm ~arm64 ~ppc64 ~x86"
+KEYWORDS="amd64 ~arm arm64 ppc64 x86"
RDEPEND=">=virtual/jre-1.8:*"
DEPEND=">=virtual/jdk-1.8:*"
diff --git a/dev-java/junitparams/Manifest b/dev-java/junitparams/Manifest
index 4bae1d07288e..1494709004f4 100644
--- a/dev-java/junitparams/Manifest
+++ b/dev-java/junitparams/Manifest
@@ -1,5 +1,5 @@
AUX junitparams-1.1.1-test.patch 1894 BLAKE2B 8c2aacc726a9d5ac733971f20aa06ab21e1ac31cfa14cf23e11b0541777f22291417710f944fd3f6554791ea8deae022e42ea0af5177f6d97a542d55f510b8d4 SHA512 cae119b7c22b65e42a252d70bc92ad05cae568b2257d9640a498bc7cb15e3917f32c9fafd6b06ded8f739b4825c1662a8c4625114aab1252f4adf58cf52f1f34
DIST junitparams-1.1.1.tar.gz 96180 BLAKE2B 0b12d61841d13c893d90f1a28e6b881930a66a9359b368b601a9ee9ced1fa82ff17c9142610e1ed122684e454b86a46d9d2cf451544a900b0a86399484df141c SHA512 77e25bff2f821e8be4f3747c58e550b728aace1dac4ac98f0cd8f99235d6a2b0129e61d7f90063d5f85dd3dd4b0e5d0614e3591633bdcf5dfa452c62a114acae
-EBUILD junitparams-1.1.1-r1.ebuild 1615 BLAKE2B 6d3e241be8b1ffc2232703271183b5fed3413a479952737b54951706149d9bf15284f9e9820e3d339c6dbea8157616c494d0310973ac5676e241119ce0004d96 SHA512 d633981bea36043a7ccf0143d880c47e343811061ecfef504679069c40e7d50bf5e878e26be26c16279169d4fbbf8ee73724b11247d0d6f0cce75317eda003e1
+EBUILD junitparams-1.1.1-r1.ebuild 1611 BLAKE2B 0f3207254c58bde652ce5dcae54c757f150553101e0de07ea4ce01f650afd1e153f1edf7832cf5816fa530f36e3411dac3adf723b51d523753d791eae5440455 SHA512 92ec1912bcd09cd8e890ec3c37c9adccbec3ad0e58ecadc78c705f3407950bef196e992880f4a0f902d16fde2fc23faa29538c9d51bceab2b31ff21fd0efe400
EBUILD junitparams-1.1.1.ebuild 1655 BLAKE2B 37bd6c3c987ed19e92df2df16e4d60b1e54eeac60a2344672a8baf93c414e1e877f38a4f9a42a43b5b91b0f50340ee5d138c94b0bad8186dcfc8a43cebc61371 SHA512 6b4f66f8203a55aa81fd033e56df032dd985394cbd9774f4f9067f9b05fa868ff5ef4bfd8a9f65f56e4e6b891badf25ab98c5c44e0d693c3f72ce7261ac61a2d
MISC metadata.xml 437 BLAKE2B 67db2ff59007450448d4de713df69f7999909a2070c093bd65f994d98fedcb92aa7b262d1da757e19c401fd8380acd234469a3b8abc9a70d412aaf1059699efa SHA512 02fcfa155548a74dbf633c5ac5fd69a3bf6303b202e16dd96948c58d22bd05cc2575cd8a82b51b961b20c4f0b65ba41cda63d5981ff652c1000c5d6912de5f31
diff --git a/dev-java/junitparams/junitparams-1.1.1-r1.ebuild b/dev-java/junitparams/junitparams-1.1.1-r1.ebuild
index d0326740ce29..db8ec80d207d 100644
--- a/dev-java/junitparams/junitparams-1.1.1-r1.ebuild
+++ b/dev-java/junitparams/junitparams-1.1.1-r1.ebuild
@@ -18,7 +18,7 @@ SRC_URI="https://github.com/Pragmatists/JUnitParams/archive/refs/tags/JUnitParam
LICENSE="Apache-2.0"
SLOT="0"
-KEYWORDS="~amd64 ~arm ~arm64 ~ppc64 ~x86"
+KEYWORDS="amd64 ~arm arm64 ppc64 x86"
# Common dependencies
# POM: pom.xml
diff --git a/dev-java/zstd-jni/Manifest b/dev-java/zstd-jni/Manifest
index b4053e5ccc52..7c1612bbdd97 100644
--- a/dev-java/zstd-jni/Manifest
+++ b/dev-java/zstd-jni/Manifest
@@ -1,4 +1,6 @@
AUX zstd-jni-1.5.0.4-filter-flags.patch 369 BLAKE2B d79c3f5bee1e8faafb96a6d87c03c1cf5d1f292697fef1d7724394b9a415a30d9912946a612003e93a278648e4e5b1cc532e28d2c296c90b683eb7e0e769ac9c SHA512 fb56c386c6db387aa2c27a722d3c417813c427425d0dc6fb350ca02bee3f261efbb639eefbcc5dd58107f33c0211dba1b5bc696680e111a6338d0a67381ab533
DIST zstd-jni-1.5.0.5.tar.gz 9297542 BLAKE2B 96b2aa09d62c7a45c352d52358aa47a66c95c1b122bfc61b7e2b3aaa829e011a8ed6f71373130700ecdb7d8541ca6971c2cd7fda01be396053532c4aeeca3cb1 SHA512 b63858d58c7d1b2c9d120f49d1289caa7e5b429d0f8c3c95b7f58a5d432f09d41504c5f5b0934f53be8eadf3c1ab02a1a872e292bac465907fffe2a67108267e
+DIST zstd-jni-1.5.2.4.tar.gz 9343792 BLAKE2B 8a446b229d49671b3f38d630ecf2c2688210176af95b66c788027de89986ad1f23615582d670f1d7a0b3866572b05c722ad6c71783d208401844287e8149f65c SHA512 bf67fc6573f2b1e45bd4985186814a54fb948a1b7280b5cf2f6d2577626c1f70626a58994291ffb228f097c91d60e3ed52d56ad92830c8f386b96b11fb6cf4a2
EBUILD zstd-jni-1.5.0.5.ebuild 1649 BLAKE2B 1a8b753c98faf7e6c0c98bfa9d10c1c09cd4049ecbf4cc403a039e3fb9fc8636c6bdb8d59dcf99c2aa097f079bbff382c35891129393aee040e4b41b81b0d51c SHA512 af839745dc4e62c244e0dc5cc5e7d0acbf27434819967919004664f37c5d96ed7385459f729c21cd3a75d7e1b1c51f5f247604b64be115c00acf8b4f415a8420
+EBUILD zstd-jni-1.5.2.4.ebuild 1697 BLAKE2B 562c35fadde964224058c841db3433e16d79ddb2e8c448eea885265dcfcced5cd2071ff60e8060b55f6fd70fde3bc1ce7849be70c0871c22ccd78712927c25e4 SHA512 dad743a085b7bba1451cf92b6c6f4fd400285698e9ac20e56eebd18a079876cd0763c6b6a17d7c95c4c079c805fe59f8cac8b032ba1be4ea0fd7155004456f92
MISC metadata.xml 233 BLAKE2B 2b385ca77219f08b2874b3a4a91a0c836d3cb45ec44b05babb33d590c56ceb5337ecb93a8450a37f8e6bbf4cfc1455892e8142d22e0a1d527d40361e2dce350b SHA512 1acc975a7dc3344bc63282d652ca00d8245970b58353b4fd00f09a4859db3eaba2dcd85e1537d424b7174e4f9c01c2ffb10ec6d107b5c895c9ca20730666de7f
diff --git a/dev-java/zstd-jni/zstd-jni-1.5.2.4.ebuild b/dev-java/zstd-jni/zstd-jni-1.5.2.4.ebuild
new file mode 100644
index 000000000000..b613a58dbeee
--- /dev/null
+++ b/dev-java/zstd-jni/zstd-jni-1.5.2.4.ebuild
@@ -0,0 +1,67 @@
+# Copyright 1999-2022 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.2-4"
+
+inherit java-pkg-2 java-pkg-simple cmake
+
+DESCRIPTION="JNI bindings for Zstd native library"
+HOMEPAGE="https://github.com/luben/zstd-jni"
+# Snapshop needed because this version is not tagged.
+MY_COMMIT="37faee49643b2739457716e3752f44fcaa09005f"
+SRC_URI="https://github.com/luben/zstd-jni/archive/${MY_COMMIT}.tar.gz -> ${P}.tar.gz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~arm64 ~ppc64 ~x86"
+
+RDEPEND=">=virtual/jre-1.8:*"
+DEPEND=">=virtual/jdk-1.8:*"
+
+S="${WORKDIR}/zstd-jni-${MY_COMMIT}"
+
+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/v1.5.2-3/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
+ cat > resources/META-INF/MANIFEST.MF <<-EOF || die
+ Implementation-Version: $(ver_rs 3 -)
+ Bundle-NativeCode: libzstd-jni.so;osname=Linux"
+ EOF
+}
+
+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
+}