[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