summaryrefslogtreecommitdiff
blob: 32622058bb3afd5b975193161cf3f764926f89b5 (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
# Copyright 1999-2019 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2

EAPI="5"

MY_PN="${PN}api"
MY_PV="${PV//./_}"
MY_P="${MY_PN}-${MY_PV}"

JAVA_PKG_IUSE="doc source"

inherit java-pkg-2 java-pkg-simple

DESCRIPTION="Java API to monitor production applications"
HOMEPAGE="http://www.jamonapi.com/"
SRC_URI="https://github.com/stevensouza/${MY_PN}/archive/v${MY_PV}.tar.gz -> ${MY_P}.tar.gz"
LICENSE="BSD"
SLOT="2"
KEYWORDS="~amd64 ~x86"
IUSE="test"
RESTRICT="!test? ( test )"

CDEPEND="dev-java/log4j:0
	java-virtuals/interceptor-api:0
	java-virtuals/servlet-api:3.0
	www-servers/tomcat:7"

RDEPEND="${CDEPEND}
	>=virtual/jre-1.7
	dev-db/hsqldb:0
	dev-java/jakarta-oro:2.0"

DEPEND="${CDEPEND}
	>=virtual/jdk-1.7
	test? (
		dev-db/hsqldb:0
		dev-java/assertj-core:2
		dev-java/junit:4
		dev-java/mockito:0
		dev-java/objenesis:0
	)"

S="${WORKDIR}/${MY_P}"
JAVA_GENTOO_CLASSPATH="interceptor-api,log4j,servlet-api-3.0,tomcat-7"
JAVA_SRC_DIR="${PN}/src/main/java"
WAR_DIR="jamon_war/src/main/webapp"

java_prepare() {
	# No Jetty or Hazelcast packaged right now and Spring is ancient.
	find \( -name "*Jetty*.java" -o -name "*Hazelcast*.java" \) -exec rm -v {} + || die
	rm -rv ./jamon/src/test/java/com/jamonapi/distributed/JamonDataPersisterFactoryTest.java \
		./jamon/src/{main,test}/java/com/jamonapi/aop/spring || die

	# Keep fdsapi and xss-html-filter bundled as we lack packages.
	rm -v ${WAR_DIR}/WEB-INF/lib/{hsqldb,jakarta-oro}*.jar || die
}

src_compile() {
	java-pkg-simple_src_compile
	jar cf ${PN}.war -C ${WAR_DIR} . || die
}

src_install() {
	java-pkg-simple_src_install
	java-pkg_dowar ${PN}.war
	dodoc designnotes.txt README.md

	# hsqldb used by JSP files, oro used by fdsapi.
	java-pkg_register-dependency hsqldb,jakarta-oro-2.0
}

src_test() {
	cd jamon/src/test/java || die

	local CP=".:../resources:${S}/${PN}.jar:$(java-pkg_getjars assertj-core-2,hsqldb,junit-4,mockito,objenesis,${JAVA_GENTOO_CLASSPATH})"
	local TESTS=$(find * -name "*Test.java")
	TESTS="${TESTS//.java}"
	TESTS="${TESTS//\//.}"

	ejavac -cp "${CP}" -d . $(find * -name "*.java")
	ejunit4 -classpath "${CP}" ${TESTS}
}