Repository: camel Updated Branches: refs/heads/master 780b41b47 -> 116e4026f
[CAMEL-8554] Jackons component now provides map => pojo fallback converter. Project: http://git-wip-us.apache.org/repos/asf/camel/repo Commit: http://git-wip-us.apache.org/repos/asf/camel/commit/116e4026 Tree: http://git-wip-us.apache.org/repos/asf/camel/tree/116e4026 Diff: http://git-wip-us.apache.org/repos/asf/camel/diff/116e4026 Branch: refs/heads/master Commit: 116e4026fb3d284eaadba26bddf5ebd02a658b65 Parents: f678aa4 Author: Claus Ibsen <[email protected]> Authored: Tue Mar 31 11:32:55 2015 +0200 Committer: Claus Ibsen <[email protected]> Committed: Tue Mar 31 11:48:04 2015 +0200 ---------------------------------------------------------------------- .../jackson/converter/JacksonTypeConverters.java | 13 ++++++++----- .../component/jackson/JacksonConversionsTest.java | 2 -- .../camel/component/jetty/DefaultJettyHttpBinding.java | 2 +- 3 files changed, 9 insertions(+), 8 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/camel/blob/116e4026/components/camel-jackson/src/main/java/org/apache/camel/component/jackson/converter/JacksonTypeConverters.java ---------------------------------------------------------------------- diff --git a/components/camel-jackson/src/main/java/org/apache/camel/component/jackson/converter/JacksonTypeConverters.java b/components/camel-jackson/src/main/java/org/apache/camel/component/jackson/converter/JacksonTypeConverters.java index 6db03a1..efe51ce 100644 --- a/components/camel-jackson/src/main/java/org/apache/camel/component/jackson/converter/JacksonTypeConverters.java +++ b/components/camel-jackson/src/main/java/org/apache/camel/component/jackson/converter/JacksonTypeConverters.java @@ -30,12 +30,15 @@ public final class JacksonTypeConverters { @FallbackConverter public static <T> T convertTo(Class<T> type, Exchange exchange, Object value, TypeConverterRegistry registry) { + if (type.isAssignableFrom(String.class)) { + // do not convert to String + return null; + } + if (value instanceof Map) { - try { - return new ObjectMapper().convertValue(value, type); - } catch (Exception ex) { - // Just catch the exception and return null when the ObjectMapper cannot convert the value - return null; + ObjectMapper mapper = new ObjectMapper(); + if (mapper.canSerialize(type)) { + return mapper.convertValue(value, type); } } // Just return null to let other fallback converter to do the job http://git-wip-us.apache.org/repos/asf/camel/blob/116e4026/components/camel-jackson/src/test/java/org/apache/camel/component/jackson/JacksonConversionsTest.java ---------------------------------------------------------------------- diff --git a/components/camel-jackson/src/test/java/org/apache/camel/component/jackson/JacksonConversionsTest.java b/components/camel-jackson/src/test/java/org/apache/camel/component/jackson/JacksonConversionsTest.java index 20427b5..0daf1cc 100644 --- a/components/camel-jackson/src/test/java/org/apache/camel/component/jackson/JacksonConversionsTest.java +++ b/components/camel-jackson/src/test/java/org/apache/camel/component/jackson/JacksonConversionsTest.java @@ -20,12 +20,10 @@ import java.util.HashMap; import java.util.Map; import org.apache.camel.builder.RouteBuilder; -import org.apache.camel.component.mock.MockEndpoint; import org.apache.camel.test.junit4.CamelTestSupport; import org.junit.Test; public class JacksonConversionsTest extends CamelTestSupport { - protected MockEndpoint results; @Test public void shouldConvertMapToPojo() { http://git-wip-us.apache.org/repos/asf/camel/blob/116e4026/components/camel-jetty-common/src/main/java/org/apache/camel/component/jetty/DefaultJettyHttpBinding.java ---------------------------------------------------------------------- diff --git a/components/camel-jetty-common/src/main/java/org/apache/camel/component/jetty/DefaultJettyHttpBinding.java b/components/camel-jetty-common/src/main/java/org/apache/camel/component/jetty/DefaultJettyHttpBinding.java index 7b73a8a..8c55d3e 100644 --- a/components/camel-jetty-common/src/main/java/org/apache/camel/component/jetty/DefaultJettyHttpBinding.java +++ b/components/camel-jetty-common/src/main/java/org/apache/camel/component/jetty/DefaultJettyHttpBinding.java @@ -44,8 +44,8 @@ public class DefaultJettyHttpBinding implements JettyHttpBinding { private HeaderFilterStrategy headerFilterStrategy = new HttpHeaderFilterStrategy(); private boolean throwExceptionOnFailure; private boolean transferException; + public DefaultJettyHttpBinding() { - } public void populateResponse(Exchange exchange, JettyContentExchange httpExchange) throws Exception {
