You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by he...@apache.org on 2015/04/09 22:14:10 UTC

camel git commit: [CAMEL-8554] Narrowed possible conversions to Pojo objects.

Repository: camel
Updated Branches:
  refs/heads/master 581910646 -> e4b5ecc4a


[CAMEL-8554] Narrowed possible conversions to Pojo objects.


Project: http://git-wip-us.apache.org/repos/asf/camel/repo
Commit: http://git-wip-us.apache.org/repos/asf/camel/commit/e4b5ecc4
Tree: http://git-wip-us.apache.org/repos/asf/camel/tree/e4b5ecc4
Diff: http://git-wip-us.apache.org/repos/asf/camel/diff/e4b5ecc4

Branch: refs/heads/master
Commit: e4b5ecc4a68c005ea773d300b148135acd70424a
Parents: 5819106
Author: Henryk Konsek <he...@gmail.com>
Authored: Thu Apr 9 22:14:01 2015 +0200
Committer: Henryk Konsek <he...@gmail.com>
Committed: Thu Apr 9 22:14:01 2015 +0200

----------------------------------------------------------------------
 .../converter/JacksonTypeConverters.java        | 12 ++++-
 .../jackson/JacksonConversionsSimpleTest.java   | 46 ++++++++++++++++++++
 2 files changed, 56 insertions(+), 2 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/camel/blob/e4b5ecc4/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 efe51ce..123cb2d 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,8 +30,7 @@ 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
+        if (isNotPojoType(type)) {
             return null;
         }
 
@@ -45,4 +44,13 @@ public final class JacksonTypeConverters {
         return null;
     }
 
+    private static boolean isNotPojoType(Class<?> type) {
+        boolean isString = String.class.isAssignableFrom(type);
+        boolean isNumber = Number.class.isAssignableFrom(type)
+                || int.class.isAssignableFrom(type) || long.class.isAssignableFrom(type)
+                || short.class.isAssignableFrom(type) || char.class.isAssignableFrom(type)
+                || float.class.isAssignableFrom(type) || double.class.isAssignableFrom(type);
+        return isString || isNumber;
+    }
+
 }

http://git-wip-us.apache.org/repos/asf/camel/blob/e4b5ecc4/components/camel-jackson/src/test/java/org/apache/camel/component/jackson/JacksonConversionsSimpleTest.java
----------------------------------------------------------------------
diff --git a/components/camel-jackson/src/test/java/org/apache/camel/component/jackson/JacksonConversionsSimpleTest.java b/components/camel-jackson/src/test/java/org/apache/camel/component/jackson/JacksonConversionsSimpleTest.java
new file mode 100644
index 0000000..868ebab
--- /dev/null
+++ b/components/camel-jackson/src/test/java/org/apache/camel/component/jackson/JacksonConversionsSimpleTest.java
@@ -0,0 +1,46 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.camel.component.jackson;
+
+import java.util.HashMap;
+
+import org.apache.camel.component.jackson.converter.JacksonTypeConverters;
+import org.junit.Assert;
+import org.junit.Test;
+
+public class JacksonConversionsSimpleTest extends Assert {
+
+    @Test
+    public void shouldNotConvertMapToString() {
+        Object convertedObject = JacksonTypeConverters.convertTo(String.class, null, new HashMap<String, String>(), null);
+        assertNull(convertedObject);
+    }
+
+    @Test
+    public void shouldNotConvertMapToNumber() {
+        Object convertedObject = JacksonTypeConverters.convertTo(Long.class, null, new HashMap<String, String>(), null);
+        assertNull(convertedObject);
+    }
+
+    @Test
+    public void shouldNotConvertMapToPrimitive() {
+        Object convertedObject = JacksonTypeConverters.convertTo(long.class, null, new HashMap<String, String>(), null);
+        assertNull(convertedObject);
+    }
+
+
+}