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


Reply via email to