Skip to content

Commit

Permalink
Merge pull request #489 from patriot1burke/master
Browse files Browse the repository at this point in the history
fixes
  • Loading branch information
patriot1burke committed Apr 7, 2014
2 parents 65d2bea + a961db3 commit e449784
Show file tree
Hide file tree
Showing 5 changed files with 50 additions and 8 deletions.
Expand Up @@ -25,7 +25,7 @@ public class HttpServlet30Dispatcher extends HttpServletDispatcher
@Override
protected HttpRequest createHttpRequest(String httpMethod, HttpServletRequest httpServletRequest, ResteasyHttpHeaders httpHeaders, ResteasyUriInfo uriInfo, HttpResponse httpResponse, HttpServletResponse httpServletResponse)
{
Servlet3AsyncHttpRequest request = new Servlet3AsyncHttpRequest(httpServletRequest, httpServletResponse, getServletContext(), httpResponse, httpHeaders, uriInfo, httpMethod, (SynchronousDispatcher) getDispatcher());
Servlet3AsyncHttpRequest request = new Servlet3AsyncHttpRequest(httpServletRequest, httpServletResponse, getServletContext(), httpResponse, httpHeaders, uriInfo, httpMethod.toUpperCase(), (SynchronousDispatcher) getDispatcher());
request.asyncScheduler = asyncCancelScheduler;
return request;
}
Expand Down
@@ -1,6 +1,12 @@
package org.jboss.resteasy.test.client;

import org.apache.http.HttpResponse;
import org.apache.http.client.HttpClient;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.impl.client.DefaultHttpClient;
import org.apache.http.util.EntityUtils;
import org.jboss.resteasy.test.BaseResourceTest;
import org.jboss.resteasy.test.TestPortProvider;
import org.junit.Assert;
import org.junit.BeforeClass;
import org.junit.Test;
Expand All @@ -15,11 +21,15 @@
import javax.ws.rs.Path;
import javax.ws.rs.client.Client;
import javax.ws.rs.client.ClientBuilder;
import javax.ws.rs.core.Context;
import javax.ws.rs.core.Response;
import javax.ws.rs.core.UriInfo;
import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;
import java.net.HttpURLConnection;
import java.net.URL;

import static org.jboss.resteasy.test.TestPortProvider.generateURL;

Expand All @@ -39,6 +49,9 @@ public class TraceTest extends BaseResourceTest
@Path("resource")
public static class Resource {

@Context
UriInfo uriInfo;

@GET
@Path("get")
public String get() {
Expand Down Expand Up @@ -119,6 +132,7 @@ public Response optionsNotOk() {
@TRACE
@Path("trace")
public String trace() {
System.out.println("uriInfo.request: " + uriInfo.getRequestUri().toString());
return "trace";
}

Expand All @@ -145,5 +159,33 @@ public void testTrace()
Response response = client.target(generateURL("/resource/trace")).request().trace(Response.class);
Assert.assertEquals(200, response.getStatus());
}
@Test
public void testUrl() throws Exception {
System.out.println("**** TEST URL");
String uri = generateURL("/resource/trace");

System.out.println(uri);
HttpClient client = new DefaultHttpClient();
CustomHttpTrace trace = new CustomHttpTrace(uri);
HttpResponse response = client.execute(trace);
Assert.assertEquals(200, response.getStatusLine().getStatusCode());
client.getConnectionManager().shutdown();
}

private static class CustomHttpTrace extends HttpGet
{
private CustomHttpTrace(String uri)
{
super(uri);
}

@Override
public String getMethod()
{
return "TrAcE";
}
}



}
Expand Up @@ -420,7 +420,7 @@ protected void sort(List<Match> matches)
Collections.sort(matches, new AscendingPrecedenceComparator());
}

public void register(InterceptorFactory factory)
public synchronized void register(InterceptorFactory factory)
{
interceptors.add(factory);
cachedPreMatch = null;
Expand All @@ -430,24 +430,24 @@ public void register(InterceptorFactory factory)
}
}

public void registerClass(Class<? extends T> declaring)
public synchronized void registerClass(Class<? extends T> declaring)
{
register(new OnDemandInterceptorFactory(declaring));
}

public void registerClass(Class<? extends T> declaring, int priority)
public synchronized void registerClass(Class<? extends T> declaring, int priority)
{
OnDemandInterceptorFactory factory = new OnDemandInterceptorFactory(declaring);
factory.setOrder(priority);
register(factory);
}

public void registerSingleton(T interceptor)
public synchronized void registerSingleton(T interceptor)
{
register(new SingletonInterceptorFactory(interceptor.getClass(), interceptor));
}

public void registerSingleton(T interceptor, int priority)
public synchronized void registerSingleton(T interceptor, int priority)
{
SingletonInterceptorFactory factory = new SingletonInterceptorFactory(interceptor.getClass(), interceptor);
factory.setOrder(priority);
Expand Down
Expand Up @@ -325,7 +325,7 @@ public Match match(List<Match> matches, String httpMethod, HttpRequest request)
{

ResourceMethodInvoker invoker = (ResourceMethodInvoker) match.expression.getInvoker();
if (invoker.getHttpMethods().contains(httpMethod))
if (invoker.getHttpMethods().contains(httpMethod.toUpperCase()))
{
methodMatch = true;
if (invoker.doesConsume(contentType))
Expand Down
Expand Up @@ -512,7 +512,7 @@ public static class ResourceMethodBuilder extends ResourceLocatorBuilder<Resourc

public ResourceMethodBuilder httpMethod(String httpMethod)
{
method.httpMethods.add(httpMethod);
method.httpMethods.add(httpMethod.toUpperCase());
return this;
}

Expand Down

0 comments on commit e449784

Please sign in to comment.