You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hc.apache.org by ol...@apache.org on 2015/02/14 14:25:20 UTC

svn commit: r1659794 - in /httpcomponents/httpcore/trunk: httpcore-nio/src/main/java/org/apache/http/nio/protocol/ httpcore-nio/src/test/java/org/apache/http/nio/protocol/ httpcore/src/main/java/org/apache/http/protocol/ httpcore/src/test/java/org/apac...

Author: olegk
Date: Sat Feb 14 13:25:20 2015
New Revision: 1659794

URL: http://svn.apache.org/r1659794
Log:
HTTPCORE-381: added HttpContext parameter to the lookup method of HttpRequestHandlerMapper and HttpAsyncRequestHandlerMapper

Modified:
    httpcomponents/httpcore/trunk/httpcore-nio/src/main/java/org/apache/http/nio/protocol/HttpAsyncRequestHandlerMapper.java
    httpcomponents/httpcore/trunk/httpcore-nio/src/main/java/org/apache/http/nio/protocol/HttpAsyncService.java
    httpcomponents/httpcore/trunk/httpcore-nio/src/main/java/org/apache/http/nio/protocol/UriHttpAsyncRequestHandlerMapper.java
    httpcomponents/httpcore/trunk/httpcore-nio/src/test/java/org/apache/http/nio/protocol/TestUriHttpAsyncRequestHandlerMapper.java
    httpcomponents/httpcore/trunk/httpcore/src/main/java/org/apache/http/protocol/HttpRequestHandlerMapper.java
    httpcomponents/httpcore/trunk/httpcore/src/main/java/org/apache/http/protocol/HttpService.java
    httpcomponents/httpcore/trunk/httpcore/src/main/java/org/apache/http/protocol/UriHttpRequestHandlerMapper.java
    httpcomponents/httpcore/trunk/httpcore/src/test/java/org/apache/http/protocol/TestHttpService.java
    httpcomponents/httpcore/trunk/httpcore/src/test/java/org/apache/http/protocol/TestUriHttpRequestHandlerMapper.java

Modified: httpcomponents/httpcore/trunk/httpcore-nio/src/main/java/org/apache/http/nio/protocol/HttpAsyncRequestHandlerMapper.java
URL: http://svn.apache.org/viewvc/httpcomponents/httpcore/trunk/httpcore-nio/src/main/java/org/apache/http/nio/protocol/HttpAsyncRequestHandlerMapper.java?rev=1659794&r1=1659793&r2=1659794&view=diff
==============================================================================
--- httpcomponents/httpcore/trunk/httpcore-nio/src/main/java/org/apache/http/nio/protocol/HttpAsyncRequestHandlerMapper.java (original)
+++ httpcomponents/httpcore/trunk/httpcore-nio/src/main/java/org/apache/http/nio/protocol/HttpAsyncRequestHandlerMapper.java Sat Feb 14 13:25:20 2015
@@ -28,6 +28,7 @@
 package org.apache.http.nio.protocol;
 
 import org.apache.http.HttpRequest;
+import org.apache.http.protocol.HttpContext;
 
 /**
  * {@code HttpAsyncRequestHandlerMapper} can be used to resolve an instance
@@ -44,7 +45,9 @@ public interface HttpAsyncRequestHandler
      * @param request the request
      * @return HTTP request handler or {@code null} if no match
      * is found.
+     *
+     * @since 5.0
      */
-    HttpAsyncRequestHandler<?> lookup(HttpRequest request);
+    HttpAsyncRequestHandler<?> lookup(HttpRequest request, HttpContext context);
 
 }

Modified: httpcomponents/httpcore/trunk/httpcore-nio/src/main/java/org/apache/http/nio/protocol/HttpAsyncService.java
URL: http://svn.apache.org/viewvc/httpcomponents/httpcore/trunk/httpcore-nio/src/main/java/org/apache/http/nio/protocol/HttpAsyncService.java?rev=1659794&r1=1659793&r2=1659794&view=diff
==============================================================================
--- httpcomponents/httpcore/trunk/httpcore-nio/src/main/java/org/apache/http/nio/protocol/HttpAsyncService.java (original)
+++ httpcomponents/httpcore/trunk/httpcore-nio/src/main/java/org/apache/http/nio/protocol/HttpAsyncService.java Sat Feb 14 13:25:20 2015
@@ -277,7 +277,7 @@ public class HttpAsyncService implements
         context.setAttribute(HttpCoreContext.HTTP_CONNECTION, conn);
         this.httpProcessor.process(request, context);
 
-        final HttpAsyncRequestHandler<Object> requestHandler = getRequestHandler(request);
+        final HttpAsyncRequestHandler<Object> requestHandler = getRequestHandler(request, context);
         final HttpAsyncRequestConsumer<Object> consumer = requestHandler.processRequest(request, context);
         consumer.requestReceived(request);
 
@@ -709,10 +709,10 @@ public class HttpAsyncService implements
     }
 
     @SuppressWarnings("unchecked")
-    private HttpAsyncRequestHandler<Object> getRequestHandler(final HttpRequest request) {
+    private HttpAsyncRequestHandler<Object> getRequestHandler(final HttpRequest request, final HttpContext context) {
         HttpAsyncRequestHandler<Object> handler = null;
         if (this.handlerMapper != null) {
-            handler = (HttpAsyncRequestHandler<Object>) this.handlerMapper.lookup(request);
+            handler = (HttpAsyncRequestHandler<Object>) this.handlerMapper.lookup(request, context);
         }
         if (handler == null) {
             handler = new NullRequestHandler();

Modified: httpcomponents/httpcore/trunk/httpcore-nio/src/main/java/org/apache/http/nio/protocol/UriHttpAsyncRequestHandlerMapper.java
URL: http://svn.apache.org/viewvc/httpcomponents/httpcore/trunk/httpcore-nio/src/main/java/org/apache/http/nio/protocol/UriHttpAsyncRequestHandlerMapper.java?rev=1659794&r1=1659793&r2=1659794&view=diff
==============================================================================
--- httpcomponents/httpcore/trunk/httpcore-nio/src/main/java/org/apache/http/nio/protocol/UriHttpAsyncRequestHandlerMapper.java (original)
+++ httpcomponents/httpcore/trunk/httpcore-nio/src/main/java/org/apache/http/nio/protocol/UriHttpAsyncRequestHandlerMapper.java Sat Feb 14 13:25:20 2015
@@ -29,6 +29,7 @@ package org.apache.http.nio.protocol;
 
 import org.apache.http.HttpRequest;
 import org.apache.http.annotation.ThreadSafe;
+import org.apache.http.protocol.HttpContext;
 import org.apache.http.protocol.UriPatternMatcher;
 import org.apache.http.util.Args;
 
@@ -106,7 +107,7 @@ public class UriHttpAsyncRequestHandlerM
      * @return handler or {@code null} if no match is found.
      */
     @Override
-    public HttpAsyncRequestHandler<?> lookup(final HttpRequest request) {
+    public HttpAsyncRequestHandler<?> lookup(final HttpRequest request, final HttpContext context) {
         return matcher.lookup(getRequestPath(request));
     }
 

Modified: httpcomponents/httpcore/trunk/httpcore-nio/src/test/java/org/apache/http/nio/protocol/TestUriHttpAsyncRequestHandlerMapper.java
URL: http://svn.apache.org/viewvc/httpcomponents/httpcore/trunk/httpcore-nio/src/test/java/org/apache/http/nio/protocol/TestUriHttpAsyncRequestHandlerMapper.java?rev=1659794&r1=1659793&r2=1659794&view=diff
==============================================================================
--- httpcomponents/httpcore/trunk/httpcore-nio/src/test/java/org/apache/http/nio/protocol/TestUriHttpAsyncRequestHandlerMapper.java (original)
+++ httpcomponents/httpcore/trunk/httpcore-nio/src/test/java/org/apache/http/nio/protocol/TestUriHttpAsyncRequestHandlerMapper.java Sat Feb 14 13:25:20 2015
@@ -29,6 +29,7 @@ package org.apache.http.nio.protocol;
 
 import org.apache.http.HttpRequest;
 import org.apache.http.message.BasicHttpRequest;
+import org.apache.http.protocol.HttpCoreContext;
 import org.apache.http.protocol.UriPatternMatcher;
 import org.junit.Assert;
 import org.junit.Test;
@@ -58,7 +59,8 @@ public class TestUriHttpAsyncRequestHand
         final UriHttpAsyncRequestHandlerMapper registry = new UriHttpAsyncRequestHandlerMapper(matcher);
 
         final HttpRequest request = new BasicHttpRequest("GET", "/");
-        registry.lookup(request);
+        final HttpCoreContext context = HttpCoreContext.create();
+        registry.lookup(request, context);
         registry.unregister("/h1");
 
         Mockito.verify(matcher).lookup("/");
@@ -91,15 +93,16 @@ public class TestUriHttpAsyncRequestHand
 
         HttpAsyncRequestHandler<?> h;
 
-        h = registry.lookup(new BasicHttpRequest("GET", "/that.view?param=value"));
+        final HttpCoreContext context = HttpCoreContext.create();
+        h = registry.lookup(new BasicHttpRequest("GET", "/that.view?param=value"), context);
         Assert.assertNotNull(h);
         Assert.assertTrue(h1 == h);
 
-        h = registry.lookup(new BasicHttpRequest("GET", "/that.form?whatever"));
+        h = registry.lookup(new BasicHttpRequest("GET", "/that.form?whatever"), context);
         Assert.assertNotNull(h);
         Assert.assertTrue(h2 == h);
 
-        h = registry.lookup(new BasicHttpRequest("GET", "/whatever"));
+        h = registry.lookup(new BasicHttpRequest("GET", "/whatever"), context);
         Assert.assertNotNull(h);
         Assert.assertTrue(def == h);
     }

Modified: httpcomponents/httpcore/trunk/httpcore/src/main/java/org/apache/http/protocol/HttpRequestHandlerMapper.java
URL: http://svn.apache.org/viewvc/httpcomponents/httpcore/trunk/httpcore/src/main/java/org/apache/http/protocol/HttpRequestHandlerMapper.java?rev=1659794&r1=1659793&r2=1659794&view=diff
==============================================================================
--- httpcomponents/httpcore/trunk/httpcore/src/main/java/org/apache/http/protocol/HttpRequestHandlerMapper.java (original)
+++ httpcomponents/httpcore/trunk/httpcore/src/main/java/org/apache/http/protocol/HttpRequestHandlerMapper.java Sat Feb 14 13:25:20 2015
@@ -44,7 +44,9 @@ public interface HttpRequestHandlerMappe
      * @param request the request to map to a handler
      * @return HTTP request handler or {@code null} if no match
      * is found.
+     *
+     * @since 5.0
      */
-    HttpRequestHandler lookup(HttpRequest request);
+    HttpRequestHandler lookup(HttpRequest request, HttpContext context);
 
 }

Modified: httpcomponents/httpcore/trunk/httpcore/src/main/java/org/apache/http/protocol/HttpService.java
URL: http://svn.apache.org/viewvc/httpcomponents/httpcore/trunk/httpcore/src/main/java/org/apache/http/protocol/HttpService.java?rev=1659794&r1=1659793&r2=1659794&view=diff
==============================================================================
--- httpcomponents/httpcore/trunk/httpcore/src/main/java/org/apache/http/protocol/HttpService.java (original)
+++ httpcomponents/httpcore/trunk/httpcore/src/main/java/org/apache/http/protocol/HttpService.java Sat Feb 14 13:25:20 2015
@@ -269,7 +269,7 @@ public class HttpService {
             final HttpContext context) throws HttpException, IOException {
         HttpRequestHandler handler = null;
         if (this.handlerMapper != null) {
-            handler = this.handlerMapper.lookup(request);
+            handler = this.handlerMapper.lookup(request, context);
         }
         if (handler != null) {
             handler.handle(request, response, context);

Modified: httpcomponents/httpcore/trunk/httpcore/src/main/java/org/apache/http/protocol/UriHttpRequestHandlerMapper.java
URL: http://svn.apache.org/viewvc/httpcomponents/httpcore/trunk/httpcore/src/main/java/org/apache/http/protocol/UriHttpRequestHandlerMapper.java?rev=1659794&r1=1659793&r2=1659794&view=diff
==============================================================================
--- httpcomponents/httpcore/trunk/httpcore/src/main/java/org/apache/http/protocol/UriHttpRequestHandlerMapper.java (original)
+++ httpcomponents/httpcore/trunk/httpcore/src/main/java/org/apache/http/protocol/UriHttpRequestHandlerMapper.java Sat Feb 14 13:25:20 2015
@@ -108,7 +108,7 @@ public class UriHttpRequestHandlerMapper
      * @return handler or {@code null} if no match is found.
      */
     @Override
-    public HttpRequestHandler lookup(final HttpRequest request) {
+    public HttpRequestHandler lookup(final HttpRequest request, final HttpContext context) {
         Args.notNull(request, "HTTP request");
         return matcher.lookup(getRequestPath(request));
     }

Modified: httpcomponents/httpcore/trunk/httpcore/src/test/java/org/apache/http/protocol/TestHttpService.java
URL: http://svn.apache.org/viewvc/httpcomponents/httpcore/trunk/httpcore/src/test/java/org/apache/http/protocol/TestHttpService.java?rev=1659794&r1=1659793&r2=1659794&view=diff
==============================================================================
--- httpcomponents/httpcore/trunk/httpcore/src/test/java/org/apache/http/protocol/TestHttpService.java (original)
+++ httpcomponents/httpcore/trunk/httpcore/src/test/java/org/apache/http/protocol/TestHttpService.java Sat Feb 14 13:25:20 2015
@@ -365,7 +365,7 @@ public class TestHttpService {
         Mockito.when(responseFactory.newHttpResponse(HttpVersion.HTTP_1_1, 200, context)).thenReturn(response);
         final HttpResponse error = new BasicHttpResponse(HttpVersion.HTTP_1_0, 500, "Oppsie");
         Mockito.when(responseFactory.newHttpResponse(HttpVersion.HTTP_1_0, 500, context)).thenReturn(error);
-        Mockito.when(handlerResolver.lookup(request)).thenReturn(requestHandler);
+        Mockito.when(handlerResolver.lookup(request, context)).thenReturn(requestHandler);
         Mockito.doThrow(new MethodNotSupportedException("whatever")).when(
                 requestHandler).handle(request, response, context);
         Mockito.when(connReuseStrategy.keepAlive(error, context)).thenReturn(Boolean.FALSE);
@@ -408,7 +408,7 @@ public class TestHttpService {
         Mockito.when(responseFactory.newHttpResponse(HttpVersion.HTTP_1_1, 200, context)).thenReturn(response);
         final HttpResponse error = new BasicHttpResponse(HttpVersion.HTTP_1_0, 500, "Oppsie");
         Mockito.when(responseFactory.newHttpResponse(HttpVersion.HTTP_1_0, 500, context)).thenReturn(error);
-        Mockito.when(handlerResolver.lookup(request)).thenReturn(requestHandler);
+        Mockito.when(handlerResolver.lookup(request, context)).thenReturn(requestHandler);
         Mockito.doThrow(new UnsupportedHttpVersionException()).when(
                 requestHandler).handle(request, response, context);
         Mockito.when(connReuseStrategy.keepAlive(error, context)).thenReturn(Boolean.FALSE);
@@ -451,7 +451,7 @@ public class TestHttpService {
         Mockito.when(responseFactory.newHttpResponse(HttpVersion.HTTP_1_1, 200, context)).thenReturn(response);
         final HttpResponse error = new BasicHttpResponse(HttpVersion.HTTP_1_0, 500, "Oppsie");
         Mockito.when(responseFactory.newHttpResponse(HttpVersion.HTTP_1_0, 500, context)).thenReturn(error);
-        Mockito.when(handlerResolver.lookup(request)).thenReturn(requestHandler);
+        Mockito.when(handlerResolver.lookup(request, context)).thenReturn(requestHandler);
         Mockito.doThrow(new ProtocolException("oh, this world is wrong")).when(
                 requestHandler).handle(request, response, context);
         Mockito.when(connReuseStrategy.keepAlive(error, context)).thenReturn(Boolean.FALSE);
@@ -491,7 +491,7 @@ public class TestHttpService {
         Mockito.when(conn.receiveRequestHeader()).thenReturn(request);
         final HttpResponse response = new BasicHttpResponse(HttpVersion.HTTP_1_1, 200, "OK");
         Mockito.when(responseFactory.newHttpResponse(HttpVersion.HTTP_1_1, 200, context)).thenReturn(response);
-        Mockito.when(handlerResolver.lookup(request)).thenReturn(requestHandler);
+        Mockito.when(handlerResolver.lookup(request, context)).thenReturn(requestHandler);
         Mockito.when(connReuseStrategy.keepAlive(response, context)).thenReturn(Boolean.TRUE);
 
         httpservice.handleRequest(conn, context);

Modified: httpcomponents/httpcore/trunk/httpcore/src/test/java/org/apache/http/protocol/TestUriHttpRequestHandlerMapper.java
URL: http://svn.apache.org/viewvc/httpcomponents/httpcore/trunk/httpcore/src/test/java/org/apache/http/protocol/TestUriHttpRequestHandlerMapper.java?rev=1659794&r1=1659793&r2=1659794&view=diff
==============================================================================
--- httpcomponents/httpcore/trunk/httpcore/src/test/java/org/apache/http/protocol/TestUriHttpRequestHandlerMapper.java (original)
+++ httpcomponents/httpcore/trunk/httpcore/src/test/java/org/apache/http/protocol/TestUriHttpRequestHandlerMapper.java Sat Feb 14 13:25:20 2015
@@ -55,7 +55,8 @@ public class TestUriHttpRequestHandlerMa
         final UriHttpRequestHandlerMapper registry = new UriHttpRequestHandlerMapper(matcher);
 
         final HttpRequest request = new BasicHttpRequest("GET", "/");
-        registry.lookup(request);
+        final HttpCoreContext context = HttpCoreContext.create();
+        registry.lookup(request, context);
         registry.unregister("/h1");
 
         Mockito.verify(matcher).lookup("/");
@@ -87,15 +88,16 @@ public class TestUriHttpRequestHandlerMa
 
         HttpRequestHandler h;
 
-        h = registry.lookup(new BasicHttpRequest("GET", "/that.view?param=value"));
+        final HttpCoreContext context = HttpCoreContext.create();
+        h = registry.lookup(new BasicHttpRequest("GET", "/that.view?param=value"), context);
         Assert.assertNotNull(h);
         Assert.assertTrue(h1 == h);
 
-        h = registry.lookup(new BasicHttpRequest("GET", "/that.form?whatever"));
+        h = registry.lookup(new BasicHttpRequest("GET", "/that.form?whatever"), context);
         Assert.assertNotNull(h);
         Assert.assertTrue(h2 == h);
 
-        h = registry.lookup(new BasicHttpRequest("GET", "/whatever"));
+        h = registry.lookup(new BasicHttpRequest("GET", "/whatever"), context);
         Assert.assertNotNull(h);
         Assert.assertTrue(def == h);
     }