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());