| Version | EAPI | Keywords | Slot |
|---|---|---|---|
| 2.35-r1 | 8 | ~amd64 | 2 |
# Copyright 1999-2023 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
JAVA_PKG_IUSE="doc source test"
MAVEN_ID="org.glassfish.jersey.core:${PN}:${PV}"
JAVA_TESTING_FRAMEWORKS="junit-4"
inherit java-pkg-2 java-pkg-simple readme.gentoo-r1
MY_PN="jersey"
MY_P="${MY_PN}-${PV}"
DESCRIPTION="Jersey core common packages"
HOMEPAGE="https://projects.eclipse.org/projects/ee4j.jersey"
# Need the JAR from Maven Central for source file
# org/glassfish/jersey/internal/LocalizationMessages.java
SRC_URI="
https://github.com/eclipse-ee4j/jersey/archive/refs/tags/${PV}.tar.gz -> ${MY_P}.tar.gz
https://repo1.maven.org/maven2/org/glassfish/jersey/core/${PN}/${PV}/${P}-sources.jar
"
LICENSE="|| ( EPL-2.0 GPL-2-with-classpath-exception ) Apache-2.0 CC0-1.0"
SLOT="2"
KEYWORDS="~amd64"
CP_DEPEND="
dev-java/jakarta-annotation-api:0
dev-java/jakarta-inject:0
dev-java/jakarta-ws-rs-api:0
dev-java/osgi-resource-locator:0
"
BDEPEND="
app-arch/unzip
"
DEPEND="
>=virtual/jdk-1.8:*
${CP_DEPEND}
dev-java/osgi-core:6
test? (
dev-java/hamcrest-library:1.3
dev-java/mockito:0
)
"
RDEPEND="
>=virtual/jre-1.8:*
${CP_DEPEND}
"
S="${WORKDIR}/${MY_P}/core-${PN#jersey-}"
JAVA_CLASSPATH_EXTRA="osgi-core-6"
JAVA_SRC_DIR=( "src/main/java" "src/main/jsr166" )
JAVA_RESOURCE_DIRS=( "src/main/resources" )
JAVA_TEST_GENTOO_CLASSPATH="
junit-4
hamcrest-library-1.3
mockito
"
JAVA_TEST_SRC_DIR="src/test/java"
JAVA_TEST_RESOURCE_DIRS=( "src/test/resources" )
JAVA_TEST_EXCLUDES=(
# No runnable methods
org.glassfish.jersey.internal.TestRuntimeDelegate
# Failing tests
org.glassfish.jersey.internal.config.ExternalPropertiesConfigurationFactoryTest
# Failing tests skipped by upstream in pom.xml
# https://github.com/eclipse-ee4j/jersey/blob/2.35/core-common/pom.xml#L681-L690
org.glassfish.jersey.SecurityManagerConfiguredTest
org.glassfish.jersey.internal.util.ReflectionHelperTest
)
MY_JAVA_TEST_POLICY="${JAVA_TEST_RESOURCE_DIRS[0]}/surefire.policy"
JAVA_TEST_EXTRA_ARGS=(
# https://github.com/eclipse-ee4j/jersey/blob/2.35/core-common/pom.xml#L713
-Djava.security.manager
-Djava.security.policy="${MY_JAVA_TEST_POLICY}"
)
DOCS=( "${JAVA_RESOURCE_DIRS[0]}/META-INF/NOTICE.markdown" )
pkg_setup() {
java-pkg-2_pkg_setup
if ver_test "$(java-config -g PROVIDES_VERSION)" -ge 11; then
MY_JAVA_VERSION="11"
DOC_JAVA_VERSION=">=11"
ALT_JAVA_VERSION="8"
else
MY_JAVA_VERSION="8"
DOC_JAVA_VERSION="8"
ALT_JAVA_VERSION=">=11"
fi
JAVA_SRC_DIR+=( "src/main/java${MY_JAVA_VERSION}" )
}
src_prepare() {
cp "${WORKDIR}/org/glassfish/jersey/internal/LocalizationMessages.java" \
"${JAVA_SRC_DIR[0]}" || die "Failed to copy extra Java source file"
use test && eapply -p2 "${FILESDIR}/${P}-remove-unbuildable-tests.patch"
java-pkg-2_src_prepare
local build_properties="${JAVA_RESOURCE_DIRS[0]}/org/glassfish/jersey/internal/build.properties"
sed -i -e "s/\${project.version}/${PV}/g" "${build_properties}" ||
die "Failed to write project version to build.properties"
sed -i -e "s/\${buildNumber}/$(date '+%F %T')/g" "${build_properties}" ||
die "Failed to write project version to build.properties"
if use test; then
sed -i -e "s|\${java.home}|${JAVA_HOME}|g" \
"${MY_JAVA_TEST_POLICY}" ||
die "Failed to insert JAVA_HOME path into test policy file"
sed -i -e "s|\${settings.localRepository}|${ESYSROOT}|g" \
"${MY_JAVA_TEST_POLICY}" ||
die "Failed to insert path to dependencies into test policy file"
sed -i -e "s|\${project.build.directory}|${S}/target|g" \
"${MY_JAVA_TEST_POLICY}" ||
die "Failed to insert path to built classes into test policy file"
sed -i -e "s|\${java.io.tmpdir}|${T}|g" \
"${MY_JAVA_TEST_POLICY}" ||
die "Failed to insert temp directory path into test policy file"
fi
}
src_install() {
DOC_CONTENTS="
This package follows the upstream to use different sources of Java
package org.glassfish.jersey.internal.jsr166 for Java 8 and Java >=11,
which means it may only support Java 8 OR Java >=11, but not both.
The JAR installed by this package on the system was built with and
is for Java ${DOC_JAVA_VERSION}. This might cause runtime errors
if the JAR is used on JRE ${ALT_JAVA_VERSION}.\n
\n
Should any error occur after switching to JRE ${ALT_JAVA_VERSION},
please rebuild this package using JDK ${ALT_JAVA_VERSION}.
"
java-pkg-simple_src_install
einstalldocs # https://bugs.gentoo.org/789582
readme.gentoo_create_doc
}
pkg_postinst() {
readme.gentoo_print_elog
}
>=virtual/jdk-1.8:* dev-java/jakarta-annotation-api:0 dev-java/jakarta-inject:0 dev-java/jakarta-ws-rs-api:0 dev-java/osgi-resource-locator:0 dev-java/osgi-core:6 test? ( dev-java/hamcrest-library:1.3 dev-java/mockito:0 )
>=virtual/jre-1.8:* dev-java/jakarta-annotation-api:0 dev-java/jakarta-inject:0 dev-java/jakarta-ws-rs-api:0 dev-java/osgi-resource-locator:0
app-arch/unzip