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);
+ }
+
+
+}