# 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="org.postgresql:postgresql:${PV}"
JAVA_TESTING_FRAMEWORKS="junit-jupiter"

inherit java-pkg-2 java-pkg-simple junit5

DESCRIPTION="Java JDBC 4.2 (JRE 8+) driver for PostgreSQL database"
HOMEPAGE="https://jdbc.postgresql.org/"
CFV="1.1.2"	# classloader-leak-test-framework isn't yet packaged.
WSV="2.1.8"	# webcompere/systemstubs isn't yet packaged.
SRC_URI="https://jdbc.postgresql.org/download/postgresql-jdbc-${PV}.src.tar.gz
	test? (
		https://repo1.maven.org/maven2/uk/org/webcompere/system-stubs-core/${WSV}/system-stubs-core-${WSV}.jar
		https://repo1.maven.org/maven2/uk/org/webcompere/system-stubs-jupiter/${WSV}/system-stubs-jupiter-${WSV}.jar
		https://repo1.maven.org/maven2/se/jiderhamn/classloader-leak-test-framework/${CFV}/classloader-leak-test-framework-${CFV}.jar
	)"
S="${WORKDIR}/postgresql-${PV}-jdbc-src"

LICENSE="BSD-2"
SLOT="0"
KEYWORDS="~amd64"

# Most tests fail with:
# "org.postgresql.util.PSQLException: Connection to localhost:5432 refused.
# Check that the hostname and port are correct and that the postmaster is accepting TCP/IP connections."
RESTRICT="test"

DEPEND="
	dev-java/checker-framework-qual:0
	>=dev-java/jna-5.17.0:0
	dev-java/osgi-cmpn:8
	dev-java/osgi-core:0
	>=dev-java/scram-3.1:0
	>=dev-java/waffle-jna-3.3.0-r1:0
	>=virtual/jdk-1.8:*
	test? (
		>=dev-java/asm-9.8-r1:0
		>=dev-java/byte-buddy-1.15.1:0
		dev-java/junit:4
		dev-java/junit:5[vintage]
	)
"

RDEPEND=">=virtual/jre-1.8:*"

JAVA_CLASSPATH_EXTRA="
	checker-framework-qual
	jna
	osgi-cmpn-8
	osgi-core
	scram
	waffle-jna
"

JAVA_AUTOMATIC_MODULE_NAME="org.postgresql.jdbc"
JAVA_GENTOO_CLASSPATH_EXTRA="${DISTDIR}/system-stubs-core-${WSV}.jar"
JAVA_GENTOO_CLASSPATH_EXTRA+=":${DISTDIR}/system-stubs-jupiter-${WSV}.jar"
JAVA_GENTOO_CLASSPATH_EXTRA+=":${DISTDIR}/classloader-leak-test-framework-${CFV}.jar"
JAVA_MAIN_CLASS="org.postgresql.util.PGJDBCMain"
JAVA_RESOURCE_DIRS="src/main/resources"
JAVA_SRC_DIR="src/main/java"
JAVA_TEST_GENTOO_CLASSPATH="asm byte-buddy junit-4 junit-5"
JAVA_TEST_RESOURCE_DIRS="src/test/resources"
JAVA_TEST_SRC_DIR="src/test/java"