Name: hornetq
Version: 2.2.13
Release: 4%{?dist}
Summary: High performance messaging system
Group: Development/Libraries
License: ASL 2.0
URL: http://www.jboss.org/hornetq
# git clone git://github.com/hornetq/hornetq.git
# cd hornetq && git checkout HornetQ_2_2_13_AS7_Final && git checkout-index -f -a --prefix=hornetq-2.2.13/
# find hornetq-2.2.13/ -name '*.jar' -delete
# tar cafJ hornetq-2.2.13-CLEAN.tar.xz hornetq-2.2.13
Source0: hornetq-%{version}-CLEAN.tar.xz
Patch0: 0001-Removed-maven-buildmagic-thirdparty-plugin-dependenc.patch
Patch1: 0002-Removed-spring-dependency.patch
Patch2: 0003-gui-aid-changes.patch
Patch3: 0004-JDK7-fix-for-FileChannel-constructor.patch
Patch4: 0005-Libraries-paths.patch
Patch5: 0006-Make-creation-of-pom-files-easier.patch
Patch6: 0007-Add-jdepend-dependency-to-run-javadoc-creation.patch
Patch7: 0008-Native-build-fixes.patch
BuildRequires: jpackage-utils
BuildRequires: java-devel
BuildRequires: ant
BuildRequires: automake libtool autoconf
BuildRequires: apiviz
BuildRequires: apache-commons-logging
BuildRequires: javacc
BuildRequires: jboss-connector-1.6-api
BuildRequires: jboss-ejb-3.1-api
BuildRequires: jboss-ejb3-ext-api
BuildRequires: jboss-jaspi-1.0-api
BuildRequires: jboss-jms-1.1-api
BuildRequires: jboss-jts
BuildRequires: jboss-logging
BuildRequires: jboss-servlet-3.0-api
BuildRequires: jboss-transaction-1.1-api
BuildRequires: jboss-transaction-spi
BuildRequires: jboss-logging
BuildRequires: jdepend
BuildRequires: libaio-devel
BuildRequires: netty
Requires: jpackage-utils
Requires: java
Requires: apache-commons-logging
Requires: jboss-connector-1.6-api
Requires: jboss-ejb-3.1-api
Requires: jboss-ejb3-ext-api
Requires: jboss-jaspi-1.0-api
Requires: jboss-jms-1.1-api
Requires: jboss-jts
Requires: jboss-logging
Requires: jboss-servlet-3.0-api
Requires: jboss-transaction-1.1-api
Requires: jboss-transaction-spi
Requires: jboss-logging
Requires: jdepend
Requires: netty
%description
HornetQ is an open source project to build a multi-protocol, embeddable,
very high performance, clustered, asynchronous messaging system.
%package javadoc
Summary: Javadocs for %{name}
Group: Documentation
Requires: jpackage-utils
%description javadoc
This package contains the API documentation for %{name}.
%package devel
Summary: Native development files for %{name}
Group: Development/Libraries
Requires: %{name}%{?_isa} = %{version}-%{release}
%description devel
This package provides the support files which can be used to
build applications using the HornetQ native library.
%prep
%setup -q -n hornetq-%{version}
%patch0 -p1
%patch1 -p1
%patch2 -p1
%patch3 -p1
%patch4 -p1
%patch5 -p1
%patch6 -p1
%patch7 -p1
mkdir -p thirdparty/net/java/dev/javacc/lib/ thirdparty/org/jboss/apiviz/lib/
ln -s $(build-classpath javacc) thirdparty/net/java/dev/javacc/lib/javacc.jar
ln -s $(build-classpath apiviz) thirdparty/org/jboss/apiviz/lib/apiviz.jar
ln -s $(build-classpath jdepend) thirdparty/org/jboss/apiviz/lib/jdepend.jar
%build
# Build jars and javadocs
ant -Dnodownload=true -Dhornetq.run_script=true jar-core jar-core-client jar-jms jar-jms-client jar-ra javadoc
# Create POMs
ant -f build-maven.xml deploy
# Build native bits
export JAVA_HOME=/usr/lib/jvm/java
pushd native
# Generate C headers
pushd src
javah -classpath ../../build/jars/hornetq-core.jar org.hornetq.core.asyncio.impl.AsynchronousFileImpl
popd
autoreconf --install
%configure
make %{?_smp_mflags}
popd
%install
install -d -m 755 $RPM_BUILD_ROOT%{_javadir}/%{name}
install -d -m 755 $RPM_BUILD_ROOT%{_mavenpomdir}
install -d -m 755 $RPM_BUILD_ROOT%{_javadocdir}/%{name}
for m in core-client core jms-client jms ra; do
# JAR
install -pm 644 build/jars/hornetq-${m}.jar $RPM_BUILD_ROOT%{_javadir}/%{name}/%{name}-${m}.jar
# POM
install -pm 644 hornetq-${m}.pom $RPM_BUILD_ROOT%{_mavenpomdir}/JPP.%{name}-%{name}-${m}.pom
# DEPMAP
%add_maven_depmap JPP.%{name}-%{name}-${m}.pom %{name}/%{name}-${m}.jar
done
# APIDOCS
cp -rp build/api/* $RPM_BUILD_ROOT%{_javadocdir}/%{name}
# Install native bits
pushd native
make install DESTDIR=$RPM_BUILD_ROOT
popd
# Remove static files
rm $RPM_BUILD_ROOT/%{_libdir}/*.la
# Rename the executable file by prefixing it
mv $RPM_BUILD_ROOT/%{_bindir}/disktest $RPM_BUILD_ROOT/%{_bindir}/%{name}-disktest
%post -p /sbin/ldconfig
%postun -p /sbin/ldconfig
%files
%{_mavenpomdir}/*
%{_mavendepmapfragdir}/*
%{_javadir}/*
%{_libdir}/libHornetQAIO.so.*
%{_bindir}/%{name}-disktest
%doc licenses/LICENSE.txt
%files javadoc
%{_javadocdir}/%{name}
%doc licenses/LICENSE.txt
%files devel
%{_libdir}/libHornetQAIO.so
%doc licenses/LICENSE.txt
%changelog
* Thu May 24 2012 Marek Goldmann <mgoldman@redhat.com> 2.2.13-4
- Removed unnecessary Requires
* Wed May 23 2012 Marek Goldmann <mgoldman@redhat.com> 2.2.13-3
- Removed unnecessary %%global
- Added License file to -devel subpackage
- Removed static files
* Wed May 16 2012 Marek Goldmann <mgoldman@redhat.com> 2.2.13-2
- Added native part to the build
* Tue May 15 2012 Marek Goldmann <mgoldman@redhat.com> 2.2.13-1
- Initial packaging