commit 416b07468268dfcc31b26add86b05c4171f63c89
Author: Roland Grunberg <rgrunber(a)redhat.com>
Date: Tue May 29 15:04:45 2012 -0400
Fix Surfire test plugin.
When running an Eclipse bundle's tests, Tycho Surefire resolves its
runtime dependencies using a class loader, which is in fact just looking
through Bundle-ClassPath. As a result, it must copy over and include
system jars in its Bundle-ClassPath. We use Fedora system jars to
satisfy these dependencies but even these jars differ slightly in terms
of provided classes.
tycho-bootstrap.patch | 2 +-
tycho-fix-build.patch | 10 ---
tycho-fix-surefire.patch | 160 ++++++++++++++++++++++++++++++++++++++++++++
tycho-maven-surefire.patch | 30 ++++++--
tycho.spec | 21 ++++--
5 files changed, 196 insertions(+), 27 deletions(-)
---
diff --git a/tycho-bootstrap.patch b/tycho-bootstrap.patch
index 51482cb..0592128 100644
--- a/tycho-bootstrap.patch
+++ b/tycho-bootstrap.patch
@@ -670,8 +670,8 @@ diff -rauN
tycho-0.14.x.old/tycho-surefire/org.eclipse.tycho.surefire.osgibooter
---
tycho-0.14.x.old/tycho-surefire/org.eclipse.tycho.surefire.osgibooter/META-INF/MANIFEST.MF 2012-02-24
06:40:15.000000000 -0500
+++
tycho-0.14.x/tycho-surefire/org.eclipse.tycho.surefire.osgibooter/META-INF/MANIFEST.MF 2012-03-30
14:49:39.000000000 -0400
@@ -7,7 +7,7 @@
- jars/surefire-booter-2.10.jar,
jars/surefire-api-2.10.jar,
+ jars/plexus-utils-3.0.jar,
jars/maven-surefire-common-2.10.jar
-Bundle-Version: 0.14.1
+Bundle-Version: 0.14.1.qualifier
diff --git a/tycho-fix-build.patch b/tycho-fix-build.patch
index f78242c..3265ec3 100644
--- a/tycho-fix-build.patch
+++ b/tycho-fix-build.patch
@@ -97,16 +97,6 @@
} catch (BundleException e) {
throw new OsgiManifestParserException(location, e);
}
----
./tycho-0.14.0.old/tycho-surefire/org.eclipse.tycho.surefire.junit/META-INF/MANIFEST.MF 2012-02-06
10:26:59.000000000 -0500
-+++
./tycho-0.14.0/tycho-surefire/org.eclipse.tycho.surefire.junit/META-INF/MANIFEST.MF 2012-02-14
12:04:02.275017810 -0500
-@@ -6,6 +6,6 @@
- Fragment-Host: org.eclipse.tycho.surefire.osgibooter;bundle-version="0.14.0"
- Bundle-RequiredExecutionEnvironment: J2SE-1.5,
- JavaSE-1.6
--Require-Bundle: org.junit;bundle-version="[3.8.0,4.0.0)"
-+Require-Bundle: org.junit;bundle-version="[3.8.0,4.9.0)"
- Bundle-ClassPath: jars/surefire-junit3-2.10.jar
- Bundle-Vendor: %providerName
---
./tycho-0.14.x.old/tycho-core/src/main/java/org/eclipse/tycho/core/utils/EEVersion.java 2012-02-24
06:40:15.000000000 -0500
+++
./tycho-0.14.x/tycho-core/src/main/java/org/eclipse/tycho/core/utils/EEVersion.java 2012-05-03
14:09:09.000000000 -0400
@@ -18,7 +18,7 @@
diff --git a/tycho-fix-surefire.patch b/tycho-fix-surefire.patch
new file mode 100644
index 0000000..2419e2d
--- /dev/null
+++ b/tycho-fix-surefire.patch
@@ -0,0 +1,160 @@
+From 5ddb88911071664de0e07f7f247aeeaedecc8cab Mon Sep 17 00:00:00 2001
+From: Roland Grunberg <rgrunber(a)redhat.com>
+Date: Tue, 29 May 2012 14:27:27 -0400
+Subject: [PATCH] Resolve all necessary dependencies for Tycho Surefire.
+
+When running an Eclipse bundle's tests, Tycho Surefire resolves its
+runtime dependencies using a class loader, which is in fact just looking
+through Bundle-ClassPath. As a result, it must copy over and include
+system jars in its Bundle-ClassPath. We use Fedora system jars to
+satisfy these dependencies but even these jars differ slightly in terms
+of provided classes. This patch addresses this issue.
+
+Basically, the jars added to the Bundle-ClassPath in this patch, provide
+the additional classes that are in the original jars used upstream.
+---
+ pom.xml | 2 +-
+ .../META-INF/MANIFEST.MF | 5 +++--
+ .../build.properties | 2 +-
+ .../org.eclipse.tycho.surefire.junit/pom.xml | 5 +++++
+ .../META-INF/MANIFEST.MF | 4 +++-
+ .../build.properties | 2 +-
+ .../org.eclipse.tycho.surefire.junit4/pom.xml | 10 ++++++++++
+ .../META-INF/MANIFEST.MF | 3 ++-
+ .../org.eclipse.tycho.surefire.osgibooter/pom.xml | 5 +++++
+ 9 files changed, 31 insertions(+), 7 deletions(-)
+
+diff --git a/pom.xml b/pom.xml
+index e9d8624..ca20999 100644
+--- a/pom.xml
++++ b/pom.xml
+@@ -79,7 +79,7 @@
+ <junitVersion>3.8.2</junitVersion>
+ <plexusVersion>1.5.5</plexusVersion>
+ <plexusInterpolationVersion>1.14</plexusInterpolationVersion>
+- <plexusUtilsVersion>2.0.4</plexusUtilsVersion>
++ <plexusUtilsVersion>3.0</plexusUtilsVersion>
+ <sisuInjectVersion>1.4.2</sisuInjectVersion>
+ <wagonVersion>1.0-beta-6</wagonVersion>
+ <securityDispatcherVersion>1.3</securityDispatcherVersion>
+diff --git a/tycho-surefire/org.eclipse.tycho.surefire.junit/META-INF/MANIFEST.MF
b/tycho-surefire/org.eclipse.tycho.surefire.junit/META-INF/MANIFEST.MF
+index 9264109..a27abe4 100644
+--- a/tycho-surefire/org.eclipse.tycho.surefire.junit/META-INF/MANIFEST.MF
++++ b/tycho-surefire/org.eclipse.tycho.surefire.junit/META-INF/MANIFEST.MF
+@@ -6,6 +6,7 @@ Bundle-Version: 0.14.1
+ Fragment-Host: org.eclipse.tycho.surefire.osgibooter;bundle-version="0.14.0"
+ Bundle-RequiredExecutionEnvironment: J2SE-1.5,
+ JavaSE-1.6
+-Require-Bundle: org.junit;bundle-version="[3.8.0,4.0.0)"
+-Bundle-ClassPath: jars/surefire-junit3-2.10.jar
++Require-Bundle: org.junit;bundle-version="[3.8.0,4.9.0)"
++Bundle-ClassPath: jars/surefire-junit3-2.10.jar,
++ jars/common-junit3-2.10.jar
+ Bundle-Vendor: %providerName
+diff --git a/tycho-surefire/org.eclipse.tycho.surefire.junit/build.properties
b/tycho-surefire/org.eclipse.tycho.surefire.junit/build.properties
+index 499ce76..fe88b19 100644
+--- a/tycho-surefire/org.eclipse.tycho.surefire.junit/build.properties
++++ b/tycho-surefire/org.eclipse.tycho.surefire.junit/build.properties
+@@ -9,5 +9,5 @@
+ # Sonatype Inc. - initial API and implementation
+ ###############################################################################
+ bin.includes = META-INF/,\
+- jars/surefire-junit3-2.10.jar,\
++ jars/,\
+ plugin.properties
+diff --git a/tycho-surefire/org.eclipse.tycho.surefire.junit/pom.xml
b/tycho-surefire/org.eclipse.tycho.surefire.junit/pom.xml
+index 2a4afc8..ae35035 100644
+--- a/tycho-surefire/org.eclipse.tycho.surefire.junit/pom.xml
++++ b/tycho-surefire/org.eclipse.tycho.surefire.junit/pom.xml
+@@ -47,6 +47,11 @@
+ <artifactId>surefire-junit3</artifactId>
+ <version>${surefire-version}</version>
+ </artifactItem>
++ <artifactItem>
++ <groupId>org.apache.maven.surefire</groupId>
++ <artifactId>common-junit3</artifactId>
++ <version>${surefire-version}</version>
++ </artifactItem>
+ </artifactItems>
+ </configuration>
+ </execution>
+diff --git a/tycho-surefire/org.eclipse.tycho.surefire.junit4/META-INF/MANIFEST.MF
b/tycho-surefire/org.eclipse.tycho.surefire.junit4/META-INF/MANIFEST.MF
+index bbb54a8..82e66d1 100644
+--- a/tycho-surefire/org.eclipse.tycho.surefire.junit4/META-INF/MANIFEST.MF
++++ b/tycho-surefire/org.eclipse.tycho.surefire.junit4/META-INF/MANIFEST.MF
+@@ -6,7 +6,9 @@ Bundle-Version: 0.14.1
+ Fragment-Host: org.eclipse.tycho.surefire.osgibooter;bundle-version="0.14.0"
+ Bundle-RequiredExecutionEnvironment: J2SE-1.5,
+ JavaSE-1.6
+-Bundle-ClassPath: jars/surefire-junit4-2.10.jar
++Bundle-ClassPath: jars/surefire-junit4-2.10.jar,
++ jars/common-junit3-2.10.jar,
++ jars/common-junit4-2.10.jar
+ Import-Package: junit.framework;version="4.0.0",
+ org.junit;version="4.0.0",
+ org.junit.runner;version="4.0.0",
+diff --git a/tycho-surefire/org.eclipse.tycho.surefire.junit4/build.properties
b/tycho-surefire/org.eclipse.tycho.surefire.junit4/build.properties
+index b787149..fe88b19 100644
+--- a/tycho-surefire/org.eclipse.tycho.surefire.junit4/build.properties
++++ b/tycho-surefire/org.eclipse.tycho.surefire.junit4/build.properties
+@@ -9,5 +9,5 @@
+ # Sonatype Inc. - initial API and implementation
+ ###############################################################################
+ bin.includes = META-INF/,\
+- jars/surefire-junit4-2.10.jar,\
++ jars/,\
+ plugin.properties
+diff --git a/tycho-surefire/org.eclipse.tycho.surefire.junit4/pom.xml
b/tycho-surefire/org.eclipse.tycho.surefire.junit4/pom.xml
+index 08ab16a..2ed7c3a 100644
+--- a/tycho-surefire/org.eclipse.tycho.surefire.junit4/pom.xml
++++ b/tycho-surefire/org.eclipse.tycho.surefire.junit4/pom.xml
+@@ -71,6 +71,16 @@
+ <artifactId>surefire-junit4</artifactId>
+ <version>${surefire-version}</version>
+ </artifactItem>
++ <artifactItem>
++ <groupId>org.apache.maven.surefire</groupId>
++ <artifactId>common-junit3</artifactId>
++ <version>${surefire-version}</version>
++ </artifactItem>
++ <artifactItem>
++ <groupId>org.apache.maven.surefire</groupId>
++ <artifactId>common-junit4</artifactId>
++ <version>${surefire-version}</version>
++ </artifactItem>
+ </artifactItems>
+ </configuration>
+ </execution>
+diff --git a/tycho-surefire/org.eclipse.tycho.surefire.osgibooter/META-INF/MANIFEST.MF
b/tycho-surefire/org.eclipse.tycho.surefire.osgibooter/META-INF/MANIFEST.MF
+index fda57c6..ab5de08 100644
+--- a/tycho-surefire/org.eclipse.tycho.surefire.osgibooter/META-INF/MANIFEST.MF
++++ b/tycho-surefire/org.eclipse.tycho.surefire.osgibooter/META-INF/MANIFEST.MF
+@@ -5,7 +5,8 @@ Require-Bundle: org.eclipse.osgi;bundle-version="3.2.2",
+ Eclipse-AutoStart: true
+ Bundle-ClassPath: .,
+ jars/surefire-booter-2.10.jar,
+- jars/surefire-api-2.10.jar
++ jars/surefire-api-2.10.jar,
++ jars/plexus-utils-3.0.jar
+ Bundle-Version: 0.14.1
+ Bundle-Name: Tycho Surefire OSGi Booter Eclipse Application (Incubation)
+ Bundle-ManifestVersion: 2
+diff --git a/tycho-surefire/org.eclipse.tycho.surefire.osgibooter/pom.xml
b/tycho-surefire/org.eclipse.tycho.surefire.osgibooter/pom.xml
+index cd5b2d7..d1d24da 100644
+--- a/tycho-surefire/org.eclipse.tycho.surefire.osgibooter/pom.xml
++++ b/tycho-surefire/org.eclipse.tycho.surefire.osgibooter/pom.xml
+@@ -52,6 +52,11 @@
+ <artifactId>surefire-booter</artifactId>
+ <version>${surefire-version}</version>
+ </artifactItem>
++ <artifactItem>
++ <groupId>org.codehaus.plexus</groupId>
++ <artifactId>plexus-utils</artifactId>
++ <version>${plexusUtilsVersion}</version>
++ </artifactItem>
+ </artifactItems>
+ </configuration>
+ </execution>
+--
+1.7.7.6
+
diff --git a/tycho-maven-surefire.patch b/tycho-maven-surefire.patch
index bf808cf..e321083 100644
--- a/tycho-maven-surefire.patch
+++ b/tycho-maven-surefire.patch
@@ -11,12 +11,12 @@
throw new MojoFailureException(message);
---
./tycho-0.14.x.old/tycho-surefire/org.eclipse.tycho.surefire.osgibooter/META-INF/MANIFEST.MF 2012-02-24
06:40:15.000000000 -0500
+++
./tycho-0.14.x/tycho-surefire/org.eclipse.tycho.surefire.osgibooter/META-INF/MANIFEST.MF 2012-03-09
14:53:53.000000000 -0500
-@@ -5,7 +5,8 @@
- Eclipse-AutoStart: true
+@@ -6,7 +6,8 @@
Bundle-ClassPath: .,
jars/surefire-booter-2.10.jar,
-- jars/surefire-api-2.10.jar
-+ jars/surefire-api-2.10.jar,
+ jars/surefire-api-2.10.jar,
+- jars/plexus-utils-3.0.jar
++ jars/plexus-utils-3.0.jar,
+ jars/maven-surefire-common-2.10.jar
Bundle-Version: 0.14.1
Bundle-Name: Tycho Surefire OSGi Booter Eclipse Application (Incubation)
@@ -70,10 +70,10 @@
RunResult result = surefireStarter.runSuitesInProcess();
---
./tycho-0.14.x.old/tycho-surefire/org.eclipse.tycho.surefire.osgibooter/pom.xml 2012-02-24
06:40:15.000000000 -0500
+++
./tycho-0.14.x/tycho-surefire/org.eclipse.tycho.surefire.osgibooter/pom.xml 2012-03-09
14:45:54.987999986 -0500
-@@ -51,6 +51,13 @@
- <groupId>org.apache.maven.surefire</groupId>
- <artifactId>surefire-booter</artifactId>
- <version>${surefire-version}</version>
+@@ -56,6 +56,13 @@
+ <groupId>org.codehaus.plexus</groupId>
+ <artifactId>plexus-utils</artifactId>
+ <version>${plexusUtilsVersion}</version>
+
+ </artifactItem>
+ <artifactItem>
@@ -84,3 +84,17 @@
</artifactItem>
</artifactItems>
</configuration>
+---
./tycho-0.14.x.old/tycho-surefire/org.eclipse.tycho.surefire.osgibooter/src/main/java/org/eclipse/tycho/surefire/osgibooter/TychoClasspathConfiguration.java 2012-02-24
06:40:15.000000000 -0500
++++
./tycho-0.14.x/tycho-surefire/org.eclipse.tycho.surefire.osgibooter/src/main/java/org/eclipse/tycho/surefire/osgibooter/TychoClasspathConfiguration.java 2012-05-29
16:45:39.000000000 -0400
+@@ -30,6 +30,11 @@
+ }
+
+ @Override
++ public ClassLoader createInprocSurefireClassLoader(ClassLoader parent) throws
SurefireExecutionException {
++ return surefireClassLoader;
++ }
++
++ @Override
+ public ClassLoader createTestClassLoader() throws SurefireExecutionException {
+ return testClassLoader;
+ }
diff --git a/tycho.spec b/tycho.spec
index e7faeb9..df3181c 100644
--- a/tycho.spec
+++ b/tycho.spec
@@ -1,4 +1,4 @@
-%global bootstrap 0
+%global bootstrap 1
%if %{bootstrap}
%global snap -SNAPSHOT
@@ -8,7 +8,7 @@
Name: tycho
Version: 0.14.1
-Release: 4%{?dist}
+Release: 4.1%{?dist}
Summary: Plugins and extensions for building Eclipse plugins and OSGI bundles with
Maven
Group: Development/Libraries
@@ -26,14 +26,15 @@ Source1: EmptyMojo.java
Source2: depmap.xml
Patch0: %{name}-fix-build.patch
+Patch1: %{name}-fix-surefire.patch
# Upstream builds against maven-surefire 2.10 but in rawhide we have 2.12
-Patch1: %{name}-maven-surefire.patch
-Patch2: %{name}-use-custom-resolver.patch
+Patch2: %{name}-maven-surefire.patch
+Patch3: %{name}-use-custom-resolver.patch
# Set some temporary build version so that the bootstrapped build has
# a different version from the nonbootstrapped. Otherwise there will
# be cyclic dependencies.
%if %{bootstrap}
-Patch3: %{name}-bootstrap.patch
+Patch4: %{name}-bootstrap.patch
%endif
BuildArch: noarch
@@ -109,10 +110,11 @@ This package contains the API documentation for %{name}.
%setup -q -n %{name}-0.14.x
%patch0 -p2
-%patch1 -p2
-%patch2 -p1
-%if %{bootstrap}
+%patch1 -p1
+%patch2 -p2
%patch3 -p1
+%if %{bootstrap}
+%patch4 -p1
%endif
find tycho-core -iname '*html' -delete
@@ -193,6 +195,9 @@ cp -pr target/site/api*/* %{buildroot}%{_javadocdir}/%{name}
%{_javadocdir}/%{name}
%changelog
+* Tue May 29 2012 Roland Grunberg <rgrunber(a)redhat.com> 0.14.1-4.1
+- Fix Tycho Surfire to run Eclipse test bundles.
+
* Wed May 23 2012 Roland Grunberg <rgrunber(a)redhat.com> 0.14.1-4
- Non-bootstrap build.