# Copyright 1999-2022 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI=8 JAVA_PKG_IUSE="doc source test binary" MAVEN_ID="org.hibernate.validator:${PN}:${PV}.Final" JAVA_TESTING_FRAMEWORKS="pkgdiff" inherit java-pkg-2 java-pkg-simple java-pkg-maven MY_PV="${PV}.Final" MY_P="${PN}-${MY_PV}" DESCRIPTION="Hibernate's Bean Validation (JSR-380) reference implementation" HOMEPAGE="https://hibernate.org/validator/" SRC_URI=" https://repo1.maven.org/maven2/org/hibernate/validator/${PN}/${MY_PV}/${MY_P}-sources.jar -> ${P}-sources.jar https://repo1.maven.org/maven2/org/hibernate/validator/${PN}/${MY_PV}/${MY_P}.jar -> ${P}-bin.jar " LICENSE="Apache-2.0" SLOT="0" KEYWORDS="~amd64" CP_DEPEND=" >=dev-java/hibernate-jpa-1.0.2:2.1-api >=dev-java/money-api-1.0.1:0 >=dev-java/paranamer-2.8:0 >=dev-java/classmate-1.5.1:0 >=dev-java/jboss-logging-3.4.0:0 >=dev-java/joda-time-2.9.7:0 >=dev-java/jsoup-1.8.3:0 >=dev-java/validation-api-2.0.1:2.0 dev-java/jaxb-api:2 " BDEPEND=" app-arch/unzip " DEPEND=" >=virtual/jdk-1.8:* !binary? ( ${CP_DEPEND} || ( dev-java/openjfx:11 dev-java/openjfx:8 ) >=dev-java/javax-el-3.0.1_beta09:0 >=dev-java/jboss-logging-annotations-2.1.0:0 >=dev-java/jboss-logging-processor-2.1.0:0 ) " RDEPEND=" >=virtual/jre-1.8:* ${CP_DEPEND} " S="${WORKDIR}" JAVA_CLASSPATH_EXTRA=" javax-el jboss-logging-annotations jboss-logging-processor " JAVA_SRC_DIR="src/main/java" JAVA_BINJAR_FILENAME="${P}-bin.jar" pkg_setup() { java-pkg-2_pkg_setup [[ "${MERGE_TYPE}" == binary ]] && return use binary && return # Set up classpath for JavaFX if has_version -d "dev-java/openjfx:11" && ver_test "$(java-config -g PROVIDES_VERSION)" -ge 11; then # Use OpenJFX 11 only if the JDK used to build this package supports # the version of class files in OpenJFX 11's JARs, which is 54.0 einfo "Using: openjfx-11" JAVA_GENTOO_CLASSPATH_EXTRA="${ESYSROOT}/usr/$(get_libdir)/openjfx-11/lib/javafx.base.jar" elif has_version -d "dev-java/openjfx:8"; then einfo "Using: openjfx-8" # OpenJFX 8 is installed into the home of dev-java/openjdk:8 local java_home="$(java-config --select-vm=openjdk-8 -O)" JAVA_GENTOO_CLASSPATH_EXTRA="${java_home}/jre/lib/ext/jfxrt.jar" else eerror eerror "JDK 8 is being used to build this package, but" eerror "dev-java/openjfx:8 could not be found. Please" eerror "either switch to a JDK whose version matches" eerror "the OpenJFX version installed on the system," eerror "or install dev-java/openjfx:8." eerror die "Could not find a supported version of OpenJFX" fi } src_unpack() { java-pkg-maven_src_unpack use binary && return # Extract files from the upstream's pre-built JAR for # Bean Validation provider registry file and pkgdiff test mkdir binjar || die "Failed to create directory for files unpacked from binary JAR" pushd binjar > /dev/null || die "Failed to enter directory for files unpacked from binary JAR" unpack "${JAVA_BINJAR_FILENAME}" popd > /dev/null || die "Failed to leave directory for files unpacked from binary JAR" } src_compile() { java-pkg-simple_src_compile use binary && return pushd binjar > /dev/null || die "Failed to enter directory for files unpacked from binary JAR" # Register Bean Validation provider, and add # files included in the upstream's pre-built JAR jar -uf "${S}/${JAVA_JAR_FILENAME}" \ META-INF/services/javax.validation.spi.ValidationProvider \ org/hibernate/validator/internal/util/logging/{Log,Messages}.i18n.properties || die "Failed to add additional files to the JAR" popd > /dev/null || die "Failed to leave directory for files unpacked from binary JAR" }