You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by ni...@apache.org on 2010/04/26 05:11:39 UTC
svn commit: r937920 - in /camel/trunk/components:
camel-http/src/main/java/org/apache/camel/component/http/DefaultHttpBinding.java
camel-http4/src/main/java/org/apache/camel/component/http4/DefaultHttpBinding.java
Author: ningjiang
Date: Mon Apr 26 03:11:39 2010
New Revision: 937920
URL: http://svn.apache.org/viewvc?rev=937920&view=rev
Log:
CAMEL-2673 Refactored the DefaultHttpBinding so user can override it easily
Modified:
camel/trunk/components/camel-http/src/main/java/org/apache/camel/component/http/DefaultHttpBinding.java
camel/trunk/components/camel-http4/src/main/java/org/apache/camel/component/http4/DefaultHttpBinding.java
Modified: camel/trunk/components/camel-http/src/main/java/org/apache/camel/component/http/DefaultHttpBinding.java
URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-http/src/main/java/org/apache/camel/component/http/DefaultHttpBinding.java?rev=937920&r1=937919&r2=937920&view=diff
==============================================================================
--- camel/trunk/components/camel-http/src/main/java/org/apache/camel/component/http/DefaultHttpBinding.java (original)
+++ camel/trunk/components/camel-http/src/main/java/org/apache/camel/component/http/DefaultHttpBinding.java Mon Apr 26 03:11:39 2010
@@ -58,15 +58,12 @@ public class DefaultHttpBinding implemen
}
public void readRequest(HttpServletRequest request, HttpMessage message) {
- // lets parser the parameterMap first to avoid consuming the POST parameters as InputStream
- Map parameterMap = request.getParameterMap();
-
+
// lets force a parse of the body and headers
message.getBody();
// populate the headers from the request
Map<String, Object> headers = message.getHeaders();
- String contentType = "";
//apply the headerFilterStrategy
Enumeration names = request.getHeaderNames();
while (names.hasMoreElements()) {
@@ -75,7 +72,6 @@ public class DefaultHttpBinding implemen
// mapping the content-type
if (name.toLowerCase().equals("content-type")) {
name = Exchange.CONTENT_TYPE;
- contentType = (String) value;
}
if (headerFilterStrategy != null
&& !headerFilterStrategy.applyFilterToExternalHeaders(name, value, message.getExchange())) {
@@ -83,17 +79,7 @@ public class DefaultHttpBinding implemen
}
}
- //we populate the http request parameters without checking the request method
-
- names = request.getParameterNames();
- while (names.hasMoreElements()) {
- String name = (String)names.nextElement();
- Object value = request.getParameter(name);
- if (headerFilterStrategy != null
- && !headerFilterStrategy.applyFilterToExternalHeaders(name, value, message.getExchange())) {
- headers.put(name, value);
- }
- }
+ popluateRequestParameters(request, message);
// store the method and query and other info in headers
headers.put(Exchange.HTTP_METHOD, request.getMethod());
@@ -104,8 +90,26 @@ public class DefaultHttpBinding implemen
headers.put(Exchange.CONTENT_TYPE, request.getContentType());
headers.put(Exchange.HTTP_CHARACTER_ENCODING, request.getCharacterEncoding());
+ popluateAttachments(request, message);
+ }
+
+ protected void popluateRequestParameters(HttpServletRequest request, HttpMessage message) {
+ //we populate the http request parameters without checking the request method
+ Map<String, Object> headers = message.getHeaders();
+ Enumeration names = request.getParameterNames();
+ while (names.hasMoreElements()) {
+ String name = (String)names.nextElement();
+ Object value = request.getParameter(name);
+ if (headerFilterStrategy != null
+ && !headerFilterStrategy.applyFilterToExternalHeaders(name, value, message.getExchange())) {
+ headers.put(name, value);
+ }
+ }
+ }
+
+ protected void popluateAttachments(HttpServletRequest request, HttpMessage message) {
// check if there is multipart files, if so will put it into DataHandler
- names = request.getAttributeNames();
+ Enumeration names = request.getAttributeNames();
while (names.hasMoreElements()) {
String name = (String) names.nextElement();
Object object = request.getAttribute(name);
Modified: camel/trunk/components/camel-http4/src/main/java/org/apache/camel/component/http4/DefaultHttpBinding.java
URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-http4/src/main/java/org/apache/camel/component/http4/DefaultHttpBinding.java?rev=937920&r1=937919&r2=937920&view=diff
==============================================================================
--- camel/trunk/components/camel-http4/src/main/java/org/apache/camel/component/http4/DefaultHttpBinding.java (original)
+++ camel/trunk/components/camel-http4/src/main/java/org/apache/camel/component/http4/DefaultHttpBinding.java Mon Apr 26 03:11:39 2010
@@ -57,42 +57,30 @@ public class DefaultHttpBinding implemen
this.headerFilterStrategy = headerFilterStrategy;
}
- @SuppressWarnings("unchecked")
public void readRequest(HttpServletRequest request, HttpMessage message) {
- // lets parser the parameterMap first to avoid consuming the POST parameters as InputStream
- request.getParameterMap();
// lets force a parse of the body and headers
message.getBody();
// populate the headers from the request
Map<String, Object> headers = message.getHeaders();
-
+
//apply the headerFilterStrategy
Enumeration names = request.getHeaderNames();
while (names.hasMoreElements()) {
- String name = (String) names.nextElement();
+ String name = (String)names.nextElement();
Object value = request.getHeader(name);
// mapping the content-type
if (name.toLowerCase().equals("content-type")) {
name = Exchange.CONTENT_TYPE;
}
if (headerFilterStrategy != null
- && !headerFilterStrategy.applyFilterToExternalHeaders(name, value, message.getExchange())) {
- headers.put(name, value);
- }
- }
-
- //we populate the http request parameters without checking the request method
- names = request.getParameterNames();
- while (names.hasMoreElements()) {
- String name = (String) names.nextElement();
- Object value = request.getParameter(name);
- if (headerFilterStrategy != null
- && !headerFilterStrategy.applyFilterToExternalHeaders(name, value, message.getExchange())) {
+ && !headerFilterStrategy.applyFilterToExternalHeaders(name, value, message.getExchange())) {
headers.put(name, value);
}
}
+ popluateRequestParameters(request, message);
+
// store the method and query and other info in headers
headers.put(Exchange.HTTP_METHOD, request.getMethod());
headers.put(Exchange.HTTP_QUERY, request.getQueryString());
@@ -102,8 +90,26 @@ public class DefaultHttpBinding implemen
headers.put(Exchange.CONTENT_TYPE, request.getContentType());
headers.put(Exchange.HTTP_CHARACTER_ENCODING, request.getCharacterEncoding());
+ popluateAttachments(request, message);
+ }
+
+ protected void popluateRequestParameters(HttpServletRequest request, HttpMessage message) {
+ //we populate the http request parameters without checking the request method
+ Map<String, Object> headers = message.getHeaders();
+ Enumeration names = request.getParameterNames();
+ while (names.hasMoreElements()) {
+ String name = (String)names.nextElement();
+ Object value = request.getParameter(name);
+ if (headerFilterStrategy != null
+ && !headerFilterStrategy.applyFilterToExternalHeaders(name, value, message.getExchange())) {
+ headers.put(name, value);
+ }
+ }
+ }
+
+ protected void popluateAttachments(HttpServletRequest request, HttpMessage message) {
// check if there is multipart files, if so will put it into DataHandler
- names = request.getAttributeNames();
+ Enumeration names = request.getAttributeNames();
while (names.hasMoreElements()) {
String name = (String) names.nextElement();
Object object = request.getAttribute(name);
@@ -112,7 +118,6 @@ public class DefaultHttpBinding implemen
message.addAttachment(fileName, new DataHandler(new FileDataSource((File)object), FileTypeMap.getDefaultFileTypeMap().getContentType(fileName)));
}
}
-
}
public void writeResponse(Exchange exchange, HttpServletResponse response) throws IOException {