Build additional subpackages

- Enable xbean-spring
- Enable maven-xbean-plugin
- Remove RPM bug workaround
This commit is contained in:
Mikolaj Izdebski 2012-08-06 01:05:15 +02:00
parent 1faa516e01
commit c6daae2e79

View File

@ -2,7 +2,7 @@ Name: xbean
Version: 3.11.1
BuildArch: noarch
Release: 2%{?dist}
Release: 3%{?dist}
Summary: Java plugin based web server
Group: Development/Libraries
@ -37,6 +37,17 @@ BuildRequires: maven-site-plugin
BuildRequires: maven-shade-plugin
%if !0%{?rhel:1}
BuildRequires: eclipse-rcp
BuildRequires: maven-archiver
BuildRequires: maven-plugin-plugin
BuildRequires: maven-project
BuildRequires: plexus-archiver
BuildRequires: plexus-utils
BuildRequires: springframework
BuildRequires: springframework-beans
BuildRequires: springframework-context
BuildRequires: springframework-web
%else
BuildRequires: felix-framework
%endif
Requires: java
@ -55,41 +66,71 @@ support for running with no IoC system, JMX without JMX code,
lifecycle and class loader management, and a rock solid Spring
integration.
%if !0%{?rhel:1}
%package spring
Summary: Schema-driven namespace handler for spring contexts
Requires: %{name} = %{version}-%{release}
Requires: springframework-beans
Requires: springframework-context
Requires: springframework-web
%description spring
This package provides %{summary}.
%package -n maven-%{name}-plugin
Summary: XBean plugin for Apache Maven
Requires: %{name}-spring = %{version}-%{release}
Requires: maven
Requires: maven-archiver
Requires: maven-project
Requires: plexus-archiver
Requires: plexus-utils
Requires: qdox
Requires: springframework
Requires: springframework-beans
Requires: springframework-context
Requires: springframework-web
%description -n maven-%{name}-plugin
This package provides %{summary}.
%endif
%package javadoc
Summary: API documentation for %{name}
Group: Documentation
Requires: jpackage-utils
%description javadoc
%{summary}.
This package provides %{summary}.
%prep
%setup -q
# build failing on this due to doxia-sitetools problems
rm src/site/site.xml
%pom_xpath_remove "pom:parent"
%pom_remove_dep org.springframework:
%pom_remove_parent
%pom_remove_dep mx4j:mx4j
%pom_remove_dep :xbean-asm-shaded xbean-reflect
# Prevent modules depending on springframework from building.
# These aren't needed for now
%pom_disable_module xbean-asm-shaded
%pom_disable_module xbean-blueprint
%pom_disable_module xbean-classloader
%pom_disable_module xbean-finder-shaded
%pom_disable_module xbean-spring
%pom_disable_module xbean-telnet
%pom_disable_module maven-xbean-plugin
%pom_xpath_inject "pom:build/pom:plugins" "
<plugin>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>1.5</source>
<target>1.5</target>
</configuration>
</plugin>"
# Prevent modules depending on springframework from building.
if [ %{?rhel} ]; then
%pom_remove_dep org.springframework:
%pom_disable_module xbean-spring
%pom_disable_module maven-xbean-plugin
fi
%pom_add_plugin :maven-compiler-plugin . "
<configuration>
<source>1.5</source>
<target>1.5</target>
</configuration>"
# Force use of Equinox
%pom_remove_dep :org.osgi.core xbean-bundleutils
@ -106,12 +147,15 @@ rm src/site/site.xml
sed -i 's/org.apache.xbean.asm/org.objectweb.asm/' \
xbean-reflect/src/main/java/org/apache/xbean/recipe/XbeanAsmParameterNameLoader.java
# Fix ant groupId
find -name pom.xml -exec sed -i "s|<groupId>ant</groupId>|<groupId>org.apache.ant</groupId>|" {} \;
# Do not build equinox specific part for rhel.
%if 0%{?rhel} > 6
rm -fr xbean-bundleutils/src/main/java/org/apache/xbean/osgi/bundle/util/equinox/
sed -i "s|<groupId>org.eclipse|<groupId>org.apache.felix|g" xbean-bundleutils/pom.xml
sed -i "s|<artifactId>osgi|<artifactId>org.apache.felix.framework|g" xbean-bundleutils/pom.xml
%endif
if [ %{?rhel} ]; then
rm -rf xbean-bundleutils/src/main/java/org/apache/xbean/osgi/bundle/util/equinox/
sed -i "s|<groupId>org.eclipse|<groupId>org.apache.felix|g" xbean-bundleutils/pom.xml
sed -i "s|<artifactId>osgi|<artifactId>org.apache.felix.framework|g" xbean-bundleutils/pom.xml
fi
%build
@ -122,42 +166,76 @@ mvn-rpmbuild -e \
%install
# for every module we want to be built
for sub in bundleutils finder reflect naming classpath; do
# install jar
install -Dpm 644 %{name}-${sub}/target/%{name}-${sub}-%{version}.jar \
$RPM_BUILD_ROOT/%{_javadir}/xbean/%{name}-${sub}.jar;
# intall pom
install -Dpm 644 %{name}-${sub}/pom.xml $RPM_BUILD_ROOT/%{_mavenpomdir}/JPP.%{name}-%{name}-${sub}.pom
# maven depmap
%add_maven_depmap JPP.%{name}-%{name}-${sub}.pom %{name}/%{name}-${sub}.jar
done
install -d -m 755 $RPM_BUILD_ROOT%{_javadocdir}/%{name}
cp -pr target/site/apidocs/* $RPM_BUILD_ROOT%{_javadocdir}/%{name}
install -dm 755 $RPM_BUILD_ROOT/%{_javadir}/%{name}
install -dm 755 $RPM_BUILD_ROOT/%{_mavenpomdir}
install -dm 755 $RPM_BUILD_ROOT/%{_mavendepmapfragdir}
install -dm 755 $RPM_BUILD_ROOT/%{_javadocdir}/%{name}
# parent pom
install -pm 644 pom.xml $RPM_BUILD_ROOT/%{_mavenpomdir}/JPP.%{name}-main.pom
%add_maven_depmap JPP.%{name}-main.pom
%pre javadoc
# workaround for rpm bug, can be removed in F-17
[ $1 -gt 1 ] && [ -L %{_javadocdir}/%{name} ] && \
rm -rf $(readlink -f %{_javadocdir}/%{name}) %{_javadocdir}/%{name} || :
for sub in bundleutils classpath finder naming reflect; do
install -m 644 %{name}-${sub}/target/%{name}-${sub}-%{version}.jar $RPM_BUILD_ROOT/%{_javadir}/%{name}/%{name}-${sub}.jar
install -pm 644 %{name}-${sub}/pom.xml $RPM_BUILD_ROOT/%{_mavenpomdir}/JPP.%{name}-%{name}-${sub}.pom
%add_maven_depmap JPP.%{name}-%{name}-${sub}.pom %{name}/%{name}-${sub}.jar
done
if [ %{?fedora} ]; then
# xbean-spring
install -m 644 %{name}-spring/target/%{name}-spring-%{version}.jar $RPM_BUILD_ROOT/%{_javadir}/%{name}/%{name}-spring.jar
install -pm 644 %{name}-spring/pom.xml $RPM_BUILD_ROOT/%{_mavenpomdir}/JPP.%{name}-%{name}-spring.pom
%add_maven_depmap JPP.%{name}-%{name}-spring.pom %{name}/%{name}-spring.jar -f spring
# maven-xbean-plugin
install -m 644 maven-%{name}-plugin/target/maven-%{name}-plugin-%{version}.jar $RPM_BUILD_ROOT/%{_javadir}/%{name}/maven-%{name}-plugin.jar
install -pm 644 maven-%{name}-plugin/pom.xml $RPM_BUILD_ROOT/%{_mavenpomdir}/JPP.%{name}-maven-%{name}-plugin.pom
%add_maven_depmap JPP.%{name}-maven-%{name}-plugin.pom %{name}/maven-%{name}-plugin.jar -f maven-plugin
fi
# javadocs
cp -pr target/site/apidocs/* $RPM_BUILD_ROOT%{_javadocdir}/%{name}
%files
%doc LICENSE NOTICE
%{_mavenpomdir}/*.pom
%dir %{_javadir}/%{name}
%{_javadir}/%{name}/%{name}-bundleutils.jar
%{_javadir}/%{name}/%{name}-classpath.jar
%{_javadir}/%{name}/%{name}-finder.jar
%{_javadir}/%{name}/%{name}-naming.jar
%{_javadir}/%{name}/%{name}-reflect.jar
%{_mavenpomdir}/JPP.%{name}-main.pom
%{_mavenpomdir}/JPP.%{name}-%{name}-bundleutils.pom
%{_mavenpomdir}/JPP.%{name}-%{name}-classpath.pom
%{_mavenpomdir}/JPP.%{name}-%{name}-finder.pom
%{_mavenpomdir}/JPP.%{name}-%{name}-naming.pom
%{_mavenpomdir}/JPP.%{name}-%{name}-reflect.pom
%{_mavendepmapfragdir}/%{name}
%{_javadir}/%{name}
%if !0%{?rhel:1}
%files spring
%doc LICENSE NOTICE
%{_javadir}/%{name}/%{name}-spring.jar
%{_mavenpomdir}/JPP.%{name}-%{name}-spring.pom
%{_mavendepmapfragdir}/%{name}-spring
%files -n maven-%{name}-plugin
%doc LICENSE NOTICE
%{_javadir}/%{name}/maven-%{name}-plugin.jar
%{_mavenpomdir}/JPP.%{name}-maven-%{name}-plugin.pom
%{_mavendepmapfragdir}/%{name}-maven-plugin
%endif
%files javadoc
%doc LICENSE
%doc LICENSE NOTICE
%{_javadocdir}/%{name}
%changelog
* Mon Aug 6 2012 Mikolaj Izdebski <mizdebsk@redhat.com> - 3.11.1-3
- Enable xbean-spring
- Enable maven-xbean-plugin
- Remove RPM bug workaround
* Sun Jul 22 2012 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 3.11.1-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_18_Mass_Rebuild