commit:     be6d4aedb75196ea28590be17832958673113f3b
Author:     Volkmar W. Pogatzki <gentoo <AT> pogatzki <DOT> net>
AuthorDate: Fri Apr 29 14:47:36 2022 +0000
Commit:     Sam James <sam <AT> gentoo <DOT> org>
CommitDate: Fri Oct  3 05:06:15 2025 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=be6d4aed

dev-java/auto-value: new package, add 1.11.0

Annotation processor for @AutoValue annotations. It is needed for
building packages like dev-java/testparapeterinjector, dev-java/truth or
dev-java/compile-testing.

An example how to use it can also be seen in src_test() of this ebuild.
Further information in 'man 1 javac' (look for '-processorpath') and in
the manual.

Signed-off-by: Volkmar W. Pogatzki <gentoo <AT> pogatzki.net>
Part-of: https://github.com/gentoo/gentoo/pull/43470
Signed-off-by: Sam James <sam <AT> gentoo.org>

 dev-java/auto-value/Manifest                 |   1 +
 dev-java/auto-value/auto-value-1.11.0.ebuild | 184 +++++++++++++++++++++++++++
 dev-java/auto-value/metadata.xml             |  11 ++
 3 files changed, 196 insertions(+)

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..26c9e02a820c
--- /dev/null
+++ b/dev-java/auto-value/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>[email protected]</email>
+       </maintainer>
+       <upstream>
+               
<doc>https://github.com/google/auto/blob/main/value/userguide/index.md</doc>
+               <remote-id type="github">google/auto</remote-id>
+       </upstream>
+</pkgmetadata>

Reply via email to