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;