Blob Blame History Raw
%global namedreltag .FINAL
%global namedversion %{version}%{?namedreltag}

Name:             infinispan
Version:          5.1.2
Release:          1%{?dist}
Summary:          Data grid platform
Group:            Development/Libraries
License:          LGPLv2+
URL:              http://www.jboss.org/infinispan

# git clone git://github.com/infinispan/infinispan.git
# cd infinispan/ && git archive --format=tar --prefix=infinispan-5.1.2.FINAL/ 5.1.2.FINAL | xz > infinispan-5.1.2.FINAL.tar.xz
Source0:          %{name}-%{namedversion}.tar.xz

# Removes some of modules not necessary at this point
Patch0:           %{name}-%{namedversion}-pom.patch
# Adds support for new avro library
Patch1:           %{name}-%{namedversion}-avro.patch

BuildArch:        noarch

BuildRequires:    apache-commons-math
BuildRequires:    avro
BuildRequires:    c3p0
BuildRequires:    java-devel
BuildRequires:    jcip-annotations
BuildRequires:    jboss-logging-tools
BuildRequires:    jboss-marshalling
BuildRequires:    jboss-naming
BuildRequires:    jboss-transaction-1.1-api
BuildRequires:    jgroups >= 3.0.3
BuildRequires:    jpackage-utils
BuildRequires:    maven
BuildRequires:    maven-plugin-exec
BuildRequires:    maven-resources-plugin
BuildRequires:    maven-remote-resources-plugin
BuildRequires:    rhq-plugin-annotations
BuildRequires:    staxmapper

Requires:         apache-commons-math
Requires:         avro
Requires:         c3p0
Requires:         java
Requires:         jcip-annotations
Requires:         jboss-logging-tools
Requires:         jboss-marshalling
Requires:         jboss-naming
Requires:         jboss-transaction-1.1-api
Requires:         jgroups >= 3.0.3
Requires:         jpackage-utils
Requires:         staxmapper

%description
Infinispan is an extremely scalable, highly available data grid
platform - 100% open source, and written in Java. The purpose of
Infinispan is to expose a data structure that is highly concurrent,
designed ground-up to make the most of modern multi-processor/multi-core
architectures while at the same time providing distributed cache
capabilities.  At its core Infinispan exposes a Cache interface which
extends java.util.Map. It is also optionally is backed by a peer-to-peer
network architecture to distribute state efficiently around a data grid.

%package javadoc
Summary:          Javadocs for %{name}
Group:            Documentation
Requires:         jpackage-utils

%description javadoc
This package contains the API documentation for %{name}.

%prep
%setup -q -n %{name}-%{namedversion}
%patch0 -p1
%patch1 -p1

# Rename the license file
cp -r license/src/main/resources/META-INF/LICENSE.txt.vm LICENSE.txt

%build
# We don't have one of easymock package
mvn-rpmbuild -Dmaven.test.skip=true install javadoc:aggregate

%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; do
  # JAR
  install -pm 644 ${m}/target/infinispan-${m}.jar $RPM_BUILD_ROOT%{_javadir}/%{name}/%{name}-${m}.jar
  # POM
  install -pm 644 ${m}/pom.xml $RPM_BUILD_ROOT%{_mavenpomdir}/JPP.%{name}-%{name}-${m}.pom
  # DEPMAP
  %add_maven_depmap JPP.%{name}-%{name}-${m}.pom %{name}/%{name}-${m}.jar
done

# Cachestore modules
for m in remote jdbc; do
  # JAR
  install -pm 644 cachestore/${m}/target/infinispan-cachestore-${m}.jar $RPM_BUILD_ROOT%{_javadir}/%{name}/%{name}-cachestore-${m}.jar
  # POM
  install -pm 644 cachestore/${m}/pom.xml $RPM_BUILD_ROOT%{_mavenpomdir}/JPP.%{name}-%{name}-cachestore-${m}.pom
  # DEPMAP
  %add_maven_depmap JPP.%{name}-%{name}-cachestore-${m}.pom %{name}/%{name}-cachestore-${m}.jar
done

install -pm 644 client/hotrod-client/target/infinispan-client-hotrod.jar $RPM_BUILD_ROOT%{_javadir}/%{name}/%{name}-client-hotrod.jar

# POM
install -pm 644 pom.xml $RPM_BUILD_ROOT%{_mavenpomdir}/JPP.%{name}-%{name}.pom
install -pm 644 parent/pom.xml $RPM_BUILD_ROOT%{_mavenpomdir}/JPP.%{name}-%{name}-parent.pom
install -pm 644 client/hotrod-client/pom.xml $RPM_BUILD_ROOT%{_mavenpomdir}/JPP.%{name}-%{name}-client-hotrod.pom
install -pm 644 cachestore/pom.xml $RPM_BUILD_ROOT%{_mavenpomdir}/JPP.%{name}-%{name}-cachestore-parent.pom

# DEPMAP
%add_maven_depmap JPP.%{name}-%{name}.pom
%add_maven_depmap JPP.%{name}-%{name}-parent.pom
%add_maven_depmap JPP.%{name}-%{name}-cachestore-parent.pom
%add_maven_depmap JPP.%{name}-%{name}-client-hotrod.pom %{name}/%{name}-client-hotrod.jar

# APIDOCS
cp -rp target/site/apidocs/* $RPM_BUILD_ROOT%{_javadocdir}/%{name}

%files
%{_mavenpomdir}/*
%{_mavendepmapfragdir}/*
%{_javadir}/*
%doc LICENSE.txt README.mkdn

%files javadoc
%{_javadocdir}/%{name}
%doc LICENSE.txt

%changelog
* Thu Mar 22 2012 Ricardo Arguello <ricardo@fedoraproject.org> 5.1.2-1
- Updated to 5.1.2 from upstream
- Use JAR filenames assigned by the build
- Add license file

* Wed Mar 7 2012 Ricardo Arguello <ricardo@fedoraproject.org> 5.1.1-2
- Cleanup of the spec file

* Tue Feb 21 2012 Marek Goldmann <mgoldman@redhat.com> 5.1.1-1
- Initial packaging