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.
This commit is contained in:
parent
4a3b7d4fce
commit
416b074682
@ -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
|
||||
|
@ -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 @@
|
||||
|
160
tycho-fix-surefire.patch
Normal file
160
tycho-fix-surefire.patch
Normal file
@ -0,0 +1,160 @@
|
||||
From 5ddb88911071664de0e07f7f247aeeaedecc8cab Mon Sep 17 00:00:00 2001
|
||||
From: Roland Grunberg <rgrunber@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
|
||||
|
@ -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;
|
||||
}
|
||||
|
21
tycho.spec
21
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@redhat.com> 0.14.1-4.1
|
||||
- Fix Tycho Surfire to run Eclipse test bundles.
|
||||
|
||||
* Wed May 23 2012 Roland Grunberg <rgrunber@redhat.com> 0.14.1-4
|
||||
- Non-bootstrap build.
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user