summaryrefslogtreecommitdiff
blob: 1d2513a017cec436b89e3146d30cf6fc37c36f8b (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
# Copyright 1999-2015 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Id$

EAPI="5"
JAVA_PKG_IUSE="doc source examples test"

inherit eutils java-pkg-2 java-ant-2

MY_PN="${PN/jdbc-/}"
DESCRIPTION="JDBC Type 2 and 4 drivers for Firebird SQL server"
HOMEPAGE="http://jaybirdwiki.firebirdsql.org/"
SRC_URI="https://github.com/FirebirdSQL/${MY_PN}/archive/v${PV}.zip"
LICENSE="LGPL-2"
SLOT="0"
KEYWORDS="~amd64 ~x86 ~ppc"
IUSE="jni"

CDEPEND="dev-java/junit:4
	dev-java/antlr:4
	dev-java/log4j:0
	dev-java/glassfish-connector-api:0"

RDEPEND="${CDEPEND}
	>=virtual/jre-1.6"

DEPEND="${CDEPEND}
	>=virtual/jdk-1.6
	app-arch/unzip
	jni? ( dev-java/cpptasks )
	test? ( dev-java/ant-junit:0 )"

S="${WORKDIR}/${MY_PN}-${PV}"

java_prepare() {
	# prevent test/sources/javadoc from being built unless wanted
	sed -i -e 's|name="jar-test" depends="compile"|name="jar-test" depends="compile" if="tests"|' \
		"${S}/build/archive.xml" || die
	sed -i -e 's|name="compile-examples"|name="compile-examples" if="examples"|' \
		-e 's|,set-jdbc-42-test"|,set-jdbc-42-test" if="tests"|' \
		"${S}/build/compile.xml" || die

	# JAVA_ANT_ENCODING doesn't work because it doesn't like entities
	java-ant_xml-rewrite -f build.xml -c -e javac -a encoding -v ISO-8859-1

	cd "${S}/lib/"
	rm -v *.jar

	cd "${S}/src/lib/"
	rm -v *.jar *.zip

	java-pkg_jar-from --build-only glassfish-connector-api \
		glassfish-connector-api.jar connector-api-1.5.jar

	# the build.xml unpacks this and uses stuff
	touch empty
	jar cf mini-j2ee.jar empty
}

JAVA_ANT_REWRITE_CLASSPATH="true"
EANT_GENTOO_CLASSPATH="antlr:4,glassfish-connector-api,log4j"
EANT_BUILD_TARGET="jars"
EANT_DOC_TARGET="javadocs"

src_compile() {
	java-pkg_filter-compiler jikes
	use jni && ANT_TASKS="cpptasks"

	# This is nonsense, I know, but it works.
	if use test; then
		EANT_GENTOO_CLASSPATH="${EANT_GENTOO_CLASSPATH},junit-4"
	fi

	java-pkg-2_src_compile $(use test && echo "-Dtests=true") \
		$(use jni && echo "compile-native")
}

src_install() {
	cd "${S}/output/lib/"
	java-pkg_newjar ${MY_PN}-${PV}.jar ${PN}.jar

	for jar in full; do
		java-pkg_newjar ${MY_PN}-${jar}-${PV}.jar ${MY_PN}-${jar}.jar || die "java-pkg_newjar ${MY_PN}-${jar}.jar failed"
	done
	if use test; then
		java-pkg_newjar ${MY_PN}-test-${PV}.jar ${MY_PN}-${jar}.jar || die "java-pkg_newjar ${MY_PN}-${jar}.jar failed"
	fi

	if use jni; then
		cd "${S}/output/native"
		sodest="/usr/lib/"
		local so_arch
		if use amd64; then
			so_arch="x64"
		elif use x86; then
			so_arch="x86"
		fi
		java-pkg_doso libjaybird22_${so_arch}.so || die \
			"java-pkg_doso ${sodest}libjaybird22.so failed"
	fi

	cd "${S}"

	if use examples; then
		insinto /usr/share/doc/${PF}/
		doins -r examples || die "installing examples failed"
	fi

	use source && java-pkg_dosrc "${S}"/src/*/org

	cd "${S}/output"
	use doc && java-pkg_dohtml -r docs/
	dodoc etc/default.mf
	dohtml etc/*.html
}

src_test() {
	#
	# Warning about timeouts without Firebird installed and running Locally
	#
	ewarn "You will experience long timeouts when running junit tests"
	ewarn "without Firebird installed and running locally. The tests will"
	ewarn "complete without Firebird, but network timeouts prolong the"
	ewarn "testing phase considerably."
	ANT_TASKS="ant-junit" eant all-tests-pure-java
}