You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by da...@apache.org on 2016/02/19 09:42:54 UTC
[1/2] camel git commit: CAMEL-9611: Restlet GET request should not
trying to stringify the exchange body
Repository: camel
Updated Branches:
refs/heads/camel-2.16.x dd59bf876 -> aefa04d4a
refs/heads/master 08665fecd -> 8b3da67b8
CAMEL-9611: Restlet GET request should not trying to stringify the exchange body
Project: http://git-wip-us.apache.org/repos/asf/camel/repo
Commit: http://git-wip-us.apache.org/repos/asf/camel/commit/8b3da67b
Tree: http://git-wip-us.apache.org/repos/asf/camel/tree/8b3da67b
Diff: http://git-wip-us.apache.org/repos/asf/camel/diff/8b3da67b
Branch: refs/heads/master
Commit: 8b3da67b8809fbbe3ba10a125df8eefba05e82ee
Parents: 08665fe
Author: Claus Ibsen <da...@apache.org>
Authored: Fri Feb 19 09:42:09 2016 +0100
Committer: Claus Ibsen <da...@apache.org>
Committed: Fri Feb 19 09:42:26 2016 +0100
----------------------------------------------------------------------
.../restlet/DefaultRestletBinding.java | 36 ++++++++++++--------
1 file changed, 22 insertions(+), 14 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/camel/blob/8b3da67b/components/camel-restlet/src/main/java/org/apache/camel/component/restlet/DefaultRestletBinding.java
----------------------------------------------------------------------
diff --git a/components/camel-restlet/src/main/java/org/apache/camel/component/restlet/DefaultRestletBinding.java b/components/camel-restlet/src/main/java/org/apache/camel/component/restlet/DefaultRestletBinding.java
index 69821b2..59cb219 100644
--- a/components/camel-restlet/src/main/java/org/apache/camel/component/restlet/DefaultRestletBinding.java
+++ b/components/camel-restlet/src/main/java/org/apache/camel/component/restlet/DefaultRestletBinding.java
@@ -150,17 +150,21 @@ public class DefaultRestletBinding implements RestletBinding, HeaderFilterStrate
public void populateRestletRequestFromExchange(Request request, Exchange exchange) {
request.setReferrerRef("camel-restlet");
- String body = exchange.getIn().getBody(String.class);
- Form form = new Form();
- // add the body as the key in the form with null value
- form.add(body, null);
+
+ final Method method = request.getMethod();
MediaType mediaType = exchange.getIn().getHeader(Exchange.CONTENT_TYPE, MediaType.class);
if (mediaType == null) {
mediaType = MediaType.APPLICATION_WWW_FORM;
}
- LOG.debug("Populate Restlet request from exchange body: {} using media type {}", body, mediaType);
+ Form form = null;
+ // Use forms only for PUT, POST and x-www-form-urlencoded
+ if ((Method.PUT == method || Method.POST == method) && mediaType == MediaType.APPLICATION_WWW_FORM) {
+ form = new Form();
+ String body = exchange.getIn().getBody(String.class);
+ form.add(body, null);
+ }
// login and password are filtered by header filter strategy
String login = exchange.getIn().getHeader(RestletConstants.RESTLET_LOGIN, String.class);
@@ -176,8 +180,8 @@ public class DefaultRestletBinding implements RestletBinding, HeaderFilterStrate
String key = entry.getKey();
Object value = entry.getValue();
if (!headerFilterStrategy.applyFilterToCamelHeaders(key, value, exchange)) {
- // Use forms only for GET and POST/x-www-form-urlencoded
- if (request.getMethod() == Method.GET || (request.getMethod() == Method.POST && mediaType == MediaType.APPLICATION_WWW_FORM)) {
+ // Use forms only for PUT, POST and x-www-form-urlencoded
+ if (form != null) {
if (key.startsWith("org.restlet.")) {
// put the org.restlet headers in attributes
request.getAttributes().put(key, value);
@@ -199,16 +203,19 @@ public class DefaultRestletBinding implements RestletBinding, HeaderFilterStrate
}
}
- LOG.debug("Using Content Type: {} for POST data: {}", mediaType, body);
-
- // Only URL Encode for GET and form POST
- if (request.getMethod() == Method.GET || (request.getMethod() == Method.POST && mediaType == MediaType.APPLICATION_WWW_FORM)) {
+ if (form != null) {
request.setEntity(form.getWebRepresentation());
+ LOG.debug("Populate Restlet {} request from exchange body as form using media type {}", method, mediaType);
} else {
- if (body == null) {
- request.setEntity(null);
- } else {
+ // include body if PUT or POST
+ if (request.getMethod() == Method.PUT || request.getMethod() == Method.POST) {
+ String body = exchange.getIn().getBody(String.class);
request.setEntity(body, mediaType);
+ LOG.debug("Populate Restlet {} request from exchange body: {} using media type {}", method, body, mediaType);
+ } else {
+ // no body
+ LOG.debug("Populate Restlet {} request from exchange using media type {}", method, mediaType);
+ request.setEntity(null);
}
}
@@ -224,6 +231,7 @@ public class DefaultRestletBinding implements RestletBinding, HeaderFilterStrate
if (acceptedMediaType != null) {
request.getClientInfo().getAcceptedMediaTypes().add(new Preference<MediaType>(acceptedMediaType));
}
+
}
public void populateRestletResponseFromExchange(Exchange exchange, Response response) throws Exception {
[2/2] camel git commit: CAMEL-9611: Restlet GET request should not
trying to stringify the exchange body
Posted by da...@apache.org.
CAMEL-9611: Restlet GET request should not trying to stringify the exchange body
Project: http://git-wip-us.apache.org/repos/asf/camel/repo
Commit: http://git-wip-us.apache.org/repos/asf/camel/commit/aefa04d4
Tree: http://git-wip-us.apache.org/repos/asf/camel/tree/aefa04d4
Diff: http://git-wip-us.apache.org/repos/asf/camel/diff/aefa04d4
Branch: refs/heads/camel-2.16.x
Commit: aefa04d4a07d76bc8f036842fac4dd1a3de2fe75
Parents: dd59bf8
Author: Claus Ibsen <da...@apache.org>
Authored: Fri Feb 19 09:42:09 2016 +0100
Committer: Claus Ibsen <da...@apache.org>
Committed: Fri Feb 19 09:42:45 2016 +0100
----------------------------------------------------------------------
.../restlet/DefaultRestletBinding.java | 36 ++++++++++++--------
1 file changed, 22 insertions(+), 14 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/camel/blob/aefa04d4/components/camel-restlet/src/main/java/org/apache/camel/component/restlet/DefaultRestletBinding.java
----------------------------------------------------------------------
diff --git a/components/camel-restlet/src/main/java/org/apache/camel/component/restlet/DefaultRestletBinding.java b/components/camel-restlet/src/main/java/org/apache/camel/component/restlet/DefaultRestletBinding.java
index 121bf73..fa671e7 100644
--- a/components/camel-restlet/src/main/java/org/apache/camel/component/restlet/DefaultRestletBinding.java
+++ b/components/camel-restlet/src/main/java/org/apache/camel/component/restlet/DefaultRestletBinding.java
@@ -150,17 +150,21 @@ public class DefaultRestletBinding implements RestletBinding, HeaderFilterStrate
public void populateRestletRequestFromExchange(Request request, Exchange exchange) {
request.setReferrerRef("camel-restlet");
- String body = exchange.getIn().getBody(String.class);
- Form form = new Form();
- // add the body as the key in the form with null value
- form.add(body, null);
+
+ final Method method = request.getMethod();
MediaType mediaType = exchange.getIn().getHeader(Exchange.CONTENT_TYPE, MediaType.class);
if (mediaType == null) {
mediaType = MediaType.APPLICATION_WWW_FORM;
}
- LOG.debug("Populate Restlet request from exchange body: {} using media type {}", body, mediaType);
+ Form form = null;
+ // Use forms only for PUT, POST and x-www-form-urlencoded
+ if ((Method.PUT == method || Method.POST == method) && mediaType == MediaType.APPLICATION_WWW_FORM) {
+ form = new Form();
+ String body = exchange.getIn().getBody(String.class);
+ form.add(body, null);
+ }
// login and password are filtered by header filter strategy
String login = exchange.getIn().getHeader(RestletConstants.RESTLET_LOGIN, String.class);
@@ -176,8 +180,8 @@ public class DefaultRestletBinding implements RestletBinding, HeaderFilterStrate
String key = entry.getKey();
Object value = entry.getValue();
if (!headerFilterStrategy.applyFilterToCamelHeaders(key, value, exchange)) {
- // Use forms only for GET and POST/x-www-form-urlencoded
- if (request.getMethod() == Method.GET || (request.getMethod() == Method.POST && mediaType == MediaType.APPLICATION_WWW_FORM)) {
+ // Use forms only for PUT, POST and x-www-form-urlencoded
+ if (form != null) {
if (key.startsWith("org.restlet.")) {
// put the org.restlet headers in attributes
request.getAttributes().put(key, value);
@@ -199,16 +203,19 @@ public class DefaultRestletBinding implements RestletBinding, HeaderFilterStrate
}
}
- LOG.debug("Using Content Type: {} for POST data: {}", mediaType, body);
-
- // Only URL Encode for GET and form POST
- if (request.getMethod() == Method.GET || (request.getMethod() == Method.POST && mediaType == MediaType.APPLICATION_WWW_FORM)) {
+ if (form != null) {
request.setEntity(form.getWebRepresentation());
+ LOG.debug("Populate Restlet {} request from exchange body as form using media type {}", method, mediaType);
} else {
- if (body == null) {
- request.setEntity(null);
- } else {
+ // include body if PUT or POST
+ if (request.getMethod() == Method.PUT || request.getMethod() == Method.POST) {
+ String body = exchange.getIn().getBody(String.class);
request.setEntity(body, mediaType);
+ LOG.debug("Populate Restlet {} request from exchange body: {} using media type {}", method, body, mediaType);
+ } else {
+ // no body
+ LOG.debug("Populate Restlet {} request from exchange using media type {}", method, mediaType);
+ request.setEntity(null);
}
}
@@ -224,6 +231,7 @@ public class DefaultRestletBinding implements RestletBinding, HeaderFilterStrate
if (acceptedMediaType != null) {
request.getClientInfo().getAcceptedMediaTypes().add(new Preference<MediaType>(acceptedMediaType));
}
+
}
public void populateRestletResponseFromExchange(Exchange exchange, Response response) throws Exception {