| # Copyright 1999-2016 Gentoo Foundation |
| # Distributed under the terms of the GNU General Public License v2 |
| # $Id$ |
| |
| EAPI="5" |
| |
| JAVA_PKG_IUSE="doc source" |
| |
| inherit java-pkg-2 java-ant-2 eutils |
| |
| MY_PN=ws-${PN} |
| MY_P=${MY_PN}-${PV} |
| DESCRIPTION="An open source implementation of JAXB, the specification for Java/XML binding" |
| HOMEPAGE="http://ws.apache.org/jaxme/index.html" |
| SRC_URI="mirror://apache/ws/${PN}/source/${MY_P}-src.tar.gz" |
| |
| LICENSE="Apache-2.0" |
| SLOT="0" |
| KEYWORDS="amd64 ~arm ppc64 x86 ~amd64-fbsd ~x86-fbsd ~x86-freebsd ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~sparc-solaris ~x64-solaris ~x86-solaris" |
| IUSE="" |
| |
| COMMON_DEP=">=dev-java/antlr-2.7.7-r7:0 |
| >=dev-java/log4j-1.2.8:0 |
| dev-java/junit:0 |
| dev-java/xmldb:0" |
| |
| RDEPEND=">=virtual/jre-1.6 |
| dev-java/xerces:2 |
| ${COMMON_DEP}" |
| |
| DEPEND=">=virtual/jdk-1.6 |
| dev-db/hsqldb:0 |
| ${COMMON_DEP}" |
| |
| S="${WORKDIR}/${MY_P}" |
| |
| # We do it later |
| JAVA_PKG_BSFIX="off" |
| |
| java_prepare() { |
| cd "${S}/prerequisites" |
| rm *.jar |
| java-pkg_jarfrom antlr |
| java-pkg_jarfrom junit |
| java-pkg_jarfrom log4j log4j.jar log4j-1.2.8.jar |
| java-pkg_jarfrom xmldb xmldb-api.jar xmldb-api-20021118.jar |
| java-pkg_jarfrom xmldb xmldb-api-sdk.jar xmldb-api-sdk-20021118.jar |
| java-pkg_jarfrom --build-only ant-core ant.jar ant-1.5.4.jar |
| java-pkg_jarfrom --build-only ant-core ant.jar ant.jar |
| # no linking to it, should be used for tests only but used to generate stuff during build anyway |
| java-pkg_jarfrom --build-only hsqldb hsqldb.jar hsqldb-1.7.1.jar |
| |
| # Special case: jaxme uses ant/*.xml files, so rewriting them by hand |
| # is better: |
| cd "${S}" |
| for i in build.xml ant/*.xml src/webapp/build.xml src/test/jaxb/build.xml; do |
| java-ant_bsfix_one "${i}" |
| done |
| |
| # Patch marshal classes to be abstract for build to succeed |
| epatch "${FILESDIR}/${P}-fix_marshallers.patch" |
| } |
| |
| EANT_TEST_ANT_TASKS="hsqldb" |
| |
| src_compile() { |
| local ant_target="all" |
| local ant_args="" |
| if use doc; then |
| ant_args="-Dbuild.apidocs=dist/doc/api" |
| # The javadoc target depends on all so it is enough. Passing both results in two builds, |
| # where the second pass fails due to hsqldb lock - bug #310311. |
| ant_target="javadoc" |
| fi |
| |
| eant ${ant_args} ${ant_target} |
| } |
| |
| src_install() { |
| # Not entirely optional but this avoids a warning at build time and |
| # RDEPEND will enforce its presence anyway. |
| java-pkg_register-optional-dependency xerces-2 |
| |
| pushd dist > /dev/null |
| for jar in *.jar; do |
| java-pkg_newjar ${jar} ${jar/-${PV}/} |
| done |
| popd > /dev/null |
| |
| dodoc NOTICE |
| |
| if use doc; then |
| java-pkg_dojavadoc dist/doc/api |
| dohtml -r src/documentation/manual |
| fi |
| use source && java-pkg_dosrc src/{pm,jaxme,js,api,webapp,xs}/* |
| } |