Name: picocontainer-script
Version: 2.2
Release: 1%{?dist}
Summary: Scripting-layer for picocontainer
Group: Development/Libraries
License: BSD
Url: http://picocontainer.codehaus.org/
# svn export http://svn.codehaus.org/picocontainer/java/2.x/tags/picocontainer-script-2.2
# tar czf picocontainer-script-2.2-src-svn.tar.gz picocontainer-script-2.2
Source0: picocontainer-script-2.2-src-svn.tar.gz
BuildRequires: java-devel
BuildRequires: jpackage-utils
BuildRequires: apache-commons-cli
BuildRequires: bsh
BuildRequires: groovy
BuildRequires: jruby
BuildRequires: jython >= 2.2.1-10
BuildRequires: picocontainer >= 2.14.1
BuildRequires: rhino
BuildRequires: xstream
BuildRequires: maven
BuildRequires: maven-compiler-plugin
BuildRequires: maven-install-plugin
BuildRequires: maven-jar-plugin
BuildRequires: maven-javadoc-plugin
BuildRequires: maven-resources-plugin
BuildRequires: maven-surefire-plugin
Requires: apache-commons-cli
Requires: picocontainer >= 2.14.1
Requires: xstream
Requires: java
Requires: jpackage-utils
BuildArch: noarch
%description
The main scope of PicoContainer Script to provide a scripting
layer on top of PicoContainer, adding the following features:
* Classloader (classpath) management,including programmable
permissions
* Class name based composition (via reflection)
* Meta-data and script language support:
o XML
o Beanshell
o Groovy
o JRuby
o Jython
o Rhino
It is important to stress that there is no "official" script
or meta-data language. We support multiple script languages
to give the use the maximum flexibility in the choice that
suits the task at hand. XML is of course the most widely
used and mature meta-data markup, but lacks the programming
features of some scripting languages, such as Groovy or
JRuby with its builder syntax.
%package bsh
Group: Development/Libraries
Summary: PicoContainer Script BeanShell
Requires: %{name} = %{version}-%{release}
Requires: bsh
%description bsh
%{summary}.
%package groovy
Group: Development/Libraries
Summary: PicoContainer Script Groovy
Requires: %{name} = %{version}-%{release}
Requires: groovy
%description groovy
%{summary}.
%package jruby
Group: Development/Libraries
Summary: PicoContainer Script JRuby
Requires: %{name} = %{version}-%{release}
Requires: jruby
%description jruby
%{summary}.
%package jython
Group: Development/Libraries
Summary: PicoContainer Script Jython
Requires: %{name} = %{version}-%{release}
Requires: jython >= 2.2.1-10
%description jython
%{summary}.
%package rhino
Group: Development/Libraries
Summary: PicoContainer Script Rhino
Requires: %{name} = %{version}-%{release}
Requires: rhino
%description rhino
%{summary}.
%package javadoc
Group: Documentation
Summary: Javadoc for %{name}
Requires: jpackage-utils
%description javadoc
This package contains javadoc for %{name}.
%prep
%setup -q -n picocontainer-script-%{version}
find . -name "*.class" -delete
find . -name "*.bat" -delete
# test resources
find . -name "*.jar" -delete
# test deps
# unavailable deps org.picocontainer:picocontainer-tck:jar:2.11, org.jmock:jmock-junit4:jar:2.5.1
%pom_disable_module script-testmodel
%pom_disable_module script-tck
%pom_remove_dep org.picocontainer:picocontainer-tck
%pom_remove_dep org.jmock:jmock-junit4
sed -i "s|junit:junit-dep|junit:junit|" pom.xml
sed -i "s|groovy-all|groovy|" $(find . -name "pom.xml")
sed -i "s|jruby-complete|jruby|" $(find . -name "pom.xml")
%build
# tests skipped unavailable deps org.picocontainer:picocontainer-tck:jar:2.11, org.jmock:jmock-junit4:jar:2.5.1
mvn-rpmbuild -Dproject.build.sourceEncoding=UTF-8 -Dmaven.test.skip=true install javadoc:aggregate
%install
mkdir -p %{buildroot}%{_mavenpomdir}
install -pm 644 pom.xml %{buildroot}%{_mavenpomdir}/JPP.%{name}-%{name}.pom
%add_maven_depmap JPP.%{name}-%{name}.pom
mkdir -p %{buildroot}%{_javadir}/%{name}
install -m 644 script-core/target/%{name}-core-%{version}.jar %{buildroot}%{_javadir}/%{name}/%{name}-core.jar
install -pm 644 script-core/pom.xml %{buildroot}%{_mavenpomdir}/JPP.%{name}-%{name}-core.pom
%add_maven_depmap JPP.%{name}-%{name}-core.pom %{name}/%{name}-core.jar
for m in bsh \
groovy \
jruby \
jython \
rhino; do
install -m 644 script-${m}/target/%{name}-${m}-%{version}.jar %{buildroot}%{_javadir}/%{name}/%{name}-${m}.jar
install -pm 644 script-${m}/pom.xml %{buildroot}%{_mavenpomdir}/JPP.%{name}-%{name}-${m}.pom
%add_maven_depmap JPP.%{name}-%{name}-${m}.pom %{name}/%{name}-${m}.jar -f ${m}
done
mkdir -p %{buildroot}%{_javadocdir}/%{name}
cp -rp target/site/apidocs/* %{buildroot}%{_javadocdir}/%{name}
%files
%dir %{_javadir}/%{name}
%{_javadir}/%{name}/%{name}-core.jar
%{_mavenpomdir}/JPP.%{name}-%{name}.pom
%{_mavenpomdir}/JPP.%{name}-%{name}-core.pom
%{_mavendepmapfragdir}/%{name}
%doc LICENSE.txt README.txt
%files bsh
%{_javadir}/%{name}/%{name}-bsh.jar
%{_mavenpomdir}/JPP.%{name}-%{name}-bsh.pom
%{_mavendepmapfragdir}/%{name}-bsh
%doc LICENSE.txt
%files groovy
%{_javadir}/%{name}/%{name}-groovy.jar
%{_mavenpomdir}/JPP.%{name}-%{name}-groovy.pom
%{_mavendepmapfragdir}/%{name}-groovy
%doc LICENSE.txt
%files jruby
%{_javadir}/%{name}/%{name}-jruby.jar
%{_mavenpomdir}/JPP.%{name}-%{name}-jruby.pom
%{_mavendepmapfragdir}/%{name}-jruby
%doc LICENSE.txt
%files jython
%{_javadir}/%{name}/%{name}-jython.jar
%{_mavenpomdir}/JPP.%{name}-%{name}-jython.pom
%{_mavendepmapfragdir}/%{name}-jython
%doc LICENSE.txt
%files rhino
%{_javadir}/%{name}/%{name}-rhino.jar
%{_mavenpomdir}/JPP.%{name}-%{name}-rhino.pom
%{_mavendepmapfragdir}/%{name}-rhino
%doc LICENSE.txt
%files javadoc
%{_javadocdir}/%{name}
%doc LICENSE.txt
%changelog
* Tue Sep 18 2012 gil cattaneo 2.2-1
- initial rpm