Name: hazelcast
Version: 2.6.3
Release: 1%{?dist}
Summary: Hazelcast CE In-Memory DataGrid
License: ASL 2.0
URL: http://www.hazelcast.com/
Source0: https://github.com/hazelcast/hazelcast/archive/v%{version}.tar.gz
BuildRequires: java-devel
BuildRequires: glassfish-jsp-api
# dont support hibernate 4.x series
BuildRequires: hibernate3
BuildRequires: mvn(org.apache.tomcat:tomcat-servlet-api)
BuildRequires: mvn(com.google.guava:guava)
BuildRequires: mvn(org.hibernate.common:hibernate-commons-annotations)
BuildRequires: mvn(log4j:log4j)
BuildRequires: mvn(org.jboss.spec.javax.resource:jboss-connector-api_1.6_spec)
BuildRequires: mvn(org.slf4j:slf4j-api)
# required by hibernate3
BuildRequires: mvn(javax.transaction:jta)
%if 0
# hazelcast-spring
BuildRequires: mvn(javax.annotation:jsr250-api)
BuildRequires: mvn(org.springframework:spring-beans)
BuildRequires: mvn(org.springframework:spring-context)
BuildRequires: mvn(org.springframework:spring-core)
BuildRequires: mvn(org.mongodb:mongo-java-driver) >= 2.7.3
# Unavailable dep
BuildRequires: mvn(org.springframework.data:spring-data-mongodb) >= 1.0.1.RELEASE
# hazelcast-spring test deps
BuildRequires: mvn(org.springframework:spring-tx)
BuildRequires: mvn(org.springframework:spring-test)
%endif
# test deps
BuildRequires: glassfish-jsp
#BuildRequires: mvn(org.eclipse.jetty:jetty-jsp)
BuildRequires: mvn(javassist:javassist)
BuildRequires: mvn(org.eclipse.jetty:jetty-webapp)
BuildRequires: mvn(org.slf4j:slf4j-simple)
%if %{fedora} > 19
BuildRequires: mvn(hsqldb:hsqldb:1)
%else
BuildRequires: mvn(hsqldb:hsqldb)
%endif
BuildRequires: mvn(junit:junit)
BuildRequires: mvn(org.mockito:mockito-core)
BuildRequires: maven-local
BuildRequires: maven-dependency-plugin
BuildRequires: maven-assembly-plugin
BuildRequires: maven-antrun-plugin
BuildRequires: maven-plugin-bundle
#BuildRequires: maven-rar-plugin
BuildRequires: maven-source-plugin
BuildArch: noarch
%description
Hazelcast CE is an open source highly scalable data distribution platform.
Hazelcast allows you to easily share and partition your data across your
cluster.
%package client
Summary: Hazelcast Client
%description client
Hazelcast Client enables you to do all Hazelcast
operations without being a member of the cluster.
%package cloud
Summary: Hazelcast EC2 Auto Discovery
%description cloud
Hazelcast EC2 Auto Discovery.
%package hibernate3
Summary: Integration of Hazelcast with Hibernate 3
%description hibernate3
Hazelcast second level cache provider for Hibernate 3.
%package ra
Summary: Hazelcast Resource Adapter
%description ra
Hazelcast Resource Adapter.
%if 0
%package spring
Summary: Integration of Hazelcast with Spring
%description spring
Hazelcast Spring cache provider.
%endif
%package wm
Summary: Hazelcast WebFilter
%description wm
Hazelcast dynamic HTTP session clustering.
%package javadoc
Summary: Javadoc for %{name}
%description javadoc
This package contains javadoc for %{name}.
%prep
%setup -q -n %{name}-%{version}
find . -name "*.bat" -delete
find . -name "*.class" -delete
find . -name "*.jar" -delete
find . -name "*.rar" -delete
find . -name "*.war" -delete
%pom_remove_plugin :findbugs-maven-plugin
%pom_remove_plugin :animal-sniffer-maven-plugin %{name}
%pom_remove_plugin :animal-sniffer-maven-plugin %{name}-client
%pom_remove_plugin :animal-sniffer-maven-plugin %{name}-cloud
%pom_remove_plugin :animal-sniffer-maven-plugin %{name}-hibernate
%pom_remove_plugin :animal-sniffer-maven-plugin %{name}-ra
%pom_remove_plugin :animal-sniffer-maven-plugin %{name}-spring
%pom_remove_plugin :animal-sniffer-maven-plugin %{name}-wm
%pom_remove_plugin :jetty-maven-plugin %{name}-wm
%pom_disable_module %{name}-documentation
# requires org.springframework.data:spring-data-mongodb
%pom_disable_module %{name}-spring
%pom_xpath_remove "pom:project/pom:build/pom:resources/pom:resource[pom:directory='../hazelcast-spring/target/classes']" %{name}-all
%pom_xpath_remove "pom:project/pom:build/pom:plugins/pom:plugin[pom:artifactId='maven-bundle-plugin']/pom:executions/pom:execution/pom:configuration/pom:instructions/pom:Import-Package" %{name}-all
%pom_xpath_inject "pom:project/pom:build/pom:plugins/pom:plugin[pom:artifactId='maven-bundle-plugin']/pom:executions/pom:execution/pom:configuration/pom:instructions" "
!junit.framework,
!org.junit,
!org.mockito,
org.apache.log4j;resolution:=optional,
org.apache.log4j.*;resolution:=optional,
org.slf4j;resolution:=optional,
org.hibernate;resolution:=optional,
org.hibernate.*;resolution:=optional,
*
" %{name}-all
%pom_xpath_remove "pom:project/pom:build/pom:plugins/pom:plugin[pom:artifactId='maven-dependency-plugin']/pom:executions/pom:execution/pom:configuration/pom:artifactItems/pom:artifactItem[pom:artifactId='hazelcast-spring']" %{name}-all
%pom_xpath_set "pom:project/pom:properties/pom:hibernate.core.version" 3 %{name}-hibernate
%if %{fedora} > 19
%pom_xpath_set "pom:project/pom:properties/pom:hsqldb.version" 1 %{name}-hibernate
%endif
%pom_xpath_set "pom:project/pom:dependencies/pom:dependency[pom:groupId = 'org.mockito' ]/pom:artifactId" mockito-core
%pom_xpath_set "pom:project/pom:packaging" jar %{name}-ra
%pom_remove_dep geronimo-spec:geronimo-spec-j2ee-connector %{name}-ra
%pom_add_dep org.jboss.spec.javax.resource:jboss-connector-api_1.6_spec::provided %{name}-ra
%pom_remove_plugin :maven-rar-plugin %{name}-ra
%pom_remove_dep javax.servlet:javax.servlet-api %{name}-wm
%pom_add_dep org.apache.tomcat:tomcat-servlet-api::provided %{name}-wm
%pom_remove_dep org.eclipse.jetty:jetty-jsp %{name}-wm
%pom_add_dep org.glassfish.web:javax.servlet.jsp::test %{name}-wm
cp -p src/main/resources/apache-v2-license.txt license.txt
cp -p src/main/resources/notice.txt .
sed -i 's|../lib/hazelcast-${project.version}.jar|%{_javadir}/%{name}/%{name}.jar|' \
%{name}/src/main/resources/*.sh
sed -i 's|../lib/hazelcast-client-${project.version}.jar|%{_javadir}/%{name}/%{name}-client.jar|' \
%{name}-client/src/main/resources/*.sh
sed -i 's|../lib/hazelcast-${project.version}.jar:../lib/hazelcast-wm-${project.version}.jar|%{_javadir}/%{name}/%{name}.jar:%{_javadir}/%{name}/%{name}-wm.jar|' \
%{name}-wm/src/main/resources/*.sh
for m in client \
hibernate \
spring \
wm; do
%pom_xpath_remove "pom:project/pom:dependencies/pom:dependency[pom:scope='test']" %{name}-${m}
done
rm -rf hazelcast*/src/test/java/*
%build
%mvn_package ":%{name}-all" %{name}
%mvn_package ":%{name}-root" %{name}
%mvn_package ":%{name}-hibernate" %{name}-hibernate3
# takes too much time and @ random fails
# e.g.
# [INFO] hazelcast ......................................... SUCCESS [49:00.842s]
# Tests in error:
# putIfAbsentWithTtl(com.hazelcast.client.HazelcastClientMapTest): No cluster member available to connect
# testNoClusterAfterStart(com.hazelcast.client.HazelcastClientClusterTest): Unexpected exception, expected but was
%mvn_build -f -s
%install
%mvn_install
%files -f .mfiles-%{name}
%dir %{_javadir}/%{name}
%doc license.txt notice.txt README.md
%files client -f .mfiles-%{name}-client
%doc license.txt notice.txt
%files cloud -f .mfiles-%{name}-cloud
%doc license.txt notice.txt
%files hibernate3 -f .mfiles-%{name}-hibernate3
%doc license.txt notice.txt
%files ra -f .mfiles-%{name}-ra
%doc license.txt notice.txt
%if 0
%files spring -f .mfiles-%{name}-spring
%doc license.txt notice.txt
%endif
%files wm -f .mfiles-%{name}-wm
%doc license.txt notice.txt
%files javadoc -f .mfiles-javadoc
%doc license.txt notice.txt
%changelog
* Wed Oct 02 2013 gil cattaneo 2.6.3-1
- update to 2.6.3
* Fri Aug 30 2013 gil cattaneo 2.6.2-1
- update to 2.6.2
* Wed Jun 05 2013 gil cattaneo 2.6-1
- initial rpm