summaryrefslogtreecommitdiff
path: root/dev-java
diff options
context:
space:
mode:
Diffstat (limited to 'dev-java')
-rw-r--r--dev-java/byte-buddy/Manifest1
-rw-r--r--dev-java/byte-buddy/byte-buddy-1.12.18.ebuild175
-rw-r--r--dev-java/byte-buddy/files/byte-buddy-1.12.18-not-java20.patch52
-rw-r--r--dev-java/mockito/Manifest1
-rw-r--r--dev-java/mockito/mockito-4.8.1.ebuild56
-rw-r--r--dev-java/protobuf-java/Manifest1
-rw-r--r--dev-java/protobuf-java/protobuf-java-3.21.12.ebuild2
-rw-r--r--dev-java/protobuf-java/protobuf-java-3.21.9-r1.ebuild98
-rw-r--r--dev-java/protobuf-java/protobuf-java-3.21.9-r2.ebuild119
9 files changed, 1 insertions, 504 deletions
diff --git a/dev-java/byte-buddy/Manifest b/dev-java/byte-buddy/Manifest
index 574c86acf6cb..89691d52766a 100644
--- a/dev-java/byte-buddy/Manifest
+++ b/dev-java/byte-buddy/Manifest
@@ -1,2 +1 @@
-DIST byte-buddy-1.12.18.tar.gz 1924438 BLAKE2B 278ac97d60e62c7d44142a01da94113b29b483bff532f08fca7e345f383a4ddf83cb8c4d0544bce1879bb26909d048a76562cd816c4e9cb06695127ed849f08c SHA512 637e041f97981b85cd13ffecb0de47206b5c99d8b98561561414d8a599f5d53a6e047ba3ad9bc88ca030125221df3ebe49d6eff18a4093f4027d8cbf34a483b0
DIST byte-buddy-1.12.21.tar.gz 1931819 BLAKE2B 6b37b21d5f31c1564a3cc4d30870a7eca3c4c0512815db881a20602dc7ac970145dd9cc2bd6af4f2fdca0ff542b43dc675376c91f7ea7fdf3ea306112eba842b SHA512 9513caa9a5fc0924aea46e8de21ad2ad90320a582ad17be93f6305eb27f98d3af2c3fa09565083b5d97c0d9f0a1b0a9c7105738c4b65616e78bf2e7657c4ee76
diff --git a/dev-java/byte-buddy/byte-buddy-1.12.18.ebuild b/dev-java/byte-buddy/byte-buddy-1.12.18.ebuild
deleted file mode 100644
index c535d83e1432..000000000000
--- a/dev-java/byte-buddy/byte-buddy-1.12.18.ebuild
+++ /dev/null
@@ -1,175 +0,0 @@
-# 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/raphw/byte-buddy/archive/byte-buddy-1.12.18.tar.gz --slot 0 --keywords "~amd64 ~arm ~arm64 ~ppc64 ~x86" --ebuild byte-buddy-1.12.18.ebuild
-
-EAPI=8
-
-JAVA_PKG_IUSE="doc source test"
-MAVEN_ID="net.bytebuddy:byte-buddy-agent:1.12.18"
-JAVA_TESTING_FRAMEWORKS="junit-4"
-
-inherit java-pkg-2 java-pkg-simple
-
-DESCRIPTION="Offers convenience for attaching an agent to the local or a remote VM"
-HOMEPAGE="https://bytebuddy.net"
-SRC_URI="https://github.com/raphw/byte-buddy/archive/${P}.tar.gz"
-
-LICENSE="Apache-2.0"
-SLOT="0"
-KEYWORDS="amd64 ~arm arm64 ppc64 x86"
-
-DEPEND="
- >=virtual/jdk-11:*
- dev-java/asm:9
- dev-java/findbugs-annotations:0
- dev-java/jna:4
- dev-java/jsr305:0
- test? (
- dev-java/mockito:4
- )
-"
-
-RDEPEND=">=virtual/jre-1.8:*"
-
-PATCHES=(
- "${FILESDIR}/byte-buddy-1.12.18-not-java20.patch"
-)
-
-S="${WORKDIR}/byte-buddy-${P}"
-
-JAVA_CLASSPATH_EXTRA="
- asm-9
- findbugs-annotations
- jsr305
- jna-4
-"
-
-src_prepare() {
- default
- # https://github.com/raphw/byte-buddy/blob/byte-buddy-1.12.18/byte-buddy-agent/pom.xml#L142-L176
- cat > byte-buddy-agent/src/main/java/module-info.java <<-EOF || die
- module net.bytebuddy.agent {
- requires java.instrument;
- requires static jdk.attach;
- requires static com.sun.jna;
- requires static com.sun.jna.platform;
- requires java.base;
- exports net.bytebuddy.agent;
- exports net.bytebuddy.agent.utility.nullability;
- }
- EOF
-
- # adjustment for recent mockito versions
- sed \
- -e 's:verifyZeroInteractions:verifyNoInteractions:g' \
- -i byte-buddy-dep/src/test/java/net/bytebuddy/*.java \
- -i byte-buddy-dep/src/test/java/net/bytebuddy/*/*Test.java \
- -i byte-buddy-dep/src/test/java/net/bytebuddy/*/*/*Test.java \
- -i byte-buddy-dep/src/test/java/net/bytebuddy/*/*/*/*Test.java \
- -i byte-buddy-dep/src/test/java/net/bytebuddy/*/*/*/*/*Test.java \
- || die
-
- # instead of shading byte-buddy-dep we move it into byte-buddy.
- mv byte-buddy{-dep,}/src/main/java || die "cannot move sources"
-
- # https://github.com/raphw/byte-buddy/blob/byte-buddy-1.12.18/byte-buddy/pom.xml#L159-L195
- local exports="$( \
- sed -n '/<packages.list.external>/,/<\/packages.list.external/p' \
- byte-buddy/pom.xml \
- | sed -e 's:^:exports :' -e 's:,:;:' \
- | grep -v 'packages.list.external\|shade' | tr -s '[:space:]' \
- )" || die
- cat > byte-buddy/src/main/java/module-info.java <<-EOF || die
- module net.bytebuddy {
- requires static java.instrument;
- requires static java.management;
- requires static jdk.unsupported;
- requires static net.bytebuddy.agent;
- requires static com.sun.jna;
- requires static com.sun.jna.platform;
- requires java.base;
- ${exports}
- }
- EOF
-}
-
-src_compile() {
- einfo "Compiling byte-buddy-agent.jar"
- JAVA_JAR_FILENAME="byte-buddy-agent.jar"
- JAVA_RESOURCE_DIRS="byte-buddy-agent/src/main/resources"
- JAVA_SRC_DIR="byte-buddy-agent/src/main/java"
- java-pkg-simple_src_compile
- JAVA_GENTOO_CLASSPATH_EXTRA+=":byte-buddy-agent.jar"
- rm -r target || die
-
- einfo "Compiling byte-buddy.jar"
- JAVA_JAR_FILENAME="byte-buddy.jar"
- JAVA_MAIN_CLASS="net.bytebuddy.build.Plugin\$Engine\$Default"
- JAVA_RESOURCE_DIRS=()
- JAVA_SRC_DIR="byte-buddy/src/main/java"
- java-pkg-simple_src_compile
- JAVA_GENTOO_CLASSPATH_EXTRA+=":byte-buddy.jar"
- rm -r target || die
-
- if use doc; then
- einfo "Compiling javadocs"
- rm byte-buddy-agent/src/main/java/module-info.java || die
- JAVA_SRC_DIR=(
- "byte-buddy-agent/src/main/java"
- "byte-buddy/src/main/java"
- )
- JAVA_JAR_FILENAME="ignoreme.jar"
- java-pkg-simple_src_compile
- fi
-}
-
-src_test() {
- # instead of shading byte-buddy-dep we move it into byte-buddy.
- mv byte-buddy{-dep,}/src/test || die "cannot move tests"
-
- # @Ignore one of 4 tests, https://bugs.gentoo.org/863386
- sed \
- -e '/import org.junit.Test/a import org.junit.Ignore;' \
- -e '/testIgnoreExistingField()/i @Ignore' \
- -i byte-buddy/src/test/java/net/bytebuddy/build/CachedReturnPluginOtherTest.java || die
-
- # @Ignore one of 39 tests, https://bugs.gentoo.org/863386
- sed \
- -e '/import org.junit.Test/a import org.junit.Ignore;' \
- -e '/testNoParameterNameAndModifiers()/i @Ignore' \
- -i byte-buddy/src/test/java/net/bytebuddy/description/method/AbstractMethodDescriptionTest.java || die
-
- JAVA_TEST_GENTOO_CLASSPATH="junit-4,mockito-4"
-
- einfo "Testing byte-buddy-agent"
- # https://github.com/raphw/byte-buddy/issues/1321#issuecomment-1252776459
- JAVA_TEST_EXTRA_ARGS=( -Dnet.bytebuddy.test.jnapath="${EPREFIX}/usr/$(get_libdir)/jna-4/" )
- JAVA_TEST_SRC_DIR="byte-buddy-agent/src/test/java"
- java-pkg-simple_src_test
-
- einfo "Testing byte-buddy"
- JAVA_TEST_RESOURCE_DIRS=( byte-buddy/src/test/{resources,precompiled*} )
- JAVA_TEST_SRC_DIR="byte-buddy/src/test/java"
-
- JAVA_TEST_EXCLUDES=(
- # all tests in this class fail, https://bugs.gentoo.org/863386
- net.bytebuddy.build.CachedReturnPluginTest
- )
- java-pkg-simple_src_test
-}
-
-src_install() {
- java-pkg_dojar "byte-buddy-agent.jar"
- java-pkg_dojar "byte-buddy.jar"
-
- if use doc; then
- java-pkg_dojavadoc target/api
- fi
-
- if use source; then
- java-pkg_dosrc "byte-buddy-agent/src/main/java/*"
- java-pkg_dosrc "byte-buddy/src/main/java/*"
- fi
-}
diff --git a/dev-java/byte-buddy/files/byte-buddy-1.12.18-not-java20.patch b/dev-java/byte-buddy/files/byte-buddy-1.12.18-not-java20.patch
deleted file mode 100644
index 73b9bccdab3e..000000000000
--- a/dev-java/byte-buddy/files/byte-buddy-1.12.18-not-java20.patch
+++ /dev/null
@@ -1,52 +0,0 @@
-# We don't have JAVA_V20
---- a/byte-buddy-dep/src/main/java/net/bytebuddy/ClassFileVersion.java
-+++ b/byte-buddy-dep/src/main/java/net/bytebuddy/ClassFileVersion.java
-@@ -140,11 +140,6 @@ public class ClassFileVersion implements Comparable<ClassFileVersion>, Serializa
- */
- public static final ClassFileVersion JAVA_V19 = new ClassFileVersion(Opcodes.V19);
-
-- /**
-- * The class file version of Java 20.
-- */
-- public static final ClassFileVersion JAVA_V20 = new ClassFileVersion(Opcodes.V20);
--
- /**
- * A version locator for the executing JVM.
- */
-@@ -235,8 +230,6 @@ public class ClassFileVersion implements Comparable<ClassFileVersion>, Serializa
- return JAVA_V18;
- } else if (javaVersionString.equals("1.19") || javaVersionString.equals("19")) {
- return JAVA_V19;
-- } else if (javaVersionString.equals("1.20") || javaVersionString.equals("20")) {
-- return JAVA_V20;
- } else {
- if (OpenedClassReader.EXPERIMENTAL) {
- try {
-@@ -300,8 +293,6 @@ public class ClassFileVersion implements Comparable<ClassFileVersion>, Serializa
- return JAVA_V18;
- case 19:
- return JAVA_V19;
-- case 20:
-- return JAVA_V20;
- default:
- if (OpenedClassReader.EXPERIMENTAL && javaVersion > 0) {
- return new ClassFileVersion(BASE_VERSION + javaVersion);
-@@ -317,7 +308,7 @@ public class ClassFileVersion implements Comparable<ClassFileVersion>, Serializa
- * @return The latest officially supported Java version.
- */
- public static ClassFileVersion latest() {
-- return ClassFileVersion.JAVA_V20;
-+ return ClassFileVersion.JAVA_V19;
- }
-
- /**
---- a/byte-buddy-dep/src/test/java/net/bytebuddy/ClassFileVersionKnownVersionsTest.java
-+++ b/byte-buddy-dep/src/test/java/net/bytebuddy/ClassFileVersionKnownVersionsTest.java
-@@ -77,7 +77,6 @@ public class ClassFileVersionKnownVersionsTest {
- {17, 17, Arrays.asList("1.17", "17"), Opcodes.V17, (short) 61, (short) 0, true, true, true},
- {18, 18, Arrays.asList("1.18", "18"), Opcodes.V18, (short) 62, (short) 0, true, true, true},
- {19, 19, Arrays.asList("1.19", "19"), Opcodes.V19, (short) 63, (short) 0, true, true, true},
-- {20, 20, Arrays.asList("1.20", "20"), Opcodes.V20, (short) 64, (short) 0, true, true, true}
- });
- }
-
diff --git a/dev-java/mockito/Manifest b/dev-java/mockito/Manifest
index 8237deb884ce..acab952bac89 100644
--- a/dev-java/mockito/Manifest
+++ b/dev-java/mockito/Manifest
@@ -1,3 +1,2 @@
DIST mockito-4.11.0.tar.gz 1050218 BLAKE2B 7f7298e233c9cdb0b475aa201300a1063fd8efc587f3a4de0cb1caedd6f6506a32f8e9b0548fa5898892515ec96625153a1a2ad65fc8070b7dc6c254206fbbfd SHA512 b1de01c8e9b2fc4eef0013af562efeac7e22babdebbd8c7842ecd55071627e11c5e6ab575436990ea70d4ceefb56fc260333278c8d4b833e454956bf89841fc5
-DIST mockito-4.8.1.tar.gz 1045454 BLAKE2B 82efc18afa8efae2495fdd5b0db58ddde8ea5cae9b7dfb554075924e343f5c0290a7f5d63b18c217b33a11c31a13ac40fcd28a752b0deae737c4bd75ea13c044 SHA512 dd2adc2211637daa86f5174e333744c5a1ff29dcccf9866a33933e2ba945d99781d5860c6059e6fa06a649d9a45417ab13066f8c8e896cb753b6e0869f0e2b03
DIST mockito-core-1.9.5-sources.jar 723074 BLAKE2B e553a923542a1a2574ee0cda5979d168cc3e9644dbbc9fceed2301ae1bac150c4e35dbc4432d50e2479efea2a6cd35ec19c62c3598f61709f1f5dc8959cc0155 SHA512 271e626c3b5be9a7d7c82a2f0bf44077aabd51924b0956a88633ace7fe8c134d8cd1f89ce348ce0d15ccce55a50027e303836d2d2f430500317b6136d308d3d4
diff --git a/dev-java/mockito/mockito-4.8.1.ebuild b/dev-java/mockito/mockito-4.8.1.ebuild
deleted file mode 100644
index 91e98b36fd76..000000000000
--- a/dev-java/mockito/mockito-4.8.1.ebuild
+++ /dev/null
@@ -1,56 +0,0 @@
-# Copyright 1999-2022 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-# Tests not enabled, wants junit-jupiter.
-# "${S}/settings.gradle.kts"
-JAVA_PKG_IUSE="doc source"
-MAVEN_ID="org.mockito:mockito-core:4.8.1"
-
-inherit java-pkg-2 java-pkg-simple
-
-DESCRIPTION="Mockito mock objects library core API and implementation"
-HOMEPAGE="https://github.com/mockito/mockito"
-SRC_URI="https://github.com/mockito/mockito/archive/v${PV}.tar.gz -> ${P}.tar.gz"
-
-LICENSE="MIT"
-SLOT="4"
-KEYWORDS="amd64 ~arm arm64 ppc64 x86"
-
-CP_DEPEND="
- dev-java/asm:9
- >=dev-java/byte-buddy-1.12.13:0
- dev-java/objenesis:0
-"
-
-DEPEND="
- dev-java/junit:4
- >=dev-java/opentest4j-1.2.0-r1:0
- >=virtual/jdk-1.8:*
- ${CP_DEPEND}
-"
-
-RDEPEND="
- >=virtual/jre-1.8:*
- ${CP_DEPEND}
-"
-
-S="${WORKDIR}/${P}"
-
-JAVA_CLASSPATH_EXTRA="
- junit-4
- opentest4j
-"
-
-JAVA_SRC_DIR="src/main/java"
-JAVA_AUTOMATIC_MODULE_NAME="org.mockito"
-
-src_prepare() {
- default
- # dev-java/byte-buddy is built from byte-buddy-dep without shaded stuff.
- sed \
- -e 's:net.bytebuddy.jar.asm:org.objectweb.asm:' \
- -i src/main/java/org/mockito/internal/creation/bytebuddy/MockMethodAdvice.java \
- -i src/main/java/org/mockito/internal/creation/bytebuddy/InlineBytecodeGenerator.java || die
-}
diff --git a/dev-java/protobuf-java/Manifest b/dev-java/protobuf-java/Manifest
index 37ef43909f55..1af6191837ab 100644
--- a/dev-java/protobuf-java/Manifest
+++ b/dev-java/protobuf-java/Manifest
@@ -1,3 +1,2 @@
DIST protobuf-21.12.tar.gz 5141166 BLAKE2B 33500612d103afb817062486a741e8e5503f82c42c70054d47d1899e6bb79f3fdde2666cad5b8eff6e1bc539c3b0cdf9f2b125ce7e5d3a459a69e84d67ab535e SHA512 2dc8f552388438268d8b9f7a9e84c6abf1736be3d5031438c789c317410c9f4b5cedd25bf7da6d67b3ba32ca890869f9ddaab2284d6ac0e734a5b135ffbb1346
-DIST protobuf-21.9.tar.gz 5110670 BLAKE2B a4f5b7f58e1c5904ca990b100a72992f6f56177b28773f8de8c99e4158391d33cfb8aa8575915887fc9ae4294faf81d4ff6b470bc07b394bfd5885a09ba0fafe SHA512 6954b42d21921e630173b7848c056ab95635627d8eddec960f3db2ddda13eedde00520a9b350722e76e2998649eb8ebe10758e1db938b6a91e38ff3295b1b7c1
DIST truth-1.1.3.jar 243021 BLAKE2B a59149038c62ef5dd352b13d4b393e1b7715fbafe5ed86ec2d16d722c738a31dcdca10132fc73b17b367ac4309e5407ba2e489f8d4c8fbca60ce5f35ae75d1e3 SHA512 f29a9fb070aff8a32358a7b6c8998c0095de5d8d68afa7f7bac759c7050309deff929e767657ecbbefd96163460f10255ca01bc567ab30df4834b9d916a4fae8
diff --git a/dev-java/protobuf-java/protobuf-java-3.21.12.ebuild b/dev-java/protobuf-java/protobuf-java-3.21.12.ebuild
index c51ed676a58d..d9140d989305 100644
--- a/dev-java/protobuf-java/protobuf-java-3.21.12.ebuild
+++ b/dev-java/protobuf-java/protobuf-java-3.21.12.ebuild
@@ -19,7 +19,7 @@ SRC_URI="https://github.com/protocolbuffers/protobuf/archive/v${PV#3.}.tar.gz ->
LICENSE="BSD"
SLOT="0"
-KEYWORDS="~amd64 ~arm ~arm64 ~ppc64 ~x86 ~amd64-linux ~x86-linux ~x64-macos"
+KEYWORDS="amd64 ~arm ~arm64 ppc64 x86 ~amd64-linux ~x86-linux ~x64-macos"
DEPEND="
>=virtual/jdk-1.8:*
diff --git a/dev-java/protobuf-java/protobuf-java-3.21.9-r1.ebuild b/dev-java/protobuf-java/protobuf-java-3.21.9-r1.ebuild
deleted file mode 100644
index 4929dd830b68..000000000000
--- a/dev-java/protobuf-java/protobuf-java-3.21.9-r1.ebuild
+++ /dev/null
@@ -1,98 +0,0 @@
-# Copyright 2008-2023 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.protobuf:protobuf-java:3.21.9"
-# Tests not enabled, depend on com.google.truth which is not packaged
-# https://github.com/protocolbuffers/protobuf/blob/v21.9/java/core/pom.xml#L35-L40
-# JAVA_TESTING_FRAMEWORKS="junit-4"
-
-inherit edo java-pkg-2 java-pkg-simple
-
-PARENT_PN="${PN/-java/}"
-PARENT_PV="$(ver_cut 2-)"
-PARENT_P="${PARENT_PN}-${PARENT_PV}"
-PARENT_SUBSLOT="32"
-
-DESCRIPTION="Google's Protocol Buffers - Java bindings"
-HOMEPAGE="https://developers.google.com/protocol-buffers/"
-SRC_URI="
- https://github.com/protocolbuffers/protobuf/archive/v${PARENT_PV}.tar.gz
- -> ${PARENT_P}.tar.gz
-"
-
-LICENSE="BSD"
-SLOT="0"
-KEYWORDS="amd64 ~arm ~arm64 ppc64 x86 ~amd64-linux ~x86-linux ~x64-macos"
-
-DEPEND="
- >=virtual/jdk-1.8:*
- test? (
- dev-java/guava:0
- dev-java/mockito:4
- )
-"
-RDEPEND=">=virtual/jre-1.8:*"
-
-BDEPEND="dev-libs/protobuf:0/${PARENT_SUBSLOT}"
-
-S="${WORKDIR}/${PARENT_P}/java"
-
-JAVA_AUTOMATIC_MODULE_NAME="com.google.protobuf"
-JAVA_JAR_FILENAME="protobuf.jar"
-JAVA_RESOURCE_DIRS="core/src/main/resources"
-JAVA_SRC_DIR="core/src/main/java"
-
-JAVA_TEST_GENTOO_CLASSPATH="guava,junit-4,mockito-4"
-JAVA_TEST_RESOURCE_DIRS="../src"
-JAVA_TEST_SRC_DIR="core/src/test/java"
-
-# Same than PATCHES but from repository's root directory,
-# please see function `src_prepare` below.
-# Simplier for users IMHO.
-PARENT_PATCHES=(
-)
-
-# Here for patches within "java/" subdirectory.
-PATCHES=(
-)
-
-src_prepare() {
- pushd "${WORKDIR}/${PARENT_P}" > /dev/null || die
- [[ -n "${PARENT_PATCHES[@]}" ]] && eapply "${PARENT_PATCHES[@]}"
- eapply_user
- popd > /dev/null || die
-
- # Same than default without the eapply_user part, this last is kept
- # for the parent directory.
- # It looks like function java-pkg-2_src_prepare doesn’t call "default".
- [[ -n "${PATCHES[@]}" ]] && eapply "${PATCHES[@]}"
-
- # Remove bundled jars
- java-pkg_clean
-
- java-pkg-2_src_prepare
-
- # There is also compiler/plugin, but not in this list because in a subdirectory
- core_protos=( any api descriptor duration empty field_mask source_context struct timestamp type wrappers )
-
- # Copy resources from ../src/google/protobuf according to
- # https://github.com/protocolbuffers/protobuf/blob/v21.9/java/core/pom.xml#L45-L61
- mkdir -p "${JAVA_RESOURCE_DIRS}/google/protobuf/compiler" || die
- local core_proto
- for core_proto in "${core_protos[@]}"; do
- cp "../src/google/protobuf/${core_proto}.proto" \
- "${JAVA_RESOURCE_DIRS}/google/protobuf" \
- || die
- done
- cp {../src,"${JAVA_RESOURCE_DIRS}"}/google/protobuf/compiler/plugin.proto || die
-
- # Generate 146 .java files according to
- # https://github.com/protocolbuffers/protobuf/blob/v21.9/java/core/generate-sources-build.xml
- for core_proto in "${core_protos[@]}" compiler/plugin; do
- edo "${BROOT}/usr/bin/protoc" \
- --java_out="${JAVA_SRC_DIR}" -I../src ../src/google/protobuf/"${core_proto}".proto
- done
-}
diff --git a/dev-java/protobuf-java/protobuf-java-3.21.9-r2.ebuild b/dev-java/protobuf-java/protobuf-java-3.21.9-r2.ebuild
deleted file mode 100644
index ef157767a703..000000000000
--- a/dev-java/protobuf-java/protobuf-java-3.21.9-r2.ebuild
+++ /dev/null
@@ -1,119 +0,0 @@
-# Copyright 2008-2023 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.protobuf:protobuf-java:3.21.9"
-JAVA_TESTING_FRAMEWORKS="junit-4"
-
-inherit java-pkg-2 java-pkg-simple
-
-DESCRIPTION="Google's Protocol Buffers - Java bindings"
-HOMEPAGE="https://developers.google.com/protocol-buffers/"
-# Currently we bundle the binary version of truth.jar used only for tests, we don't install it.
-# And we build artifact 3.21.9 from the 21.9 tarball in order to allow sharing the tarball with
-# dev-libs/protobuf.
-SRC_URI="https://github.com/protocolbuffers/protobuf/archive/v${PV#3.}.tar.gz -> protobuf-${PV#3.}.tar.gz
- test? ( https://repo1.maven.org/maven2/com/google/truth/truth/1.1.3/truth-1.1.3.jar )"
-
-LICENSE="BSD"
-SLOT="0"
-KEYWORDS="~amd64 ~arm ~arm64 ~ppc64 ~x86 ~amd64-linux ~x86-linux ~x64-macos"
-
-DEPEND="
- >=virtual/jdk-1.8:*
- test? (
- dev-java/guava:0
- dev-java/mockito:4
- )
-"
-RDEPEND=">=virtual/jre-1.8:*"
-BDEPEND="~dev-libs/protobuf-${PV#3.}:0"
-
-S="${WORKDIR}/protobuf-${PV#3.}/java"
-
-JAVA_AUTOMATIC_MODULE_NAME="com.google.protobuf"
-JAVA_JAR_FILENAME="protobuf.jar"
-JAVA_RESOURCE_DIRS="core/src/main/resources"
-JAVA_SRC_DIR="core/src/main/java"
-
-JAVA_TEST_GENTOO_CLASSPATH="guava,junit-4,mockito-4"
-JAVA_TEST_RESOURCE_DIRS="core/src/test/proto"
-JAVA_TEST_SRC_DIR="core/src/test/java"
-
-src_prepare() {
- default
-
- mkdir "${JAVA_RESOURCE_DIRS}" || die
- # https://github.com/protocolbuffers/protobuf/blob/v21.9/java/core/pom.xml#L43-L62
- echo $(sed \
- -n '/google\/protobuf.*\.proto/s:.*<include>\(.*\)</include>:-C ../../../../../src \1:p' \
- "${S}/core/pom.xml") > "${T}/core_proto" || die "echo to core_proto failed"
- # Copy them from ../src/google/protobuf to JAVA_RESOURCE_DIRS
- pushd "${JAVA_RESOURCE_DIRS}" || die
- jar cv "@${T}/core_proto" | jar xv
- assert "Copying protos failed"
- popd || die
-
- # https://github.com/protocolbuffers/protobuf/blob/v21.9/java/core/generate-sources-build.xml
- einfo "Replace variables for code generation "
- sed \
- -e 's:${generated.sources.dir}:core/src/main/java:' \
- -e 's:${protobuf.source.dir}:../src:' \
- -e 's:^.*value="::' -e 's:\"/>::' \
- -e '/project\|echo\|mkdir\|exec/d' \
- -i core/generate-sources-build.xml || die "sed to sources failed"
-
- einfo "Run protoc to generate sources"
- protoc @core/generate-sources-build.xml || die "protoc sources failed"
-}
-
-src_test() {
- JAVA_GENTOO_CLASSPATH_EXTRA="${DISTDIR}/truth-1.1.3.jar"
-
- # https://github.com/protocolbuffers/protobuf/blob/v21.9/java/core/generate-test-sources-build.xml
- einfo "Replace variables for code generation "
- sed \
- -e 's:${generated.testsources.dir}:core/src/test/java:' \
- -e 's:${protobuf.source.dir}:../src:' \
- -e 's:${test.proto.dir}:core/src/test/proto:' \
- -e 's:^.*value="::' -e 's:\"/>::' \
- -e '/project\|mkdir\|exec\|Also generate/d' \
- -i core/generate-test-sources-build.xml || die "sed to test sources failed"
-
- # Remove second exec from the file. Makes trouble here. We run it separately.
- sed '50,54d' -i core/generate-test-sources-build.xml || die "cannot remove lines"
-
- einfo "Running protoc first exec"
- protoc @core/generate-test-sources-build.xml || die "protoc I failed"
-
- einfo "Running protoc second exec"
- protoc --java_out=lite:core/src/test/java \
- --proto_path=../src \
- --proto_path=core/src/test/proto \
- core/src/test/proto/com/google/protobuf/nested_extension_lite.proto \
- core/src/test/proto/com/google/protobuf/non_nested_extension_lite.proto \
- || die "protoc II failed"
-
- # Ignore two failing test cases from CodedOutputStreamTest.java
- sed \
- -e '/import org.junit.Test/a import org.junit.Ignore;' \
- -e '/testWriteWholeMessage/i @Ignore' \
- -e '/testWriteWholePackedFieldsMessage/i @Ignore' \
- -i core/src/test/java/com/google/protobuf/CodedOutputStreamTest.java || die
-
- einfo "Running tests"
- # Exclude MapInitializationOrderTest and CachedFieldSizeTest
- pushd core/src/test/java || die
- local JAVA_TEST_RUN_ONLY=$(find * \
- -wholename "**/*Test.java" \
- ! -wholename "**/Abstract*Test.java" \
- ! -name "MapInitializationOrderTest.java" \
- ! -name "CachedFieldSizeTest.java" \
- )
- popd
- JAVA_TEST_RUN_ONLY="${JAVA_TEST_RUN_ONLY//.java}"
- JAVA_TEST_RUN_ONLY="${JAVA_TEST_RUN_ONLY//\//.}"
- java-pkg-simple_src_test
-}