Author: rmannibucau
Date: Thu Aug 28 06:17:49 2014
New Revision: 1621060
URL: http://svn.apache.org/r1621060
Log:
importing checkRestfulRequest feature from new cxf
Modified:
tomee/tomee/trunk/server/openejb-cxf-rs/src/main/java/org/apache/openejb/server/cxf/rs/CxfRsHttpListener.java
tomee/tomee/trunk/server/openejb-cxf-transport/src/main/java/org/apache/openejb/server/cxf/transport/HttpDestination.java
Modified:
tomee/tomee/trunk/server/openejb-cxf-rs/src/main/java/org/apache/openejb/server/cxf/rs/CxfRsHttpListener.java
URL:
http://svn.apache.org/viewvc/tomee/tomee/trunk/server/openejb-cxf-rs/src/main/java/org/apache/openejb/server/cxf/rs/CxfRsHttpListener.java?rev=1621060&r1=1621059&r2=1621060&view=diff
==============================================================================
---
tomee/tomee/trunk/server/openejb-cxf-rs/src/main/java/org/apache/openejb/server/cxf/rs/CxfRsHttpListener.java
(original)
+++
tomee/tomee/trunk/server/openejb-cxf-rs/src/main/java/org/apache/openejb/server/cxf/rs/CxfRsHttpListener.java
Thu Aug 28 06:17:49 2014
@@ -38,7 +38,6 @@ import org.apache.cxf.jaxrs.provider.Pri
import org.apache.cxf.jaxrs.provider.SourceProvider;
import org.apache.cxf.service.invoker.Invoker;
import org.apache.cxf.transport.DestinationFactory;
-import org.apache.cxf.transport.http.AbstractHTTPDestination;
import org.apache.cxf.transport.servlet.BaseUrlHelper;
import org.apache.fleece.jaxrs.FleeceProvider;
import org.apache.fleece.jaxrs.JsrProvider;
@@ -59,6 +58,7 @@ import org.apache.openejb.loader.SystemI
import org.apache.openejb.monitoring.LocalMBeanServer;
import org.apache.openejb.monitoring.ObjectNameBuilder;
import org.apache.openejb.rest.ThreadLocalContextManager;
+import org.apache.openejb.server.cxf.transport.HttpDestination;
import org.apache.openejb.server.cxf.transport.util.CxfUtil;
import org.apache.openejb.server.httpd.HttpRequest;
import org.apache.openejb.server.httpd.HttpRequestImpl;
@@ -121,7 +121,7 @@ public class CxfRsHttpListener implement
private final DestinationFactory transportFactory;
private final String wildcard;
- private AbstractHTTPDestination destination;
+ private HttpDestination destination;
private Server server;
private String context = "";
private String servlet = "";
@@ -168,6 +168,10 @@ public class CxfRsHttpListener implement
}
httpRequest.setAttribute("org.apache.cxf.transport.endpoint.address",
baseURL);
+ if (null ==
destination.getRegistry().checkRestfulRequest(httpRequest.getRequestURL().toString()))
{
+ serveStaticContent(httpRequest, httpResponse,
httpRequest.getPathInfo());
+ return;
+ }
// delegate invocation
final ClassLoader oldLoader =
Thread.currentThread().getContextClassLoader();
@@ -293,7 +297,7 @@ public class CxfRsHttpListener implement
}
server = factory.create();
- destination = (AbstractHTTPDestination) server.getDestination();
+ destination = (HttpDestination) server.getDestination();
} finally {
if (oldLoader != null) {
CxfUtil.clearBusLoader(oldLoader);
@@ -474,7 +478,7 @@ public class CxfRsHttpListener implement
this.servlet = this.context.substring(servletIdx);
this.context = this.context.substring(0, servletIdx);
}
- destination = (AbstractHTTPDestination) server.getDestination();
+ destination = (HttpDestination) server.getDestination();
final String base;
if (prefix.endsWith("/")) {
Modified:
tomee/tomee/trunk/server/openejb-cxf-transport/src/main/java/org/apache/openejb/server/cxf/transport/HttpDestination.java
URL:
http://svn.apache.org/viewvc/tomee/tomee/trunk/server/openejb-cxf-transport/src/main/java/org/apache/openejb/server/cxf/transport/HttpDestination.java?rev=1621060&r1=1621059&r2=1621060&view=diff
==============================================================================
---
tomee/tomee/trunk/server/openejb-cxf-transport/src/main/java/org/apache/openejb/server/cxf/transport/HttpDestination.java
(original)
+++
tomee/tomee/trunk/server/openejb-cxf-transport/src/main/java/org/apache/openejb/server/cxf/transport/HttpDestination.java
Thu Aug 28 06:17:49 2014
@@ -30,6 +30,10 @@ public class HttpDestination extends Abs
super(bus, registry, endpointInfo, path, true);
}
+ public DestinationRegistry getRegistry() {
+ return registry;
+ }
+
@Override
public Logger getLogger() {
return Logger.getLogger(HttpDestination.class.getName());