ALT Linux repos
Group :: Development/Java
RPM: maven-surefire
Main Changelog Spec Patches Sources Download Gear Bugs and FR Repocop
Packager: Igor Vlasenko <viy at altlinux.ru>
BuildRequires: plexus-archiver
%define _without_maven 1
BuildRequires: /proc
BuildRequires: jpackage-compat
# Copyright (c) 2000-2008, JPackage Project
# All rights reserved.
#
# Redistribution and use in source and binary forms, with or without
# modification, are permitted provided that the following conditions
# are met:
#
# 1. Redistributions of source code must retain the above copyright
# notice, this list of conditions and the following disclaimer.
# 2. Redistributions in binary form must reproduce the above copyright
# notice, this list of conditions and the following disclaimer in the
# documentation and/or other materials provided with the
# distribution.
# 3. Neither the name of the JPackage Project nor the names of its
# contributors may be used to endorse or promote products derived
# from this software without specific prior written permission.
#
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
#
%define with() %{expand:%%{?with_%{1}:1}%%{!?with_%{1}:0}}
%define without() %{expand:%%{?with_%{1}:0}%%{!?with_%{1}:1}}
%define bcond_with() %{expand:%%{?_with_%{1}:%%global with_%{1} 1}}
%define bcond_without() %{expand:%%{!?_without_%{1}:%%global with_%{1} 1}}
%bcond_without maven
Name: maven-surefire
Version: 2.3.1
Release: alt2_3jpp5
Epoch: 0
Summary: Surefire is a test framework project.
License: ASL 2.0
Group: Development/Java
URL: http://maven.apache.org/surefire/
# svn export http://svn.apache.org/repos/asf/maven/surefire/tags/surefire-2.3.1/ maven-surefire-2.3.1
Source0: %{name}-%{version}.tar.gz
Source1: %{name}-settings.xml
Source2: %{name}-jpp-depmap.xml
Source3: %{name}-2.3.1-build.tar.gz
Patch0: maven-surefire-2.3-Commandline.patch
Patch1: maven-surefire-2.3-CommandShell.patch
Patch2: maven-surefire-2.3-CmdShell.patch
Patch3: maven-surefire-2.3-junit4-pom.patch
Patch4: maven-surefire-2.3-testng-TestNGXmlTestSuite.patch
Patch5: maven-surefire-2.3-testng-TestNGDirectoryTestSuite.patch
Requires(post): jpackage-utils >= 0:1.7.5
Requires(postun): jpackage-utils >= 0:1.7.5
Requires: classworlds
Requires: plexus-utils
Requires: junit4
BuildRequires: jpackage-utils >= 0:1.7.5
BuildRequires: ant >= 0:1.6.5
BuildRequires: ant-junit
BuildRequires: junit >= 3.8.2
BuildRequires: junit4
BuildRequires: maven2
BuildRequires: maven-doxia
BuildRequires: maven-shared-reporting-impl
BuildRequires: plexus-utils
BuildRequires: testng
%if %with maven
BuildRequires: maven2 >= 0:2.0.7
BuildRequires: maven2-plugin-ant
BuildRequires: maven2-plugin-compiler
BuildRequires: maven2-plugin-install
BuildRequires: maven2-plugin-jar
BuildRequires: maven2-plugin-javadoc
BuildRequires: maven2-plugin-plugin
BuildRequires: maven2-plugin-resources
BuildRequires: maven2-plugin-site
BuildRequires: maven-surefire-plugin
BuildRequires: maven-shared-plugin-testing-harness
%endif
BuildArch: noarch
Patch33: maven-surefire-2.3.1-alt-null-project.patch
%description
Surefire is a test framework project.
%package booter
Summary: Booter for %{name}
Group: Development/Java
Requires: %{name} = %{epoch}:%{version}-%{release}
Requires: plexus-archiver
Requires: plexus-containers-component-api
Requires: plexus-utils
%description booter
%{summary}.
%package junit
Summary: JUnit3 Runner for %{name}
Group: Development/Java
Requires: %{name} = %{epoch}:%{version}-%{release}
Requires: junit
%description junit
%{summary}.
%package junit4
Summary: JUnit4 Runner for %{name}
Group: Development/Java
Requires: %{name} = %{epoch}:%{version}-%{release}
Requires: junit4
%description junit4
%{summary}.
%package testng
Summary: TestNG Runner for %{name}
Group: Development/Java
Requires: %{name} = %{epoch}:%{version}-%{release}
Requires: plexus-utils
Requires: testng
%description testng
%{summary}.
%package plugin
Summary: Maven2 Plugin for %{name}
Group: Development/Java
Requires: %{name} = %{epoch}:%{version}-%{release}
Requires: %{name}-booter = %{epoch}:%{version}-%{release}
Requires: %{name}-junit = %{epoch}:%{version}-%{release}
Requires: %{name}-junit4 = %{epoch}:%{version}-%{release}
Requires: %{name}-testng = %{epoch}:%{version}-%{release}
Requires: maven2
Requires: plexus-utils
Obsoletes: maven2-plugin-surefire < 0:2.0.7
Provides: maven2-plugin-surefire = %{epoch}:%{version}-%{release}
%description plugin
%{summary}.
%package report-plugin
Summary: Maven2 Report Plugin for %{name}
Group: Development/Java
Requires: %{name} = %{epoch}:%{version}-%{release}
Requires: %{name}-booter = %{epoch}:%{version}-%{release}
Requires: maven2
Requires: maven-doxia
Requires: plexus-utils
Obsoletes: maven2-plugin-surefire-report < 0:2.0.7
Provides: maven2-plugin-surefire-report = %{epoch}:%{version}-%{release}
%description report-plugin
%{summary}.
%package javadoc
Summary: Javadoc for %{name} API
Group: Development/Documentation
%description javadoc
%{summary}.
%package booter-javadoc
Summary: Javadoc for %{name} Booter
Group: Development/Documentation
%description booter-javadoc
%{summary}.
%package junit-javadoc
Summary: Javadoc for %{name} JUnit3 Runner
Group: Development/Documentation
%description junit-javadoc
%{summary}.
%package junit4-javadoc
Summary: Javadoc for %{name} JUnit4 Runner
Group: Development/Documentation
%description junit4-javadoc
%{summary}.
%package testng-javadoc
Summary: Javadoc for %{name} TestNG Runner
Group: Development/Documentation
%description testng-javadoc
%{summary}.
%prep
%setup -q
%if %without maven
%setup -q -T -D -a 3
%endif
cp -p %{SOURCE1} settings.xml
sed -i -e "s|<url>__JPP_URL_PLACEHOLDER__</url>|<url>file://`pwd`/.m2/repository</url>|g" settings.xml
sed -i -e "s|<url>__JAVADIR_PLACEHOLDER__</url>|<url>file://`pwd`/external_repo</url>|g" settings.xml
sed -i -e "s|<url>__MAVENREPO_DIR_PLACEHOLDER__</url>|<url>file://`pwd`/.m2/repository</url>|g" settings.xml
sed -i -e "s|<url>__MAVENDIR_PLUGIN_PLACEHOLDER__</url>|<url>file:///usr/share/maven2/plugins</url>|g" settings.xml
sed -i -e "s|<url>__ECLIPSEDIR_PLUGIN_PLACEHOLDER__</url>|<url>file:///usr/share/eclipse/plugins</url>|g" settings.xml
sed -i -e s:"private static void failSame(":"public static void failSame(":g \
surefire-api/src/main/java/org/apache/maven/surefire/assertion/SurefireAssert.java
sed -i -e s:"private static void failNotSame(":"public static void failNotSame(":g \
surefire-api/src/main/java/org/apache/maven/surefire/assertion/SurefireAssert.java
sed -i -e s:"private static void failNotEquals(":"public static void failNotEquals(":g \
surefire-api/src/main/java/org/apache/maven/surefire/assertion/SurefireAssert.java
%patch0 -b .sav0
%patch1 -b .sav1
%patch2 -b .sav2
%patch3 -b .sav3
%patch4 -b .sav4
%patch5 -b .sav5
for i in \
maven-surefire-report-plugin/src/main/java/org/apache/maven/plugins/surefire/report/SurefireReportGenerator.java \
maven-surefire-report-plugin/src/main/java/org/apache/maven/plugins/surefire/report/SurefireReportMojo.java; do
sed -i -e s:org.codehaus.doxia.sink.Sink:org.apache.maven.doxia.sink.Sink:g $i
sed -i -e s:org.codehaus.doxia.site.renderer.SiteRenderer:org.apache.maven.doxia.siterenderer.Renderer:g $i
sed -i -r -e s:\(\\s+\)SiteRenderer\(\\s+\):\\1Renderer\\2:g $i
done
%patch33 -p1
%build
%if %with maven
export MAVEN_REPO_LOCAL=$(pwd)/.m2/repository
mkdir -p $MAVEN_REPO_LOCAL
rm -rf surefire-api/src/test
rm -rf surefire-booter/src/test
rm -rf maven-surefire-report-plugin/src/test
mvn-jpp \
-e \
-s settings.xml \
-Dmaven.test.failure.ignore=true \
-Dmaven.repo.local=$MAVEN_REPO_LOCAL \
-Dmaven2.jpp.depmap.file=%{SOURCE2} \
ant:ant install javadoc:javadoc
%else
export CLASSPATH=$(build-classpath \
commons-lang \
plexus/utils \
)
CLASSPATH=$CLASSPATH:target/classes:target/test-classes
pushd surefire-api
ant -Dbuild.sysclasspath=only jar javadoc
popd
export CLASSPATH=$(build-classpath \
plexus/archiver \
plexus/containers-component-api \
plexus/utils \
)
CLASSPATH=$CLASSPATH:$(pwd)/surefire-api/target/surefire-api-%{version}.jar
CLASSPATH=$CLASSPATH:target/classes:target/test-classes
pushd surefire-booter
ant -Dbuild.sysclasspath=only jar javadoc
popd
export CLASSPATH=$(build-classpath \
junit \
)
CLASSPATH=$CLASSPATH:$(pwd)/surefire-api/target/surefire-api-%{version}.jar
CLASSPATH=$CLASSPATH:target/classes:target/test-classes
pushd surefire-providers/surefire-junit
ant -Dbuild.sysclasspath=only jar javadoc
popd
export CLASSPATH=$(build-classpath \
junit4 \
)
CLASSPATH=$CLASSPATH:$(pwd)/surefire-api/target/surefire-api-%{version}.jar
CLASSPATH=$CLASSPATH:target/classes:target/test-classes
pushd surefire-providers/surefire-junit4
ant -Dbuild.sysclasspath=only jar javadoc
popd
export CLASSPATH=$(build-classpath \
plexus/utils \
testng-jdk15 \
)
CLASSPATH=$CLASSPATH:$(pwd)/surefire-api/target/surefire-api-%{version}.jar
CLASSPATH=$CLASSPATH:target/classes:target/test-classes
pushd surefire-providers/surefire-testng
ant -Dbuild.sysclasspath=only jar javadoc
popd
export CLASSPATH=$(build-classpath \
maven2/artifact \
maven2/model \
maven2/plugin-api \
maven2/project \
plexus/utils \
)
CLASSPATH=$CLASSPATH:$(pwd)/surefire-api/target/surefire-api-%{version}.jar
CLASSPATH=$CLASSPATH:$(pwd)/surefire-booter/target/surefire-booter-%{version}.jar
CLASSPATH=$CLASSPATH:target/classes:target/test-classes
pushd maven-surefire-plugin
mkdir -p target/classes/META-INF/maven/org.apache.maven.plugins/maven-surefire-plugin/
cp pom.xml target/classes/META-INF/maven/org.apache.maven.plugins/maven-surefire-plugin/
cat > target/classes/META-INF/maven/org.apache.maven.plugins/maven-surefire-plugin/pom.properties <<EOT
version=2.3
groupId=org.apache.maven.plugins
artifactId=maven-surefire-plugin
EOT
ant -Dbuild.sysclasspath=only jar
popd
export CLASSPATH=$(build-classpath \
maven2/artifact \
maven2/model \
maven2/plugin-api \
maven2/project \
maven2/reporting-api \
maven-doxia/sink \
maven-doxia/site-renderer \
maven-shared/reporting-impl \
plexus/utils \
)
CLASSPATH=$CLASSPATH:$(pwd)/surefire-api/target/surefire-api-%{version}.jar
CLASSPATH=$CLASSPATH:$(pwd)/surefire-booter/target/surefire-booter-%{version}.jar
CLASSPATH=$CLASSPATH:target/classes:target/test-classes
pushd maven-surefire-report-plugin
mkdir -p target/classes/META-INF/maven/org.apache.maven.plugins/maven-surefire-report-plugin/
cp pom.xml target/classes/META-INF/maven/org.apache.maven.plugins/maven-surefire-report-plugin/
cat > target/classes/META-INF/maven/org.apache.maven.plugins/maven-surefire-report-plugin/pom.properties <<EOT
version=2.3
groupId=org.apache.maven.plugins
artifactId=maven-surefire-report-plugin
EOT
ant -Dbuild.sysclasspath=only jar
popd
%endif
%install
# jars
install -d -m 755 $RPM_BUILD_ROOT%{_javadir}/maven-surefire
install -d -m 755 $RPM_BUILD_ROOT%{_datadir}/maven2/plugins
install -d -m 755 $RPM_BUILD_ROOT%{_datadir}/maven2/poms
install -m 644 pom.xml \
$RPM_BUILD_ROOT%{_datadir}/maven2/poms/JPP.maven-surefire-surefire.pom
%add_to_maven_depmap org.apache.maven.surefire surefire %{version} JPP/maven-surefire surefire
install -m 644 surefire-api/target/surefire-api-%{version}.jar \
$RPM_BUILD_ROOT%{_javadir}/maven-surefire/api-%{version}.jar
%add_to_maven_depmap org.apache.maven.surefire surefire-api %{version} JPP/maven-surefire api
install -m 644 surefire-api/pom.xml \
$RPM_BUILD_ROOT%{_datadir}/maven2/poms/JPP.maven-surefire-api.pom
install -m 644 surefire-booter/target/surefire-booter-%{version}.jar \
$RPM_BUILD_ROOT%{_javadir}/maven-surefire/booter-%{version}.jar
%add_to_maven_depmap org.apache.maven.surefire surefire-booter %{version} JPP/maven-surefire booter
install -m 644 surefire-booter/pom.xml \
$RPM_BUILD_ROOT%{_datadir}/maven2/poms/JPP.maven-surefire-booter.pom
install -m 644 surefire-providers/pom.xml \
$RPM_BUILD_ROOT%{_datadir}/maven2/poms/JPP.maven-surefire-providers.pom
%add_to_maven_depmap org.apache.maven.surefire surefire-providers %{version} JPP/maven-surefire providers
install -m 644 surefire-providers/surefire-junit4/target/surefire-junit4-%{version}.jar \
$RPM_BUILD_ROOT%{_javadir}/maven-surefire/junit4-%{version}.jar
%add_to_maven_depmap org.apache.maven.surefire surefire-junit4 %{version} JPP/maven-surefire junit4
install -m 644 surefire-providers/surefire-junit4/pom.xml \
$RPM_BUILD_ROOT%{_datadir}/maven2/poms/JPP.maven-surefire-junit4.pom
install -m 644 surefire-providers/surefire-junit/target/surefire-junit-%{version}.jar \
$RPM_BUILD_ROOT%{_javadir}/maven-surefire/junit-%{version}.jar
%add_to_maven_depmap org.apache.maven.surefire surefire-junit %{version} JPP/maven-surefire junit
install -m 644 surefire-providers/surefire-junit/pom.xml \
$RPM_BUILD_ROOT%{_datadir}/maven2/poms/JPP.maven-surefire-junit.pom
install -m 644 surefire-providers/surefire-testng/target/surefire-testng-%{version}.jar \
$RPM_BUILD_ROOT%{_javadir}/maven-surefire/testng-%{version}.jar
%add_to_maven_depmap org.apache.maven.surefire surefire-testng %{version} JPP/maven-surefire testng
install -m 644 surefire-providers/surefire-testng/pom.xml \
$RPM_BUILD_ROOT%{_datadir}/maven2/poms/JPP.maven-surefire-testng.pom
install -m 644 maven-surefire-plugin/target/maven-surefire-plugin-%{version}.jar \
$RPM_BUILD_ROOT%{_datadir}/maven2/plugins/surefire-plugin-%{version}.jar
%add_to_maven_depmap org.apache.maven.plugins maven-surefire-plugin %{version} JPP/maven2/plugins surefire-plugin
install -m 644 maven-surefire-plugin/pom.xml \
$RPM_BUILD_ROOT%{_datadir}/maven2/poms/JPP.maven2.plugins-surefire-plugin.pom
install -m 644 maven-surefire-report-plugin/target/maven-surefire-report-plugin-%{version}.jar \
$RPM_BUILD_ROOT%{_datadir}/maven2/plugins/surefire-report-plugin-%{version}.jar
%add_to_maven_depmap org.apache.maven.plugins maven-surefire-report-plugin %{version} JPP/maven2/plugins surefire-report-plugin
install -m 644 maven-surefire-report-plugin/pom.xml \
$RPM_BUILD_ROOT%{_datadir}/maven2/poms/JPP.maven2.plugins-surefire-report-plugin.pom
(cd $RPM_BUILD_ROOT%{_javadir}/maven-surefire && for jar in *-%{version}*; do ln -sf ${jar} `echo $jar| sed "s|-%{version}||g"`; done)
(cd $RPM_BUILD_ROOT%{_javadir}/maven-surefire && ln -sf api.jar surefire.jar)
(cd $RPM_BUILD_ROOT%{_datadir}/maven2/plugins && for jar in *-%{version}*; do ln -sf ${jar} `echo $jar| sed "s|-%{version}||g"`; done)
# javadoc
install -d -m 755 $RPM_BUILD_ROOT%{_javadocdir}/%{name}-api-%{version}
cp -pr surefire-api/target/site/apidocs/* $RPM_BUILD_ROOT%{_javadocdir}/%{name}-api-%{version}
ln -s %{name}-api-%{version} $RPM_BUILD_ROOT%{_javadocdir}/%{name}-api
install -d -m 755 $RPM_BUILD_ROOT%{_javadocdir}/%{name}-booter-%{version}
cp -pr surefire-booter/target/site/apidocs/* $RPM_BUILD_ROOT%{_javadocdir}/%{name}-booter-%{version}
ln -s %{name}-booter-%{version} $RPM_BUILD_ROOT%{_javadocdir}/%{name}-booter
install -d -m 755 $RPM_BUILD_ROOT%{_javadocdir}/%{name}-junit4-%{version}
cp -pr surefire-providers/surefire-junit4/target/site/apidocs/* $RPM_BUILD_ROOT%{_javadocdir}/%{name}-junit4-%{version}
ln -s %{name}-junit4-%{version} $RPM_BUILD_ROOT%{_javadocdir}/%{name}-junit4
install -d -m 755 $RPM_BUILD_ROOT%{_javadocdir}/%{name}-junit-%{version}
cp -pr surefire-providers/surefire-junit/target/site/apidocs/* $RPM_BUILD_ROOT%{_javadocdir}/%{name}-junit-%{version}
ln -s %{name}-junit-%{version} $RPM_BUILD_ROOT%{_javadocdir}/%{name}-junit
install -d -m 755 $RPM_BUILD_ROOT%{_javadocdir}/%{name}-testng-%{version}
cp -pr surefire-providers/surefire-testng/target/site/apidocs/* $RPM_BUILD_ROOT%{_javadocdir}/%{name}-testng-%{version}
ln -s %{name}-testng-%{version} $RPM_BUILD_ROOT%{_javadocdir}/%{name}-testng
%files
%dir %{_javadir}/maven-surefire
%{_javadir}/maven-surefire/api*
%{_javadir}/maven-surefire/surefire.jar
%dir %{_datadir}/maven2
%dir %{_datadir}/maven2/poms
%{_datadir}/maven2/poms/*
%{_mavendepmapfragdir}/*
%files booter
%{_javadir}/maven-surefire/booter*
%files junit
%{_javadir}/maven-surefire/junit-%{version}.jar
%{_javadir}/maven-surefire/junit.jar
%files junit4
%{_javadir}/maven-surefire/junit4-%{version}.jar
%{_javadir}/maven-surefire/junit4.jar
%files testng
%{_javadir}/maven-surefire/testng*
%files plugin
%dir %{_datadir}/maven2/plugins
%{_datadir}/maven2/plugins/surefire-plugin*
%files report-plugin
%dir %{_datadir}/maven2/plugins
%{_datadir}/maven2/plugins/surefire-report-plugin*
%files javadoc
%{_javadocdir}/maven-surefire-api-%{version}
%{_javadocdir}/maven-surefire-api
%files booter-javadoc
%{_javadocdir}/maven-surefire-booter-%{version}
%{_javadocdir}/maven-surefire-booter
%files junit-javadoc
%{_javadocdir}/maven-surefire-junit-%{version}
%{_javadocdir}/maven-surefire-junit
%files junit4-javadoc
%{_javadocdir}/maven-surefire-junit4-%{version}
%{_javadocdir}/maven-surefire-junit4
%files testng-javadoc
%{_javadocdir}/maven-surefire-testng-%{version}
%{_javadocdir}/maven-surefire-testng
%changelog
…
Full changelog you can see here
BuildRequires: plexus-archiver
%define _without_maven 1
BuildRequires: /proc
BuildRequires: jpackage-compat
# Copyright (c) 2000-2008, JPackage Project
# All rights reserved.
#
# Redistribution and use in source and binary forms, with or without
# modification, are permitted provided that the following conditions
# are met:
#
# 1. Redistributions of source code must retain the above copyright
# notice, this list of conditions and the following disclaimer.
# 2. Redistributions in binary form must reproduce the above copyright
# notice, this list of conditions and the following disclaimer in the
# documentation and/or other materials provided with the
# distribution.
# 3. Neither the name of the JPackage Project nor the names of its
# contributors may be used to endorse or promote products derived
# from this software without specific prior written permission.
#
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
#
%define with() %{expand:%%{?with_%{1}:1}%%{!?with_%{1}:0}}
%define without() %{expand:%%{?with_%{1}:0}%%{!?with_%{1}:1}}
%define bcond_with() %{expand:%%{?_with_%{1}:%%global with_%{1} 1}}
%define bcond_without() %{expand:%%{!?_without_%{1}:%%global with_%{1} 1}}
%bcond_without maven
Name: maven-surefire
Version: 2.3.1
Release: alt2_3jpp5
Epoch: 0
Summary: Surefire is a test framework project.
License: ASL 2.0
Group: Development/Java
URL: http://maven.apache.org/surefire/
# svn export http://svn.apache.org/repos/asf/maven/surefire/tags/surefire-2.3.1/ maven-surefire-2.3.1
Source0: %{name}-%{version}.tar.gz
Source1: %{name}-settings.xml
Source2: %{name}-jpp-depmap.xml
Source3: %{name}-2.3.1-build.tar.gz
Patch0: maven-surefire-2.3-Commandline.patch
Patch1: maven-surefire-2.3-CommandShell.patch
Patch2: maven-surefire-2.3-CmdShell.patch
Patch3: maven-surefire-2.3-junit4-pom.patch
Patch4: maven-surefire-2.3-testng-TestNGXmlTestSuite.patch
Patch5: maven-surefire-2.3-testng-TestNGDirectoryTestSuite.patch
Requires(post): jpackage-utils >= 0:1.7.5
Requires(postun): jpackage-utils >= 0:1.7.5
Requires: classworlds
Requires: plexus-utils
Requires: junit4
BuildRequires: jpackage-utils >= 0:1.7.5
BuildRequires: ant >= 0:1.6.5
BuildRequires: ant-junit
BuildRequires: junit >= 3.8.2
BuildRequires: junit4
BuildRequires: maven2
BuildRequires: maven-doxia
BuildRequires: maven-shared-reporting-impl
BuildRequires: plexus-utils
BuildRequires: testng
%if %with maven
BuildRequires: maven2 >= 0:2.0.7
BuildRequires: maven2-plugin-ant
BuildRequires: maven2-plugin-compiler
BuildRequires: maven2-plugin-install
BuildRequires: maven2-plugin-jar
BuildRequires: maven2-plugin-javadoc
BuildRequires: maven2-plugin-plugin
BuildRequires: maven2-plugin-resources
BuildRequires: maven2-plugin-site
BuildRequires: maven-surefire-plugin
BuildRequires: maven-shared-plugin-testing-harness
%endif
BuildArch: noarch
Patch33: maven-surefire-2.3.1-alt-null-project.patch
%description
Surefire is a test framework project.
%package booter
Summary: Booter for %{name}
Group: Development/Java
Requires: %{name} = %{epoch}:%{version}-%{release}
Requires: plexus-archiver
Requires: plexus-containers-component-api
Requires: plexus-utils
%description booter
%{summary}.
%package junit
Summary: JUnit3 Runner for %{name}
Group: Development/Java
Requires: %{name} = %{epoch}:%{version}-%{release}
Requires: junit
%description junit
%{summary}.
%package junit4
Summary: JUnit4 Runner for %{name}
Group: Development/Java
Requires: %{name} = %{epoch}:%{version}-%{release}
Requires: junit4
%description junit4
%{summary}.
%package testng
Summary: TestNG Runner for %{name}
Group: Development/Java
Requires: %{name} = %{epoch}:%{version}-%{release}
Requires: plexus-utils
Requires: testng
%description testng
%{summary}.
%package plugin
Summary: Maven2 Plugin for %{name}
Group: Development/Java
Requires: %{name} = %{epoch}:%{version}-%{release}
Requires: %{name}-booter = %{epoch}:%{version}-%{release}
Requires: %{name}-junit = %{epoch}:%{version}-%{release}
Requires: %{name}-junit4 = %{epoch}:%{version}-%{release}
Requires: %{name}-testng = %{epoch}:%{version}-%{release}
Requires: maven2
Requires: plexus-utils
Obsoletes: maven2-plugin-surefire < 0:2.0.7
Provides: maven2-plugin-surefire = %{epoch}:%{version}-%{release}
%description plugin
%{summary}.
%package report-plugin
Summary: Maven2 Report Plugin for %{name}
Group: Development/Java
Requires: %{name} = %{epoch}:%{version}-%{release}
Requires: %{name}-booter = %{epoch}:%{version}-%{release}
Requires: maven2
Requires: maven-doxia
Requires: plexus-utils
Obsoletes: maven2-plugin-surefire-report < 0:2.0.7
Provides: maven2-plugin-surefire-report = %{epoch}:%{version}-%{release}
%description report-plugin
%{summary}.
%package javadoc
Summary: Javadoc for %{name} API
Group: Development/Documentation
%description javadoc
%{summary}.
%package booter-javadoc
Summary: Javadoc for %{name} Booter
Group: Development/Documentation
%description booter-javadoc
%{summary}.
%package junit-javadoc
Summary: Javadoc for %{name} JUnit3 Runner
Group: Development/Documentation
%description junit-javadoc
%{summary}.
%package junit4-javadoc
Summary: Javadoc for %{name} JUnit4 Runner
Group: Development/Documentation
%description junit4-javadoc
%{summary}.
%package testng-javadoc
Summary: Javadoc for %{name} TestNG Runner
Group: Development/Documentation
%description testng-javadoc
%{summary}.
%prep
%setup -q
%if %without maven
%setup -q -T -D -a 3
%endif
cp -p %{SOURCE1} settings.xml
sed -i -e "s|<url>__JPP_URL_PLACEHOLDER__</url>|<url>file://`pwd`/.m2/repository</url>|g" settings.xml
sed -i -e "s|<url>__JAVADIR_PLACEHOLDER__</url>|<url>file://`pwd`/external_repo</url>|g" settings.xml
sed -i -e "s|<url>__MAVENREPO_DIR_PLACEHOLDER__</url>|<url>file://`pwd`/.m2/repository</url>|g" settings.xml
sed -i -e "s|<url>__MAVENDIR_PLUGIN_PLACEHOLDER__</url>|<url>file:///usr/share/maven2/plugins</url>|g" settings.xml
sed -i -e "s|<url>__ECLIPSEDIR_PLUGIN_PLACEHOLDER__</url>|<url>file:///usr/share/eclipse/plugins</url>|g" settings.xml
sed -i -e s:"private static void failSame(":"public static void failSame(":g \
surefire-api/src/main/java/org/apache/maven/surefire/assertion/SurefireAssert.java
sed -i -e s:"private static void failNotSame(":"public static void failNotSame(":g \
surefire-api/src/main/java/org/apache/maven/surefire/assertion/SurefireAssert.java
sed -i -e s:"private static void failNotEquals(":"public static void failNotEquals(":g \
surefire-api/src/main/java/org/apache/maven/surefire/assertion/SurefireAssert.java
%patch0 -b .sav0
%patch1 -b .sav1
%patch2 -b .sav2
%patch3 -b .sav3
%patch4 -b .sav4
%patch5 -b .sav5
for i in \
maven-surefire-report-plugin/src/main/java/org/apache/maven/plugins/surefire/report/SurefireReportGenerator.java \
maven-surefire-report-plugin/src/main/java/org/apache/maven/plugins/surefire/report/SurefireReportMojo.java; do
sed -i -e s:org.codehaus.doxia.sink.Sink:org.apache.maven.doxia.sink.Sink:g $i
sed -i -e s:org.codehaus.doxia.site.renderer.SiteRenderer:org.apache.maven.doxia.siterenderer.Renderer:g $i
sed -i -r -e s:\(\\s+\)SiteRenderer\(\\s+\):\\1Renderer\\2:g $i
done
%patch33 -p1
%build
%if %with maven
export MAVEN_REPO_LOCAL=$(pwd)/.m2/repository
mkdir -p $MAVEN_REPO_LOCAL
rm -rf surefire-api/src/test
rm -rf surefire-booter/src/test
rm -rf maven-surefire-report-plugin/src/test
mvn-jpp \
-e \
-s settings.xml \
-Dmaven.test.failure.ignore=true \
-Dmaven.repo.local=$MAVEN_REPO_LOCAL \
-Dmaven2.jpp.depmap.file=%{SOURCE2} \
ant:ant install javadoc:javadoc
%else
export CLASSPATH=$(build-classpath \
commons-lang \
plexus/utils \
)
CLASSPATH=$CLASSPATH:target/classes:target/test-classes
pushd surefire-api
ant -Dbuild.sysclasspath=only jar javadoc
popd
export CLASSPATH=$(build-classpath \
plexus/archiver \
plexus/containers-component-api \
plexus/utils \
)
CLASSPATH=$CLASSPATH:$(pwd)/surefire-api/target/surefire-api-%{version}.jar
CLASSPATH=$CLASSPATH:target/classes:target/test-classes
pushd surefire-booter
ant -Dbuild.sysclasspath=only jar javadoc
popd
export CLASSPATH=$(build-classpath \
junit \
)
CLASSPATH=$CLASSPATH:$(pwd)/surefire-api/target/surefire-api-%{version}.jar
CLASSPATH=$CLASSPATH:target/classes:target/test-classes
pushd surefire-providers/surefire-junit
ant -Dbuild.sysclasspath=only jar javadoc
popd
export CLASSPATH=$(build-classpath \
junit4 \
)
CLASSPATH=$CLASSPATH:$(pwd)/surefire-api/target/surefire-api-%{version}.jar
CLASSPATH=$CLASSPATH:target/classes:target/test-classes
pushd surefire-providers/surefire-junit4
ant -Dbuild.sysclasspath=only jar javadoc
popd
export CLASSPATH=$(build-classpath \
plexus/utils \
testng-jdk15 \
)
CLASSPATH=$CLASSPATH:$(pwd)/surefire-api/target/surefire-api-%{version}.jar
CLASSPATH=$CLASSPATH:target/classes:target/test-classes
pushd surefire-providers/surefire-testng
ant -Dbuild.sysclasspath=only jar javadoc
popd
export CLASSPATH=$(build-classpath \
maven2/artifact \
maven2/model \
maven2/plugin-api \
maven2/project \
plexus/utils \
)
CLASSPATH=$CLASSPATH:$(pwd)/surefire-api/target/surefire-api-%{version}.jar
CLASSPATH=$CLASSPATH:$(pwd)/surefire-booter/target/surefire-booter-%{version}.jar
CLASSPATH=$CLASSPATH:target/classes:target/test-classes
pushd maven-surefire-plugin
mkdir -p target/classes/META-INF/maven/org.apache.maven.plugins/maven-surefire-plugin/
cp pom.xml target/classes/META-INF/maven/org.apache.maven.plugins/maven-surefire-plugin/
cat > target/classes/META-INF/maven/org.apache.maven.plugins/maven-surefire-plugin/pom.properties <<EOT
version=2.3
groupId=org.apache.maven.plugins
artifactId=maven-surefire-plugin
EOT
ant -Dbuild.sysclasspath=only jar
popd
export CLASSPATH=$(build-classpath \
maven2/artifact \
maven2/model \
maven2/plugin-api \
maven2/project \
maven2/reporting-api \
maven-doxia/sink \
maven-doxia/site-renderer \
maven-shared/reporting-impl \
plexus/utils \
)
CLASSPATH=$CLASSPATH:$(pwd)/surefire-api/target/surefire-api-%{version}.jar
CLASSPATH=$CLASSPATH:$(pwd)/surefire-booter/target/surefire-booter-%{version}.jar
CLASSPATH=$CLASSPATH:target/classes:target/test-classes
pushd maven-surefire-report-plugin
mkdir -p target/classes/META-INF/maven/org.apache.maven.plugins/maven-surefire-report-plugin/
cp pom.xml target/classes/META-INF/maven/org.apache.maven.plugins/maven-surefire-report-plugin/
cat > target/classes/META-INF/maven/org.apache.maven.plugins/maven-surefire-report-plugin/pom.properties <<EOT
version=2.3
groupId=org.apache.maven.plugins
artifactId=maven-surefire-report-plugin
EOT
ant -Dbuild.sysclasspath=only jar
popd
%endif
%install
# jars
install -d -m 755 $RPM_BUILD_ROOT%{_javadir}/maven-surefire
install -d -m 755 $RPM_BUILD_ROOT%{_datadir}/maven2/plugins
install -d -m 755 $RPM_BUILD_ROOT%{_datadir}/maven2/poms
install -m 644 pom.xml \
$RPM_BUILD_ROOT%{_datadir}/maven2/poms/JPP.maven-surefire-surefire.pom
%add_to_maven_depmap org.apache.maven.surefire surefire %{version} JPP/maven-surefire surefire
install -m 644 surefire-api/target/surefire-api-%{version}.jar \
$RPM_BUILD_ROOT%{_javadir}/maven-surefire/api-%{version}.jar
%add_to_maven_depmap org.apache.maven.surefire surefire-api %{version} JPP/maven-surefire api
install -m 644 surefire-api/pom.xml \
$RPM_BUILD_ROOT%{_datadir}/maven2/poms/JPP.maven-surefire-api.pom
install -m 644 surefire-booter/target/surefire-booter-%{version}.jar \
$RPM_BUILD_ROOT%{_javadir}/maven-surefire/booter-%{version}.jar
%add_to_maven_depmap org.apache.maven.surefire surefire-booter %{version} JPP/maven-surefire booter
install -m 644 surefire-booter/pom.xml \
$RPM_BUILD_ROOT%{_datadir}/maven2/poms/JPP.maven-surefire-booter.pom
install -m 644 surefire-providers/pom.xml \
$RPM_BUILD_ROOT%{_datadir}/maven2/poms/JPP.maven-surefire-providers.pom
%add_to_maven_depmap org.apache.maven.surefire surefire-providers %{version} JPP/maven-surefire providers
install -m 644 surefire-providers/surefire-junit4/target/surefire-junit4-%{version}.jar \
$RPM_BUILD_ROOT%{_javadir}/maven-surefire/junit4-%{version}.jar
%add_to_maven_depmap org.apache.maven.surefire surefire-junit4 %{version} JPP/maven-surefire junit4
install -m 644 surefire-providers/surefire-junit4/pom.xml \
$RPM_BUILD_ROOT%{_datadir}/maven2/poms/JPP.maven-surefire-junit4.pom
install -m 644 surefire-providers/surefire-junit/target/surefire-junit-%{version}.jar \
$RPM_BUILD_ROOT%{_javadir}/maven-surefire/junit-%{version}.jar
%add_to_maven_depmap org.apache.maven.surefire surefire-junit %{version} JPP/maven-surefire junit
install -m 644 surefire-providers/surefire-junit/pom.xml \
$RPM_BUILD_ROOT%{_datadir}/maven2/poms/JPP.maven-surefire-junit.pom
install -m 644 surefire-providers/surefire-testng/target/surefire-testng-%{version}.jar \
$RPM_BUILD_ROOT%{_javadir}/maven-surefire/testng-%{version}.jar
%add_to_maven_depmap org.apache.maven.surefire surefire-testng %{version} JPP/maven-surefire testng
install -m 644 surefire-providers/surefire-testng/pom.xml \
$RPM_BUILD_ROOT%{_datadir}/maven2/poms/JPP.maven-surefire-testng.pom
install -m 644 maven-surefire-plugin/target/maven-surefire-plugin-%{version}.jar \
$RPM_BUILD_ROOT%{_datadir}/maven2/plugins/surefire-plugin-%{version}.jar
%add_to_maven_depmap org.apache.maven.plugins maven-surefire-plugin %{version} JPP/maven2/plugins surefire-plugin
install -m 644 maven-surefire-plugin/pom.xml \
$RPM_BUILD_ROOT%{_datadir}/maven2/poms/JPP.maven2.plugins-surefire-plugin.pom
install -m 644 maven-surefire-report-plugin/target/maven-surefire-report-plugin-%{version}.jar \
$RPM_BUILD_ROOT%{_datadir}/maven2/plugins/surefire-report-plugin-%{version}.jar
%add_to_maven_depmap org.apache.maven.plugins maven-surefire-report-plugin %{version} JPP/maven2/plugins surefire-report-plugin
install -m 644 maven-surefire-report-plugin/pom.xml \
$RPM_BUILD_ROOT%{_datadir}/maven2/poms/JPP.maven2.plugins-surefire-report-plugin.pom
(cd $RPM_BUILD_ROOT%{_javadir}/maven-surefire && for jar in *-%{version}*; do ln -sf ${jar} `echo $jar| sed "s|-%{version}||g"`; done)
(cd $RPM_BUILD_ROOT%{_javadir}/maven-surefire && ln -sf api.jar surefire.jar)
(cd $RPM_BUILD_ROOT%{_datadir}/maven2/plugins && for jar in *-%{version}*; do ln -sf ${jar} `echo $jar| sed "s|-%{version}||g"`; done)
# javadoc
install -d -m 755 $RPM_BUILD_ROOT%{_javadocdir}/%{name}-api-%{version}
cp -pr surefire-api/target/site/apidocs/* $RPM_BUILD_ROOT%{_javadocdir}/%{name}-api-%{version}
ln -s %{name}-api-%{version} $RPM_BUILD_ROOT%{_javadocdir}/%{name}-api
install -d -m 755 $RPM_BUILD_ROOT%{_javadocdir}/%{name}-booter-%{version}
cp -pr surefire-booter/target/site/apidocs/* $RPM_BUILD_ROOT%{_javadocdir}/%{name}-booter-%{version}
ln -s %{name}-booter-%{version} $RPM_BUILD_ROOT%{_javadocdir}/%{name}-booter
install -d -m 755 $RPM_BUILD_ROOT%{_javadocdir}/%{name}-junit4-%{version}
cp -pr surefire-providers/surefire-junit4/target/site/apidocs/* $RPM_BUILD_ROOT%{_javadocdir}/%{name}-junit4-%{version}
ln -s %{name}-junit4-%{version} $RPM_BUILD_ROOT%{_javadocdir}/%{name}-junit4
install -d -m 755 $RPM_BUILD_ROOT%{_javadocdir}/%{name}-junit-%{version}
cp -pr surefire-providers/surefire-junit/target/site/apidocs/* $RPM_BUILD_ROOT%{_javadocdir}/%{name}-junit-%{version}
ln -s %{name}-junit-%{version} $RPM_BUILD_ROOT%{_javadocdir}/%{name}-junit
install -d -m 755 $RPM_BUILD_ROOT%{_javadocdir}/%{name}-testng-%{version}
cp -pr surefire-providers/surefire-testng/target/site/apidocs/* $RPM_BUILD_ROOT%{_javadocdir}/%{name}-testng-%{version}
ln -s %{name}-testng-%{version} $RPM_BUILD_ROOT%{_javadocdir}/%{name}-testng
%files
%dir %{_javadir}/maven-surefire
%{_javadir}/maven-surefire/api*
%{_javadir}/maven-surefire/surefire.jar
%dir %{_datadir}/maven2
%dir %{_datadir}/maven2/poms
%{_datadir}/maven2/poms/*
%{_mavendepmapfragdir}/*
%files booter
%{_javadir}/maven-surefire/booter*
%files junit
%{_javadir}/maven-surefire/junit-%{version}.jar
%{_javadir}/maven-surefire/junit.jar
%files junit4
%{_javadir}/maven-surefire/junit4-%{version}.jar
%{_javadir}/maven-surefire/junit4.jar
%files testng
%{_javadir}/maven-surefire/testng*
%files plugin
%dir %{_datadir}/maven2/plugins
%{_datadir}/maven2/plugins/surefire-plugin*
%files report-plugin
%dir %{_datadir}/maven2/plugins
%{_datadir}/maven2/plugins/surefire-report-plugin*
%files javadoc
%{_javadocdir}/maven-surefire-api-%{version}
%{_javadocdir}/maven-surefire-api
%files booter-javadoc
%{_javadocdir}/maven-surefire-booter-%{version}
%{_javadocdir}/maven-surefire-booter
%files junit-javadoc
%{_javadocdir}/maven-surefire-junit-%{version}
%{_javadocdir}/maven-surefire-junit
%files junit4-javadoc
%{_javadocdir}/maven-surefire-junit4-%{version}
%{_javadocdir}/maven-surefire-junit4
%files testng-javadoc
%{_javadocdir}/maven-surefire-testng-%{version}
%{_javadocdir}/maven-surefire-testng
%changelog
…
Full changelog you can see here