You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by dk...@apache.org on 2011/09/19 23:32:29 UTC

svn commit: r1172849 - in /camel/branches/camel-2.8.x: ./ components/camel-jetty/src/main/java/org/apache/camel/component/jetty/ components/camel-jetty/src/test/java/org/apache/camel/component/jetty/

Author: dkulp
Date: Mon Sep 19 21:32:28 2011
New Revision: 1172849

URL: http://svn.apache.org/viewvc?rev=1172849&view=rev
Log:
Merged revisions 1161022 via svnmerge from 
https://svn.apache.org/repos/asf/camel/trunk

........
  r1161022 | ningjiang | 2011-08-24 05:03:17 -0400 (Wed, 24 Aug 2011) | 1 line
  
  CAMEL-4372 Add FiltersRef option for the Jetty component
........

Added:
    camel/branches/camel-2.8.x/components/camel-jetty/src/main/java/org/apache/camel/component/jetty/CamelFilterWrapper.java
      - copied unchanged from r1161022, camel/trunk/components/camel-jetty/src/main/java/org/apache/camel/component/jetty/CamelFilterWrapper.java
    camel/branches/camel-2.8.x/components/camel-jetty/src/test/java/org/apache/camel/component/jetty/CustomFiltersTest.java
      - copied unchanged from r1161022, camel/trunk/components/camel-jetty/src/test/java/org/apache/camel/component/jetty/CustomFiltersTest.java
Modified:
    camel/branches/camel-2.8.x/   (props changed)
    camel/branches/camel-2.8.x/components/camel-jetty/src/main/java/org/apache/camel/component/jetty/CamelMultipartFilter.java
    camel/branches/camel-2.8.x/components/camel-jetty/src/main/java/org/apache/camel/component/jetty/JettyHttpComponent.java
    camel/branches/camel-2.8.x/components/camel-jetty/src/main/java/org/apache/camel/component/jetty/JettyHttpEndpoint.java

Propchange: camel/branches/camel-2.8.x/
------------------------------------------------------------------------------
Binary property 'svnmerge-integrated' - no diff available.

Modified: camel/branches/camel-2.8.x/components/camel-jetty/src/main/java/org/apache/camel/component/jetty/CamelMultipartFilter.java
URL: http://svn.apache.org/viewvc/camel/branches/camel-2.8.x/components/camel-jetty/src/main/java/org/apache/camel/component/jetty/CamelMultipartFilter.java?rev=1172849&r1=1172848&r2=1172849&view=diff
==============================================================================
--- camel/branches/camel-2.8.x/components/camel-jetty/src/main/java/org/apache/camel/component/jetty/CamelMultipartFilter.java (original)
+++ camel/branches/camel-2.8.x/components/camel-jetty/src/main/java/org/apache/camel/component/jetty/CamelMultipartFilter.java Mon Sep 19 21:32:28 2011
@@ -24,31 +24,14 @@ import javax.servlet.FilterConfig;
 import javax.servlet.ServletException;
 import javax.servlet.ServletRequest;
 import javax.servlet.ServletResponse;
-
 /**
- * A multipart filter that processes only initially dispatched requests.
- * Re-dispatched requests are ignored.
+ * Please use the CamelFilterWrapper instead of using this classs
  */
-class CamelMultipartFilter implements Filter {
-    private Filter wrapped;
-
-    public CamelMultipartFilter(Filter wrapped) {
-        this.wrapped = wrapped;
-    }
+@Deprecated 
+class CamelMultipartFilter extends CamelFilterWrapper {
     
-    public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {
-        if (request.getAttribute(CamelContinuationServlet.EXCHANGE_ATTRIBUTE_NAME) == null) {
-            wrapped.doFilter(request, response, chain);
-        } else {
-            chain.doFilter(request, response);
-        }
-    }
-
-    public void destroy() {
-        wrapped.destroy();
-    }
-
-    public void init(FilterConfig config) throws ServletException {
-        wrapped.init(config);
+    public CamelMultipartFilter(Filter wrapped) {
+        super(wrapped);
     }
+   
 }

Modified: camel/branches/camel-2.8.x/components/camel-jetty/src/main/java/org/apache/camel/component/jetty/JettyHttpComponent.java
URL: http://svn.apache.org/viewvc/camel/branches/camel-2.8.x/components/camel-jetty/src/main/java/org/apache/camel/component/jetty/JettyHttpComponent.java?rev=1172849&r1=1172848&r2=1172849&view=diff
==============================================================================
--- camel/branches/camel-2.8.x/components/camel-jetty/src/main/java/org/apache/camel/component/jetty/JettyHttpComponent.java (original)
+++ camel/branches/camel-2.8.x/components/camel-jetty/src/main/java/org/apache/camel/component/jetty/JettyHttpComponent.java Mon Sep 19 21:32:28 2011
@@ -143,6 +143,7 @@ public class JettyHttpComponent extends 
         Boolean enableMultipartFilter = getAndRemoveParameter(parameters, "enableMultipartFilter",
                                                               Boolean.class, true);
         Filter multipartFilter = resolveAndRemoveReferenceParameter(parameters, "multipartFilterRef", Filter.class);
+        List<Filter> filters = resolveAndRemoveReferenceListParameter(parameters, "filtersRef", Filter.class);
         Long continuationTimeout = getAndRemoveParameter(parameters, "continuationTimeout", Long.class);
         Boolean useContinuation = getAndRemoveParameter(parameters, "useContinuation", Boolean.class);
         SSLContextParameters sslContextParameters = resolveAndRemoveReferenceParameter(parameters, "sslContextParametersRef", SSLContextParameters.class);
@@ -234,7 +235,6 @@ public class JettyHttpComponent extends 
         if (matchOnUriPrefix != null) {
             endpoint.setMatchOnUriPrefix(matchOnUriPrefix);
         }
-        
         if (enableJmx != null) {
             endpoint.setEnableJmx(enableJmx);
         } else { 
@@ -248,6 +248,10 @@ public class JettyHttpComponent extends 
             endpoint.setMultipartFilter(multipartFilter);
             endpoint.setEnableMultipartFilter(true);
         }
+        
+        if (filters != null) {
+            endpoint.setFilters(filters);
+        }
 
         if (continuationTimeout != null) {
             endpoint.setContinuationTimeout(continuationTimeout);
@@ -316,10 +320,15 @@ public class JettyHttpComponent extends 
             if (endpoint.isEnableMultipartFilter()) {
                 enableMultipartFilter(endpoint, connectorRef.server, connectorKey);
             }
+            
+            if (endpoint.getFilters() != null && endpoint.getFilters().size() > 0) {
+                setFilters(endpoint, connectorRef.server, connectorKey);
+            }
             connectorRef.servlet.connect(consumer);
         }
     }
     
+
     private void enableJmx(Server server) {
         MBeanContainer containerToRegister = getMbContainer();
         if (containerToRegister != null) {
@@ -343,6 +352,25 @@ public class JettyHttpComponent extends 
         }
     }
     
+    private void setFilters(JettyHttpEndpoint endpoint, Server server, String connectorKey) {
+        ServletContextHandler context = (ServletContextHandler) server
+            .getChildHandlerByClass(ServletContextHandler.class);
+        List<Filter> filters = endpoint.getFilters();
+        for (Filter filter : filters) {
+            FilterHolder filterHolder = new FilterHolder();
+            filterHolder.setFilter(new CamelFilterWrapper(filter));
+            String pathSpec = endpoint.getPath();
+            if (pathSpec == null || "".equals(pathSpec)) {
+                pathSpec = "/";
+            }
+            if (endpoint.isMatchOnUriPrefix()) {
+                pathSpec = pathSpec.endsWith("/") ? pathSpec + "*" : pathSpec + "/*";
+            }
+            context.addFilter(filterHolder, pathSpec, 0);
+        }
+        
+    }
+    
     private void enableMultipartFilter(HttpEndpoint endpoint, Server server, String connectorKey) throws Exception {
         ServletContextHandler context = (ServletContextHandler) server
                 .getChildHandlerByClass(ServletContextHandler.class);
@@ -364,7 +392,7 @@ public class JettyHttpComponent extends 
             // if no filter ref was provided, use the default filter
             filter = new MultiPartFilter();
         }
-        filterHolder.setFilter(new CamelMultipartFilter(filter));
+        filterHolder.setFilter(new CamelFilterWrapper(filter));
         String pathSpec = endpoint.getPath();
         if (pathSpec == null || "".equals(pathSpec)) {
             pathSpec = "/";

Modified: camel/branches/camel-2.8.x/components/camel-jetty/src/main/java/org/apache/camel/component/jetty/JettyHttpEndpoint.java
URL: http://svn.apache.org/viewvc/camel/branches/camel-2.8.x/components/camel-jetty/src/main/java/org/apache/camel/component/jetty/JettyHttpEndpoint.java?rev=1172849&r1=1172848&r2=1172849&view=diff
==============================================================================
--- camel/branches/camel-2.8.x/components/camel-jetty/src/main/java/org/apache/camel/component/jetty/JettyHttpEndpoint.java (original)
+++ camel/branches/camel-2.8.x/components/camel-jetty/src/main/java/org/apache/camel/component/jetty/JettyHttpEndpoint.java Mon Sep 19 21:32:28 2011
@@ -44,6 +44,7 @@ public class JettyHttpEndpoint extends H
     private boolean enableJmx;
     private boolean enableMultipartFilter;
     private Filter multipartFilter;
+    private List<Filter> filters;
     private Long continuationTimeout;
     private Boolean useContinuation;
     private SSLContextParameters sslContextParameters;
@@ -137,6 +138,14 @@ public class JettyHttpEndpoint extends H
     public Filter getMultipartFilter() {
         return multipartFilter;
     }
+    
+    public void setFilters(List<Filter> filterList) {
+        this.filters = filterList;
+    }
+    
+    public List<Filter> getFilters() {
+        return filters;
+    }
 
     public Long getContinuationTimeout() {
         return continuationTimeout;