# Copyright 1999-2015 Gentoo Foundation # Distributed under the terms of the GNU General Public License v2 EAPI="5" JAVA_PKG_IUSE="source examples doc test" inherit java-pkg-2 java-ant-2 DESCRIPTION="A low level toolset of Java components focused on HTTP and associated protocols" HOMEPAGE="http://hc.apache.org/index.html" SRC_URI="mirror://apache/${PN/-//http}/source/${P}-src.tar.gz" LICENSE="Apache-2.0" SLOT="4.5" KEYWORDS="amd64 x86" CDEPEND=" dev-java/ant-junit:0 dev-java/easymock:3.2 dev-java/spymemcached:0 dev-java/osgi-core-api:0 dev-java/osgi-enterprise-api:0 dev-java/commons-codec:0 dev-java/commons-logging:0 dev-java/httpcomponents-core:4.4 dev-java/easymock-classextension:3.2 " RDEPEND=">=virtual/jre-1.6 ${CDEPEND}" DEPEND=">=virtual/jdk-1.6 test? ( dev-java/junit:4 dev-java/mockito:0 ) ${CDEPEND}" JAVA_ANT_REWRITE_CLASSPATH="true" EANT_GENTOO_CLASSPATH=" commons-codec commons-logging spymemcached osgi-core-api osgi-enterprise-api httpcomponents-core-4.4 " # List of modules to compile and test. MODULES=( httpclient httpclient-cache httpmime fluent-hc httpclient-osgi ) EANT_BUILD_TARGET="package" EANT_GENTOO_CLASSPATH_EXTRA="${S}/${MODULES[0]}/target/${MODULES[0]}-${PV}.jar" java_prepare() { # copy build.xml files to their location. for module in ${MODULES[@]}; do cd "${S}"/"${module}" || die cp "${FILESDIR}"/"${PN}-${module}-${PV}"-build.xml build.xml done cd "${S}" || die # httpclient: # - copy deprecated sources for compilation cp -r "${S}"/${MODULES[0]}/src/main/java-deprecated/* \ "${S}"/${MODULES[0]}/src/main/java/* || die # - remove broken tests rm -v ${MODULES[0]}/src/test/java/org/apache/http/client/config/TestRequestConfig.java # httpclient-cache: # - copy deprecated sources into main repository cp -r "${S}"/${MODULES[1]}/src/main/java-deprecated/* \ "${S}"/${MODULES[1]}/src/main/java || die # - remove broken tests rm -v \ ${MODULES[1]}/src/test/java/org/apache/http/impl/client/cache/TestCachingExec* # - disable ehcache support altogether # the version in Portage is very old and compilation chokes on missing imports rm -rf \ "${S}"/${MODULES[1]}/src/main/java/org/apache/http/impl/client/cache/ehcache \ "${S}"/${MODULES[1]}/src/test/java/org/apache/http/impl/client/cache/ehcache # httpmime: # - copy deprecated sources into main repository cp -r "${S}"/${MODULES[2]}/src/main/java-deprecated/* \ "${S}"/${MODULES[2]}/src/main/java # fluent-hc: # remove broken tests. rm -v ${MODULES[3]}/src/test/java/org/apache/http/client/fluent/TestFluent.java } EANT_TEST_GENTOO_CLASSPATH=" ${EANT_GENTOO_CLASSPATH} junit-4 mockito easymock-3.2 easymock-classextension-3.2 " src_compile() { for module in ${MODULES[@]}; do EANT_BUILD_XML="${module}/build.xml" \ java-pkg-2_src_compile done } src_test() { for module in ${MODULES[@]}; do ANT_TASKS= \ EANT_BUILD_XML="${module}/build.xml" \ java-pkg-2_src_test done } src_install() { for module in ${MODULES[@]}; do java-pkg_newjar ${module}/target/${module}-${PV}.jar ${module}.jar done if use source; then java-pkg_dosrc {httpclient,httpclient-cache,httpmime,fluent-hc}/src/main/java/org fi if use examples; then for dir in $(find "${S}" -mindepth 3 -maxdepth 4 -name "examples" -type d -print); do java-pkg_doexamples ${dir}/* done fi if use doc; then java-pkg_dojavadoc {httpclient,httpclient-cache,httpmime,fluent-hc}/target/site/apidocs/ fi }