diff options
Diffstat (limited to 'dev-java/struts/struts-2.3.15.2.ebuild')
-rw-r--r-- | dev-java/struts/struts-2.3.15.2.ebuild | 105 |
1 files changed, 105 insertions, 0 deletions
diff --git a/dev-java/struts/struts-2.3.15.2.ebuild b/dev-java/struts/struts-2.3.15.2.ebuild new file mode 100644 index 000000000000..fc317a86eef0 --- /dev/null +++ b/dev-java/struts/struts-2.3.15.2.ebuild @@ -0,0 +1,105 @@ +# Copyright 1999-2013 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Header: /var/cvsroot/gentoo-x86/dev-java/struts/struts-2.3.15.2.ebuild,v 1.1 2013/10/02 23:02:51 tomwij Exp $ + +EAPI="5" + +JAVA_PKG_IUSE="doc source test" +WANT_ANT_TASKS="ant-trax" + +inherit java-pkg-2 java-ant-2 + +MY_P="${P}-src" + +DESCRIPTION="A powerful Model View Controller Framework for JSP/Servlets" +SRC_URI="mirror://apache/struts/source/${MY_P}.zip + http://dev.gentoo.org/~tomwij/files/dist/${PN}-build.xml-${PV}.tar.xz" +HOMEPAGE="http://struts.apache.org/index.html" + +LICENSE="Apache-2.0" +SLOT="2" +KEYWORDS="~amd64" + +COMMON_DEPS=" + dev-java/felix-shell:0 + dev-java/osgi-core-api:0 + dev-java/struts-core:${SLOT} + dev-java/struts-plugins:${SLOT} + dev-java/struts-xwork:${SLOT} + java-virtuals/servlet-api:2.3" + +RDEPEND=">=virtual/jre-1.5 + ${COMMON_DEPS}" + +DEPEND=">=virtual/jdk-1.5 + test? ( dev-java/ant-junit:0 ) + ${COMMON_DEPS}" + +S="${WORKDIR}/${P}/src" + +JAVA_ANT_REWRITE_CLASSPATH="true" +EANT_GENTOO_CLASSPATH="struts-core-${SLOT},struts-plugins-${SLOT},struts-xwork-${SLOT}" +EANT_TEST_GENTOO_CLASSPATH="${EANT_GENTOO_CLASSPATH}" +EANT_BUILD_TARGET="package" +EANT_TEST_TARGET="test" + +# TODO: Incompatible with newer junit; we either need to patch it or slot junit. +RESTRICT="test" + +src_unpack() { + unpack ${MY_P}.zip + cd "${S}" || die + unpack ${PN}-build.xml-${PV}.tar.xz +} + +java_prepare() { + find . -name '*.jar' -print -delete || die + + epatch "${FILESDIR}"/${P}-build.xml-remove-core-and-plugins.patch + epatch "${FILESDIR}"/${P}-build.xml-classpath.patch + epatch "${FILESDIR}"/${P}-build.xml-manifest.patch + epatch "${FILESDIR}"/${P}-build.xml-apps-package.patch + epatch "${FILESDIR}"/${P}-build.xml-remove-apps-portlet.patch + + java-pkg_getjars felix-shell,osgi-core-api,servlet-api-2.3 +} + +src_install() { + insinto /usr/share/${PN}-${SLOT}/ + + # Misses apps/portlet. + for dir in apps/{blank,mailreader,rest-showcase,showcase} bundles/{admin,demo} ; do + if [[ ${dir} == "apps/"* ]] ; then + doins ${dir}/target/${PN}2-${dir/apps\//}.war + else + java-pkg_newjar ${dir}/target/${PN}2-osgi-*-bundle-${PV}.jar ${dir/bundles\//}.jar + fi + + if use doc ; then + java-pkg_dojavadoc ${dir}/target/site/apidocs + mkdir "${D}"/usr/share/doc/${P}/${dir/*\//} || die + mv "${D}"/usr/share/doc/${P}/{html,${dir/*\//}/html} || die + fi + + if [[ ${dir} == *"mailreader"* ]] ; then + use source && java-pkg_dosrc ${dir}/src/main/java/mailreader2 + else + use source && java-pkg_dosrc ${dir}/src/main/java/org + fi + done + + if use doc ; then + rm "${D}"/usr/share/${PN}-${SLOT}/api || die + fi +} + +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 +} + +pkg_postinst() { + elog "The application 'portlet' is not in this release because it doesn't build." +} |