diff options
| author | Volkmar W. Pogatzki <gentoo@pogatzki.net> | 2024-11-01 00:14:42 +0100 |
|---|---|---|
| committer | Miroslav Šulc <fordfrog@gentoo.org> | 2025-04-20 20:19:07 +0200 |
| commit | 0792ba8dd998e4f087ca581e51ee836036210bcc (patch) | |
| tree | b699d691857cd4982c17e369d0030f9997b532f8 /dev-java/commons-logging/commons-logging-1.3.5.ebuild | |
| parent | bb7033eecec121a4bee5274442e6094846c3b340 (diff) | |
| download | gentoo-0792ba8dd998e4f087ca581e51ee836036210bcc.tar.gz gentoo-0792ba8dd998e4f087ca581e51ee836036210bcc.tar.bz2 gentoo-0792ba8dd998e4f087ca581e51ee836036210bcc.zip | |
dev-java/commons-logging: add 1.3.5
Setting JAVA_MODULE_INFO_OUT and JAVA_INTERMEDIATE_JAR_NAME in the ebuild
lets the java-pkg-simple.eclass generate module-info.java and compile
and package it as 'META-INF/versions/9/module-info.class'.
Signed-off-by: Volkmar W. Pogatzki <gentoo@pogatzki.net>
Closes: https://github.com/gentoo/gentoo/pull/41428/commits/e580e52237d04b37c83685b3dcd5bee81e35f511
Signed-off-by: Miroslav Šulc <fordfrog@gentoo.org>
Diffstat (limited to 'dev-java/commons-logging/commons-logging-1.3.5.ebuild')
| -rw-r--r-- | dev-java/commons-logging/commons-logging-1.3.5.ebuild | 159 |
1 files changed, 159 insertions, 0 deletions
diff --git a/dev-java/commons-logging/commons-logging-1.3.5.ebuild b/dev-java/commons-logging/commons-logging-1.3.5.ebuild new file mode 100644 index 000000000000..f970a077e1ac --- /dev/null +++ b/dev-java/commons-logging/commons-logging-1.3.5.ebuild @@ -0,0 +1,159 @@ +# Copyright 1999-2025 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +JAVA_PKG_IUSE="doc source test" +MAVEN_ID="commons-logging:commons-logging:${PV}" +JAVA_TESTING_FRAMEWORKS="junit-4" + +inherit java-pkg-2 java-pkg-simple verify-sig + +DESCRIPTION="Thin adapter allowing configurable bridging to other well known logging systems" +HOMEPAGE="https://commons.apache.org/proper/commons-logging/" +SRC_URI="mirror://apache/commons/logging/source/${P}-src.tar.gz + verify-sig? ( https://downloads.apache.org/commons/logging/source/${P}-src.tar.gz.asc )" +S="${WORKDIR}/${P}-src" + +LICENSE="Apache-2.0" +SLOT="0" +KEYWORDS="~amd64 ~arm64 ~ppc64 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x64-solaris" +IUSE="log4j" + +# src/test/java/org/apache/commons/logging/tccl/logfactory/AdaptersTcclTestCase.java:26: +# error: cannot find symbol +# import org.apache.commons.logging.impl.Log4jApiLogFactory; +# ^ +# symbol: class Log4jApiLogFactory +# location: package org.apache.commons.logging.impl +REQUIRED_USE="test? ( log4j )" + +VERIFY_SIG_OPENPGP_KEY_PATH="/usr/share/openpgp-keys/commons.apache.org.asc" + +BDEPEND="verify-sig? ( sec-keys/openpgp-keys-apache-commons )" + +COMMON_DEPEND=" + dev-java/jakarta-servlet-api:4 + dev-java/slf4j-api:0 + log4j? ( + dev-java/log4j-12-api:2 + dev-java/log4j-api:2 + ) +" + +DEPEND=" + ${COMMON_DEPEND} + >=virtual/jdk-11:* + test? ( + >=dev-java/commons-io-2.18.0:1 + dev-java/junit:5 + ) +" + +RDEPEND=" + ${COMMON_DEPEND} + >=virtual/jre-1.8:* +" + +DOCS=( NOTICE.txt src/changes/changes.xml ) +HTML_DOCS=( PROPOSAL.html ) + +JAVA_GENTOO_CLASSPATH=" + jakarta-servlet-api-4 + slf4j-api +" + +JAVA_INTERMEDIATE_JAR_NAME="org.apache.${PN/-/.}" +JAVA_MODULE_INFO_OUT="src/main" +JAVA_SRC_DIR="src/main/java" + +src_prepare() { + java-pkg-2_src_prepare + + # https://avalon.apache.org/closed.html Apache Avalon has closed. + rm src/main/java/org/apache/commons/logging/impl/{Avalon,LogKit}Logger.java || die + rm src/test/java/org/apache/commons/logging/{avalon/AvalonLogger,logkit/Standard}TestCase.java || die + + if use !log4j; then + rm src/main/java/org/apache/commons/logging/impl/Log4JLogger.java || die + rm src/main/java/org/apache/commons/logging/impl/Log4jApiLogFactory.java || die + else + JAVA_GENTOO_CLASSPATH+=" + log4j-12-api-2 + log4j-api-2 + " + fi +} + +src_compile() { + java-pkg-simple_src_compile + + pushd target/classes > /dev/null || die + + # pom.xml, lines 81-103 + jar -cvf ../../commons-logging-api.jar \ + $(find . -type f -name '*.class' \ + ! -name 'Jdk13LumberjackLogger.class' \ + ! -name 'ServletContextCleaner.class' \ + ) || die + + # pom.xml, lines 205-124 + jar -cvf ../../commons-logging-adapters.jar \ + $(find . -type f -path './org/apache/commons/logging/impl/**.class' \ + ! -name 'WeakHashtable*.class' \ + ! -name 'LogFactoryImpl*.class' \ + ) || die + + popd > /dev/null || die +} + +src_test() { + # Do not run Log4j tests because these tests use an Appender to verify + # logging correctness. The log4j-12-api bridge no longer supports using an + # Appender for verifications since the methods for adding an Appender in + # the bridge "are largely no-ops". This means an Appender's state would + # never be changed by log4j-12-api after new messages are logged. The test + # cases, however, expect changes to the Appender's state in such an event, + # so they would fail with log4j-12-api. + # https://logging.apache.org/log4j/log4j-2.8/log4j-1.2-api/index.html + rm src/test/java/org/apache/commons/logging/pathable/ParentFirstTestCase.java || die # Log4JLogger + rm src/test/java/org/apache/commons/logging/pathable/ChildFirstTestCase.java || die # Log4JLogger + rm -r src/test/java/org/apache/commons/logging/log4j || die + rm src/test/java/org/apache/commons/logging/log4j2/CallerInformationTestCase.java || die + # error: package ch.qos.logback.classic does not exist + rm src/test/java/org/apache/commons/logging/slf4j/CallerInformationTestCase.java || die + + JAVA_TEST_EXCLUDES=( + org.apache.commons.logging.jdk14.TestHandler # No runnable methods + # junit.framework.AssertionFailedError: Wrong factory retrieved through + # ServiceLoader: org.apache.commons.logging.impl.Slf4jLogFactory + org.apache.commons.logging.serviceloader.ServiceLoaderTestCase + # junit.framework.ComparisonFailure: Log class expected:<...ommons.logging.impl.[NoOp]Log> + # but was:<...ommons.logging.impl.[Slf4jLogFactory$Slf4j]Log> + org.apache.commons.logging.noop.NoOpLogTestCase + # org.junit.runners.model.InvalidTestClassyyError: Invalid test class + org.apache.commons.logging.LogSourceTest # No runnable methods + # junit.framework.AssertionFailedError: Logging config succeeded when context class loader was null! + org.apache.commons.logging.LoadTestCase + # junit.framework.AssertionFailedError: + # expected:<org.apache.commons.logging.PathableClassLoader@1edf1c96> + # but was:<org.apache.commons.logging.PathableClassLoader@15615099> + org.apache.commons.logging.tccl.logfactory.AdaptersTcclTestCase + ) + JAVA_TEST_EXTRA_ARGS=( + -Dcommons-lang3="$(java-pkg_getjars commons-lang-3.6)" + -Dlog4j-api="commons-logging-api.jar" + -Dservlet-api="$(java-pkg_getjars jakarta-servlet-api-4)" + -Dcommons-logging="commons-logging.jar" + -Dcommons-logging-api="commons-logging-api.jar" + -Dcommons-logging-adapters="commons-logging-adapters.jar" + -Dtestclasses="target/test-classes" + ) + if use log4j; then + JAVA_TEST_EXTRA_ARGS+=" -Dlog4j12=$(java-pkg_getjars log4j-12-api-2,log4j-core-2)" + fi + JAVA_TEST_GENTOO_CLASSPATH="commons-io-1 commons-lang-3.6 junit-4 junit-5" + JAVA_TEST_RESOURCE_DIRS="src/test/resources" + JAVA_TEST_SRC_DIR="src/test/java" + java-pkg-simple_src_test +} |
