blob: a6e85e7e2641382ad561982cfb8d414a0c888b61 [file] [log] [blame]
# 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
https://dev.gentoo.org/~tomwij/files/dist/${MY_PN}-build.xml-${PV}.tar.xz
https://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."
}