summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorYuan Liao <liaoyuan@gmail.com>2022-01-08 10:01:46 -0800
committerMiroslav Šulc <fordfrog@gentoo.org>2022-01-09 10:05:04 +0100
commit14aef16e0d785ec9f16650dd4f70969cda87863b (patch)
tree04b475065fb1b6f94b48b7df5ffc93ac309f2b50 /dev-java/jackrabbit-webdav
parentdev-java/objenesis: update HOMEPAGE (diff)
downloadgentoo-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>
Diffstat (limited to 'dev-java/jackrabbit-webdav')
-rw-r--r--dev-java/jackrabbit-webdav/jackrabbit-webdav-2.10.1-r2.ebuild51
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
+}