Name: river
Version: 2.2.1
Release: 1%{?dist}
Summary: Apache River Jini
# packaged as library
Group: Development/Libraries
License: ASL 2.0
URL: http://river.apache.org/
Source0: http://www.apache.org/dist/river/%{name}-%{version}/apache-%{name}-%{version}-src.tar.gz
Source1: %{name}-jini-core-template.pom
Source2: %{name}-jini-ext-template.pom
Source3: %{name}-jsk-policy-template.pom
Source4: %{name}-sun-util-template.pom
# Only after build replace manifest
Source5: %{name}-tools-MANIFEST.MF
# One exception in tools.mf require for build all libraries, otherwise:
# [java] Exception in thread "main" java.lang.NoClassDefFoundError: org/objectweb/asm/ClassVisitor
Patch0: %{name}-2.2.1-remove-classpath.patch
BuildRequires: java-devel
BuildRequires: jpackage-utils
# build tools
BuildRequires: ant
BuildRequires: animal-sniffer
BuildRequires: mojo-signatures
BuildRequires: velocity
# main deps
BuildRequires: objectweb-asm
# test deps
BuildRequires: ant-junit
BuildRequires: cglib
BuildRequires: junit
BuildRequires: mockito
BuildRequires: multithreadedtc
BuildRequires: objenesis
Requires: java
Requires: jpackage-utils
BuildArch: noarch
%description
Apache River is a project furthering the development and
advancement of Jini technology.
Jini is a service oriented architecture that defines a
programming model which both exploits and extends Java
technology to enable the construction of secure,
distributed systems consisting of federations of services
and clients. Jini technology can be used to build adaptive
network systems that are scalable, evolvable and flexible
as typically required in dynamic computing environments.
%package services
Group: Development/Libraries
Summary: Apache River/Jini services
Requires: %{name} = %{version}-%{release}
Requires: objectweb-asm
%description services
Modules that provide Apache River/Jini services.
%package examples
Group: Development/Libraries
Summary: Apache River/Jini examples
Requires: %{name} = %{version}-%{release}
%description examples
This package contains examples for %{name}.
%package javadoc
Group: Documentation
Summary: Javadoc for %{name}
%description javadoc
This package contains javadoc for %{name}.
%package examples-javadoc
Group: Documentation
Summary: Javadoc for %{name}-examples
Requires: %{name}-examples = %{version}-%{release}
%description examples-javadoc
This package contains javadoc for %{name}-examples.
%package manual
Group: Documentation
Summary: Manual for %{name}
Requires: %{name} = %{version}-%{release}
%description manual
This package contains manual for %{name}.
%prep
%setup -q -n apache-%{name}-%{version}
find . -name "*.bat" -delete
find . -name "*.class" -delete
find . -name "*.jar" -delete
find . -name "*.zip" -delete
find . -name "java*.signature" -delete
%patch0 -p1
(
cd animal-sniffer
ln -sf $(build-classpath animal-sniffer/animal-sniffer) animal-sniffer-1.6.jar
ln -sf $(build-classpath animal-sniffer/ant-tasks-) animal-sniffer-ant-tasks-1.6.jar
ln -sf $(build-classpath mojo-signatures/java15.signature) java14-1.0.signature
ln -sf $(build-classpath mojo-signatures/java15.signature) java14-sun-1.0.signature
ln -sf $(build-classpath mojo-signatures/java16.signature) java15-1.0.signature
ln -sf $(build-classpath mojo-signatures/java16.signature) java15-ibm-1.0.signature
ln -sf $(build-classpath mojo-signatures/java16.signature) java15-sun-1.0.signature
)
(
cd asm
ln -sf $(build-classpath objectweb-asm/asm) asm-3.2.jar
ln -sf $(build-classpath objectweb-asm/asm-commons) asm-commons-3.2.jar
ln -sf $(build-classpath objectweb-asm/asm-tree) asm-tree-3.2.jar
)
(
cd velocity
ln -sf $(build-classpath velocity) velocity-1.7.jar
)
(
cd test/lib
ln -sf $(build-classpath cglib) cglib-nodep-2.2.jar
ln -sf $(build-classpath junit) junit-4.6.jar
ln -sf $(build-classpath mockito) mockito-all-1.7.jar
ln -sf $(build-classpath MultithreadedTC) MultithreadedTC-1.01.jar
ln -sf $(build-classpath objenesis) .
)
cp -p %{SOURCE1} poms/jini-core.pom
cp -p %{SOURCE2} poms/jini-ext.pom
cp -p %{SOURCE3} poms/jsk-policy.pom
cp -p %{SOURCE4} poms/sun-util.pom
sed -i "s|@VERSION@|%{version}|" poms/*.pom
sed -i "s|mvn|mvn-rpmbuild|" poms/deploy_river.groovy
sed -i 's/\r//' src-doc/static/specs/html/standard.css
%build
export CLASSPATH=$(build-classpath objectweb-asm)
ant all.build river-doc test
# replace manifest (without classpath)
cd lib
mkdir -p META-INF
cp -p %{SOURCE5} META-INF/MANIFEST.MF
touch META-INF/MANIFEST.MF
zip -u tools.jar META-INF/MANIFEST.MF
%install
mkdir -p %{buildroot}%{_mavenpomdir}
mkdir -p %{buildroot}%{_javadir}/%{name}
install -m 644 lib/jini-core.jar %{buildroot}%{_javadir}/%{name}/
install -pm 644 poms/jini-core.pom %{buildroot}%{_mavenpomdir}/JPP.%{name}-jini-core.pom
%add_maven_depmap JPP.%{name}-jini-core.pom %{name}/jini-core.jar -a "net.jini:jini-core,jini:jini-core"
install -m 644 lib/jini-ext.jar %{buildroot}%{_javadir}/%{name}/
install -pm 644 poms/jini-ext.pom %{buildroot}%{_mavenpomdir}/JPP.%{name}-jini-ext.pom
%add_maven_depmap JPP.%{name}-jini-ext.pom %{name}/jini-ext.jar -a "net.jini:jini-ext,jini:jini-ext"
install -m 644 lib-dl/jsk-dl.jar %{buildroot}%{_javadir}/%{name}/jsk-dl.jar
install -pm 644 poms/jsk-dl.pom %{buildroot}%{_mavenpomdir}/JPP.%{name}-jsk-dl.pom
%add_maven_depmap JPP.%{name}-jsk-dl.pom %{name}/jsk-dl.jar
install -m 644 lib-ext/jsk-policy.jar %{buildroot}%{_javadir}/%{name}/
install -pm 644 poms/jsk-policy.pom %{buildroot}%{_mavenpomdir}/JPP.%{name}-jsk-policy.pom
%add_maven_depmap JPP.%{name}-jsk-policy.pom %{name}/jsk-policy.jar
for m in jsk-lib \
jsk-platform \
jsk-resources \
sun-util;do
install -m 644 lib/${m}.jar %{buildroot}%{_javadir}/%{name}/${m}.jar
install -pm 644 poms/${m}.pom %{buildroot}%{_mavenpomdir}/JPP.%{name}-${m}.pom
%add_maven_depmap JPP.%{name}-${m}.pom %{name}/${m}.jar
done
for m in fiddler \
mahalo \
mercury \
norm \
outrigger \
reggie \
serviceui \
start;do
install -m 644 lib/${m}.jar %{buildroot}%{_javadir}/%{name}/${m}.jar
install -pm 644 poms/${m}.pom %{buildroot}%{_mavenpomdir}/JPP.%{name}-${m}.pom
%add_maven_depmap -f services JPP.%{name}-${m}.pom %{name}/${m}.jar
done
install -pm 644 lib/browser.jar %{buildroot}%{_javadir}/%{name}/
install -pm 644 lib/destroy.jar %{buildroot}%{_javadir}/%{name}/
install -pm 644 lib/extra.jar %{buildroot}%{_javadir}/%{name}/
install -pm 644 lib/group.jar %{buildroot}%{_javadir}/%{name}/
install -pm 644 lib/jsk-debug-policy.jar %{buildroot}%{_javadir}/%{name}/
install -pm 644 lib/outrigger-snaplogstore.jar %{buildroot}%{_javadir}/%{name}/
install -pm 644 lib/phoenix-group.jar %{buildroot}%{_javadir}/%{name}/
install -pm 644 lib/phoenix-init.jar %{buildroot}%{_javadir}/%{name}/
install -pm 644 lib/phoenix.jar %{buildroot}%{_javadir}/%{name}/
install -pm 644 lib/sharedvm.jar %{buildroot}%{_javadir}/%{name}/
install -pm 644 lib/tools.jar %{buildroot}%{_javadir}/%{name}/
for m in fiddler-dl \
mahalo-dl \
mercury-dl \
norm-dl \
outrigger-dl \
reggie-dl;do
install -m 644 lib-dl/${m}.jar %{buildroot}%{_javadir}/%{name}/${m}.jar
install -pm 644 poms/${m}.pom %{buildroot}%{_mavenpomdir}/JPP.%{name}-${m}.pom
%add_maven_depmap -f services JPP.%{name}-${m}.pom %{name}/${m}.jar
done
install -pm 644 lib-dl/browser-dl.jar %{buildroot}%{_javadir}/%{name}/
install -pm 644 lib-dl/group-dl.jar %{buildroot}%{_javadir}/%{name}/
install -pm 644 lib-dl/phoenix-dl.jar %{buildroot}%{_javadir}/%{name}/
install -pm 644 lib-dl/sdm-dl.jar %{buildroot}%{_javadir}/%{name}/
install -pm 644 examples/hello/lib/client.jar %{buildroot}%{_javadir}/%{name}/
install -pm 644 examples/hello/lib/mdprefld.jar %{buildroot}%{_javadir}/%{name}/
install -pm 644 examples/hello/lib/server-act.jar %{buildroot}%{_javadir}/%{name}/
install -pm 644 examples/hello/lib/server-dl.jar %{buildroot}%{_javadir}/%{name}/
install -pm 644 examples/hello/lib/server.jar %{buildroot}%{_javadir}/%{name}/
mkdir -p %{buildroot}%{_javadocdir}/%{name}/spec
cp -pr doc/api/* %{buildroot}%{_javadocdir}/%{name}
cp -a doc/internals %{buildroot}%{_javadocdir}/%{name}
cp -pr doc/specs/api/* %{buildroot}%{_javadocdir}/%{name}/spec
rm -rf doc/api doc/internals doc/specs/api
mkdir -p %{buildroot}%{_javadocdir}/%{name}-examples
cp -pr examples/hello/doc/api/* %{buildroot}%{_javadocdir}/%{name}-examples
%files
%dir %{_javadir}/%{name}
%{_javadir}/%{name}/jini-core.jar
%{_javadir}/%{name}/jini-ext.jar
%{_javadir}/%{name}/jsk-dl.jar
%{_javadir}/%{name}/jsk-lib.jar
%{_javadir}/%{name}/jsk-platform.jar
%{_javadir}/%{name}/jsk-policy.jar
%{_javadir}/%{name}/jsk-resources.jar
%{_javadir}/%{name}/sun-util.jar
%{_mavenpomdir}/JPP.%{name}-jini-*.pom
%{_mavenpomdir}/JPP.%{name}-jsk-dl.pom
%{_mavenpomdir}/JPP.%{name}-jsk-lib.pom
%{_mavenpomdir}/JPP.%{name}-jsk-platform.pom
%{_mavenpomdir}/JPP.%{name}-jsk-policy.pom
%{_mavenpomdir}/JPP.%{name}-jsk-resources.pom
%{_mavenpomdir}/JPP.%{name}-sun-util.pom
%{_mavendepmapfragdir}/%{name}
%doc LICENSE.txt NOTICE.txt
%files services
%{_javadir}/%{name}/fiddler*.jar
%{_javadir}/%{name}/mahalo*.jar
%{_javadir}/%{name}/mercury*.jar
%{_javadir}/%{name}/norm*.jar
%{_javadir}/%{name}/outrigger.jar
%{_javadir}/%{name}/outrigger-dl.jar
%{_javadir}/%{name}/reggie*.jar
%{_javadir}/%{name}/serviceui.jar
%{_javadir}/%{name}/start.jar
%{_javadir}/%{name}/tools.jar
%{_mavenpomdir}/JPP.%{name}-fiddler*.pom
%{_mavenpomdir}/JPP.%{name}-mahalo*.pom
%{_mavenpomdir}/JPP.%{name}-mercury*.pom
%{_mavenpomdir}/JPP.%{name}-norm*.pom
%{_mavenpomdir}/JPP.%{name}-outrigger.pom
%{_mavenpomdir}/JPP.%{name}-outrigger-dl.pom
%{_mavenpomdir}/JPP.%{name}-reggie*.pom
%{_mavenpomdir}/JPP.%{name}-serviceui.pom
%{_mavenpomdir}/JPP.%{name}-start.pom
%{_mavendepmapfragdir}/%{name}-services
%{_javadir}/%{name}/destroy.jar
%{_javadir}/%{name}/extra.jar
%{_javadir}/%{name}/group*.jar
%{_javadir}/%{name}/outrigger-snaplogstore.jar
%{_javadir}/%{name}/phoenix.jar
%{_javadir}/%{name}/phoenix-dl.jar
%{_javadir}/%{name}/phoenix-group.jar
%{_javadir}/%{name}/phoenix-init.jar
%{_javadir}/%{name}/sdm-dl.jar
%{_javadir}/%{name}/sharedvm.jar
%{_javadir}/%{name}/browser*.jar
%{_javadir}/%{name}/jsk-debug-policy.jar
%doc LICENSE.txt NOTICE.txt
%files examples
%{_javadir}/%{name}/client.jar
%{_javadir}/%{name}/mdprefld.jar
%{_javadir}/%{name}/server-act.jar
%{_javadir}/%{name}/server-dl.jar
%{_javadir}/%{name}/server.jar
%doc LICENSE.txt NOTICE.txt
%files javadoc
%{_javadocdir}/%{name}
%doc LICENSE.txt NOTICE.txt
%files examples-javadoc
%{_javadocdir}/%{name}-examples
%doc LICENSE.txt NOTICE.txt
%files manual
%doc doc/*
%doc LICENSE.txt NOTICE.txt
%changelog
* Sun Jun 09 2013 gil cattaneo 2.2.1-1
- update to 2.2.1
* Thu Apr 12 2012 gil cattaneo 2.2.0-1
- initial rpm