[eclipse-m2e-core] Enable test bundle
Mikolaj Izdebski
mizdebsk at fedoraproject.org
Mon Feb 9 14:20:44 UTC 2015
commit 564180f96d4e1c08e8a1ba2eb2e105671d5b6b10
Author: Mikolaj Izdebski <mizdebsk at redhat.com>
Date: Mon Feb 9 15:17:24 2015 +0100
Enable test bundle
eclipse-m2e-core-jetty-8.patch | 152 ++++++++++++++++++++++++++++++++++++++++
eclipse-m2e-core.spec | 31 ++++++--
2 files changed, 176 insertions(+), 7 deletions(-)
---
diff --git a/eclipse-m2e-core-jetty-8.patch b/eclipse-m2e-core-jetty-8.patch
new file mode 100644
index 0000000..dfb0ad8
--- /dev/null
+++ b/eclipse-m2e-core-jetty-8.patch
@@ -0,0 +1,152 @@
+--- org.eclipse.m2e.tests.common/META-INF/MANIFEST.MF
++++ org.eclipse.m2e.tests.common/META-INF/MANIFEST.MF
+@@ -11,14 +11,15 @@ Require-Bundle: org.junit;bundle-version="4.0.0",
+ org.eclipse.core.runtime,
+ org.eclipse.jdt.core,
+ org.eclipse.debug.core,
+- org.eclipse.core.resources
++ org.eclipse.core.resources,
++ org.eclipse.jetty.http;bundle-version="[7,9)",
++ org.eclipse.jetty.security;bundle-version="[7,9)",
++ org.eclipse.jetty.server;bundle-version="[7,9)",
++ org.eclipse.jetty.util;bundle-version="[7,9)",
++ javax.servlet-api;bundle-version=3.1.0
+ Bundle-ActivationPolicy: lazy
+ Bundle-RequiredExecutionEnvironment: JavaSE-1.6,
+ JavaSE-1.7
+-Bundle-ClassPath: .,
+- jars/javax.servlet_2.5.0.v201103041518.jar,
+- jars/org.mortbay.jetty.server_6.1.23.v201012071420.jar,
+- jars/org.mortbay.jetty.util_6.1.23.v201012071420.jar
+ Bundle-Vendor: %Bundle-Vendor
+ MavenArtifact-GroupId: org.eclipse.m2e
+ MavenArtifact-ArtifactId: org.eclipse.m2e.tests.common
+--- org.eclipse.m2e.tests.common/src/org/eclipse/m2e/tests/common/HttpServer.java
++++ org.eclipse.m2e.tests.common/src/org/eclipse/m2e/tests/common/HttpServer.java
+@@ -7,6 +7,7 @@
+ *
+ * Contributors:
+ * Sonatype, Inc. - initial API and implementation
++ * Red Hat, Inc. - ported to Jetty 8
+ *******************************************************************************/
+
+ package org.eclipse.m2e.tests.common;
+@@ -28,23 +29,24 @@ import java.util.TreeMap;
+ import javax.servlet.http.HttpServletRequest;
+ import javax.servlet.http.HttpServletResponse;
+
+-import org.mortbay.jetty.Connector;
+-import org.mortbay.jetty.Handler;
+-import org.mortbay.jetty.HttpMethods;
+-import org.mortbay.jetty.Request;
+-import org.mortbay.jetty.Server;
+-import org.mortbay.jetty.handler.AbstractHandler;
+-import org.mortbay.jetty.handler.DefaultHandler;
+-import org.mortbay.jetty.handler.HandlerList;
+-import org.mortbay.jetty.nio.SelectChannelConnector;
+-import org.mortbay.jetty.security.B64Code;
+-import org.mortbay.jetty.security.Constraint;
+-import org.mortbay.jetty.security.ConstraintMapping;
+-import org.mortbay.jetty.security.HashUserRealm;
+-import org.mortbay.jetty.security.SecurityHandler;
+-import org.mortbay.jetty.security.SslSocketConnector;
+-import org.mortbay.util.IO;
+-import org.mortbay.util.URIUtil;
++import org.eclipse.jetty.http.HttpMethods;
++import org.eclipse.jetty.security.ConstraintMapping;
++import org.eclipse.jetty.security.ConstraintSecurityHandler;
++import org.eclipse.jetty.security.HashLoginService;
++import org.eclipse.jetty.server.Connector;
++import org.eclipse.jetty.server.Handler;
++import org.eclipse.jetty.server.Request;
++import org.eclipse.jetty.server.Server;
++import org.eclipse.jetty.server.handler.AbstractHandler;
++import org.eclipse.jetty.server.handler.DefaultHandler;
++import org.eclipse.jetty.server.handler.HandlerList;
++import org.eclipse.jetty.server.nio.SelectChannelConnector;
++import org.eclipse.jetty.server.ssl.SslSocketConnector;
++import org.eclipse.jetty.util.B64Code;
++import org.eclipse.jetty.util.IO;
++import org.eclipse.jetty.util.URIUtil;
++import org.eclipse.jetty.util.security.Constraint;
++import org.eclipse.jetty.util.security.Password;
+
+
+ /**
+@@ -260,12 +262,12 @@ public class HttpServer {
+
+ protected Handler newProxyHandler() {
+ return new AbstractHandler() {
+- public void handle(String target, HttpServletRequest request, HttpServletResponse response, int dispatch)
++ public void handle(String target, Request unused, HttpServletRequest request, HttpServletResponse response)
+ throws IOException {
+ String auth = request.getHeader("Proxy-Authorization");
+ if(auth != null) {
+ auth = auth.substring(auth.indexOf(' ') + 1).trim();
+- auth = B64Code.decode(auth);
++ auth = new String(B64Code.decode(auth));
+ }
+
+ if(!(proxyUsername + ':' + proxyPassword).equals(auth)) {
+@@ -294,7 +296,7 @@ public class HttpServer {
+ protected Handler newSslRedirectHandler() {
+ return new AbstractHandler() {
+
+- public void handle(String target, HttpServletRequest request, HttpServletResponse response, int dispatch) {
++ public void handle(String target, Request unused, HttpServletRequest request, HttpServletResponse response) {
+ int httpsPort = getHttpsPort();
+ if(!((Request) request).isHandled() && request.getServerPort() != httpsPort) {
+ String url = "https://" + request.getServerName() + ":" + httpsPort + request.getRequestURI();
+@@ -354,21 +356,16 @@ public class HttpServer {
+ mappings.add(constraintMapping);
+ }
+
+- HashUserRealm userRealm = new HashUserRealm("TestRealm");
++ HashLoginService userRealm = new HashLoginService("TestRealm");
+ for(String username : userPasswords.keySet()) {
+ String password = userPasswords.get(username);
+ String[] roles = userRoles.get(username);
+
+- userRealm.put(username, password);
+- if(roles != null) {
+- for(String role : roles) {
+- userRealm.addUserToRole(username, role);
+- }
+- }
++ userRealm.putUser(username, new Password(password), roles);
+ }
+
+- SecurityHandler securityHandler = new SecurityHandler();
+- securityHandler.setUserRealm(userRealm);
++ ConstraintSecurityHandler securityHandler = new ConstraintSecurityHandler();
++ securityHandler.setLoginService(userRealm);
+ securityHandler.setConstraintMappings(mappings.toArray(new ConstraintMapping[mappings.size()]));
+
+ return securityHandler;
+@@ -471,7 +468,7 @@ public class HttpServer {
+ protected Handler newSleepHandler(final long millis) {
+ return new AbstractHandler() {
+
+- public void handle(String target, HttpServletRequest request, HttpServletResponse response, int dispatch) {
++ public void handle(String target, Request unused, HttpServletRequest request, HttpServletResponse response) {
+ if(millis >= 0) {
+ try {
+ Thread.sleep(millis);
+@@ -621,7 +618,7 @@ public class HttpServer {
+
+ class ResHandler extends AbstractHandler {
+
+- public void handle(String target, HttpServletRequest request, HttpServletResponse response, int dispatch)
++ public void handle(String target, Request unused, HttpServletRequest request, HttpServletResponse response)
+ throws IOException {
+ String uri = request.getRequestURI();
+
+@@ -705,7 +702,7 @@ public class HttpServer {
+
+ class RecordingHandler extends AbstractHandler {
+
+- public void handle(String target, HttpServletRequest request, HttpServletResponse response, int dispatch) {
++ public void handle(String target, Request unused, HttpServletRequest request, HttpServletResponse response) {
+ String uri = request.getRequestURI();
+
+ for(String pattern : recordedPatterns) {
diff --git a/eclipse-m2e-core.spec b/eclipse-m2e-core.spec
index ff7c8bb..65599c9 100644
--- a/eclipse-m2e-core.spec
+++ b/eclipse-m2e-core.spec
@@ -4,7 +4,7 @@
Name: eclipse-m2e-core
Version: 1.5.0
-Release: 17%{?dist}
+Release: 18%{?dist}
Summary: Maven integration for Eclipse
Group: Development/Tools
@@ -53,6 +53,9 @@ Patch14: %{name}-LifecycleMappingFactory.patch
# API changes in lucene 4
Patch16: %{name}-lucene-4.patch
+# Port tests to Jetty 8
+Patch17: %{name}-jetty-8.patch
+
BuildArch: noarch
@@ -153,6 +156,9 @@ BuildRequires: osgi(org.eclipse.wst.xml.ui)
BuildRequires: osgi(org.eclipse.wst.xsd.core)
BuildRequires: osgi(slf4j.api)
+# Build-requires for tests
+BuildRequires: jetty8
+
# Bundle requires are auto-generated, but explicit requires are needed
# for symlinks to JARs installed by other packages. After installing
# m2e these requires can be regenerated with the following command:
@@ -243,6 +249,14 @@ additional Maven plugins (e.g. Android, web development, etc.), and facilitates
the distribution of those extensions through the m2e marketplace.
+%package tests
+Summary: Eclipse M2E testing helpers
+Requires: jetty8
+
+%description tests
+This package contains common code used by tests for Eclipse M2E.
+
+
%package javadoc
Group: Documentation
Summary: API documentation for %{name}
@@ -262,9 +276,7 @@ cp -p %{SOURCE1} .
cp -p m2e-maven-runtime/org.eclipse.m2e.maven.indexer/src/main/resources/about_files/LICENSE-2.0.txt .
# These don't currently build, but don't seem to be absolutely necessary
-# Tests are skipped because they require Jetty 6.x
-for mod in org.eclipse.m2e.tests.common \
- org.eclipse.m2e.logback.appender \
+for mod in org.eclipse.m2e.logback.appender \
org.eclipse.m2e.logback.configuration \
org.eclipse.m2e.logback.feature \
org.eclipse.m2e.sdk.feature \
@@ -274,9 +286,9 @@ do
rm -rf $mod
done
-# aether-connector-okhttp has changed groupId
-#pom_remove_dep io.tesla.aether:aether-connector-okhttp m2e-maven-runtime/org.eclipse.m2e.maven.runtime
-#pom_add_dep io.takari.aether:aether-connector-okhttp m2e-maven-runtime/org.eclipse.m2e.maven.runtime
+# Test bundle goes to its own subpackage.
+%mvn_package ":*.tests*::{}:" tests
+%mvn_package ":::{}:"
# Embed all Maven dependencies. They may be some superflous deps
# added this way, but in Fedora we don't have enough manpower to test
@@ -323,11 +335,16 @@ xmvn-subst -s `find %{buildroot}%{install_loc} -name jars` $extra
%doc org.eclipse.m2e.core/about.html
%doc epl-v10.html LICENSE-2.0.txt
+%files tests -f .mfiles-tests
+
%files javadoc -f .mfiles-javadoc
%doc epl-v10.html LICENSE-2.0.txt
%changelog
+* Mon Feb 9 2015 Mikolaj Izdebski <mizdebsk at redhat.com> - 1.5.0-18
+- Enable test bundle
+
* Sat Feb 7 2015 Mikolaj Izdebski <mizdebsk at redhat.com> - 1.5.0-17
- Install runtime bundles in dropins directory
More information about the scm-commits
mailing list