diff options
author | Yuan Liao <liaoyuan@gmail.com> | 2022-01-08 10:01:46 -0800 |
---|---|---|
committer | Miroslav Šulc <fordfrog@gentoo.org> | 2022-01-09 10:05:04 +0100 |
commit | 14aef16e0d785ec9f16650dd4f70969cda87863b (patch) | |
tree | 04b475065fb1b6f94b48b7df5ffc93ac309f2b50 | |
parent | dev-java/objenesis: update HOMEPAGE (diff) | |
download | gentoo-14aef16e0d785ec9f16650dd4f70969cda87863b.tar.gz gentoo-14aef16e0d785ec9f16650dd4f70969cda87863b.tar.bz2 gentoo-14aef16e0d785ec9f16650dd4f70969cda87863b.zip |
dev-java/jackrabbit-webdav: Fix tests and use HTTPS HOMEPAGE for 2.10.1
The test failure bug being fixed by this commit is caused by
servlet-api-4.0 being added to the classpath earlier than
servlet-api-2.3 by java-ant-2.eclass. servlet-api-4.0 is present in the
classpath because it is a transitive dependency of this package
introduced by dev-java/bndlib, but it is incompatible with the test
sources. The tests are supposed to be compiled with servlet-api-2.3,
but javac will choose servlet-api-4.0 because it appears earlier in the
classpath.
java-ant-2.eclass constructs the classpath by traversing the dependency
tree using depth-first search, so transitive dependencies like
servlet-api-4.0 can appear earlier than direct dependencies like
servlet-api-2.3. java-pkg-simple.eclass, on the other hand, uses
breadth-first search, which ensures that all direct dependencies will be
visited earlier than any transitive dependencies in the traversal.
Therefore, simply switching to java-pkg-simple.eclass resolves this bug.
However, by doing this, this ebuild now relies on the undocumented
implementation detail of java-pkg-simple.eclass, that the dependency
tree is traversed with BFS.
If java-pkg-simple.eclass switches to DFS for classpath construction in
the future, the same bug might resurface!
Yet there are still benefits of using java-pkg-simple.eclass even if it
were not done merely for the bug. The upstream uses Maven instead of
Ant to build the project -- the build.xml used by java-ant-2.eclass is a
Gentoo custom one. Switching to java-pkg-simple.eclass means that there
is no more maintenance burden of this package caused by the custom
build.xml. As of this commit, ebuilds for slot 2 of this package also
use java-pkg-simple.eclass, so the eclass switch fosters consistency.
Closes: https://bugs.gentoo.org/804594
Signed-off-by: Yuan Liao <liaoyuan@gmail.com>
Closes: https://github.com/gentoo/gentoo/pull/23705
Signed-off-by: Miroslav Šulc <fordfrog@gentoo.org>
-rw-r--r-- | dev-java/jackrabbit-webdav/jackrabbit-webdav-2.10.1-r2.ebuild | 51 |
1 files changed, 51 insertions, 0 deletions
diff --git a/dev-java/jackrabbit-webdav/jackrabbit-webdav-2.10.1-r2.ebuild b/dev-java/jackrabbit-webdav/jackrabbit-webdav-2.10.1-r2.ebuild new file mode 100644 index 000000000000..c45c8b6d3bb0 --- /dev/null +++ b/dev-java/jackrabbit-webdav/jackrabbit-webdav-2.10.1-r2.ebuild @@ -0,0 +1,51 @@ +# Copyright 1999-2022 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +JAVA_PKG_IUSE="doc source test" +JAVA_TESTING_FRAMEWORKS="junit-4" + +inherit java-pkg-2 java-pkg-simple + +MY_PN="${PN/-*/}" + +DESCRIPTION="Fully conforming implementation of the JRC API (specified in JSR 170 and 283)" +HOMEPAGE="https://jackrabbit.apache.org/" +SRC_URI="mirror://apache/${MY_PN}/${PV}/${MY_PN}-${PV}-src.zip" + +LICENSE="Apache-2.0" +SLOT="0" +KEYWORDS="~amd64 ~arm64 ~ppc64 ~x86" + +S="${WORKDIR}/${MY_PN}-${PV}/${PN}" + +CP_DEPEND="dev-java/bndlib:0 + dev-java/slf4j-api:0 + dev-java/slf4j-nop:0 + dev-java/commons-httpclient:3 + java-virtuals/servlet-api:2.3" + +DEPEND=">=virtual/jdk-1.8:* + ${CP_DEPEND}" + +RDEPEND=">=virtual/jre-1.8:* + ${CP_DEPEND}" + +BDEPEND="app-arch/unzip" + +JAVA_SRC_DIR="src/main/java" +JAVA_RESOURCE_DIRS=( "src/main/resources" ) + +JAVA_TEST_GENTOO_CLASSPATH="junit-4" +JAVA_TEST_SRC_DIR="src/test/java" +JAVA_TEST_RESOURCE_DIRS=( "src/test/resources" ) + +src_test() { + # Run only tests that would be executed by Maven as in ${S}/pom.xml:79 + JAVA_TEST_RUN_ONLY=$(find "${JAVA_TEST_SRC_DIR}" -name "*TestAll.java" \ + -exec realpath --relative-to="${JAVA_TEST_SRC_DIR}" {} \;) + JAVA_TEST_RUN_ONLY="${JAVA_TEST_RUN_ONLY//.java}" + JAVA_TEST_RUN_ONLY="${JAVA_TEST_RUN_ONLY//\//.}" + java-pkg-simple_src_test +} |