summaryrefslogtreecommitdiff
blob: 9684ad2e2a0ce4a2f5df40eebaf641737c3b6894 (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
# Copyright 1999-2013 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Id$

EAPI="5"

JAVA_PKG_IUSE="doc source test"

inherit java-pkg-2 java-ant-2

MY_PN="struts"
MY_P="${MY_PN}-${PV}-src"

DESCRIPTION="A powerful Model View Controller Framework for JSP/Servlets: Plugins"
SRC_URI="mirror://apache/struts/source/${MY_P}.zip
	http://dev.gentoo.org/~tomwij/files/dist/${MY_PN}-build.xml-${PV}.tar.xz
	http://dev.gentoo.org/~tomwij/files/dist/${MY_PN}-${PV}-build.xml-classpath.patch"
HOMEPAGE="http://struts.apache.org/index.html"

LICENSE="Apache-2.0"
SLOT="2"
KEYWORDS="~amd64"

COMMON_DEPS="dev-java/commons-beanutils:1.7
	dev-java/commons-lang:3.1
	dev-java/commons-io:1
	dev-java/freemarker:2.3
	dev-java/juel:0
	dev-java/ognl:3.0
	dev-java/osgi-core-api:0
	dev-java/struts-core:${SLOT}
	dev-java/struts-xwork:${SLOT}
	dev-java/velocity:0
	java-virtuals/servlet-api:3.0"

RDEPEND=">=virtual/jre-1.5
	${COMMON_DEPS}"

DEPEND=">=virtual/jdk-1.5
	test? ( dev-java/ant-junit:0 )
	${COMMON_DEPS}"

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

JAVA_ANT_REWRITE_CLASSPATH="true"
EANT_GENTOO_CLASSPATH="struts-core-${SLOT},struts-xwork-${SLOT}"
EANT_TEST_GENTOO_CLASSPATH="${EANT_GENTOO_CLASSPATH}"
EANT_BUILD_TARGET="package"
EANT_TEST_TARGET="test"

# javatemplates/maven-build.xml:149:
# Test org.apache.struts2.views.java.simple.AbstractCommonAttributesTest failed
# Cannot instantiate test case: testRenderTextFieldDynamicAttrs
RESTRICT="test"

src_unpack() {
	unpack ${MY_P}.zip
	cd "${WORKDIR}"/${MY_PN}-${PV}/src || die
	unpack ${MY_PN}-build.xml-${PV}.tar.xz
}

java_prepare() {
	find . -name '*.jar' -print -delete || die

	epatch "${DISTDIR}"/${MY_PN}-${PV}-build.xml-classpath.patch
	epatch "${FILESDIR}"/${MY_PN}-${PV}-build.xml-manifest.patch
	epatch "${FILESDIR}"/${MY_PN}-${PV}-build.xml-remove-codebehind.patch
	epatch "${FILESDIR}"/${MY_PN}-${PV}-build.xml-remove-portlet.patch

	# Remove tests that don't build due to test files that aren't installed.
	rm jfreechart/src/test/java/org/apache/struts2/dispatcher/ChartResultTest.java

	java-pkg_getjars commons-beanutils-1.7,commons-io-1,commons-lang-3.1,freemarker-2.3,juel,ognl-3.0,osgi-core-api,servlet-api-3.0,velocity
}

src_test() {
	EANT_TEST_EXTRA_ARGS="-Dgentoo.test.classpath=$(java-pkg_getjars ${EANT_TEST_GENTOO_CLASSPATH})"
	EANT_TEST_EXTRA_ARGS+=" -Djunit.present=true"

	java-pkg-2_src_test
}

src_install() {
	for plugin in $(find . -mindepth 1 -maxdepth 1 -type d | sed 's:./::g' | tr '\n' ' ') ; do
		[[ ! -d ${plugin}/target ]] && continue

		einfo "Installing plugin '${plugin}' ..."
		java-pkg_newjar ${plugin}/target/${MY_PN}2-${plugin}-plugin-${PV}.jar ${plugin}.jar

		if use doc ; then
			java-pkg_dojavadoc ${plugin}/target/site/apidocs
			mkdir "${D}"/usr/share/doc/${P}/${plugin} || die
			mv "${D}"/usr/share/doc/${P}/{html,${plugin}/html} || die
		fi

		use source && java-pkg_dosrc ${plugin}/src/main/java/org
	done

	if use doc ; then
		rm "${D}"/usr/share/${PN}-${SLOT}/api || die
	fi
}

pkg_postinst() {
	elog "The 'codebehind' and 'portlet' plugins are not in this release because they don't build yet."
}