| # Copyright 1999-2015 Gentoo Foundation |
| # Distributed under the terms of the GNU General Public License v2 |
| # $Id$ |
| |
| 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 |
| } |