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 2020/10/12 11:24:50 UTC

[camel] 02/03: CAMEL-15622: Prefer bean instance in endpoint DSL

This is an automated email from the ASF dual-hosted git repository.

davsclaus pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/camel.git

commit 2b13a0138e42b4f27623cb637845d970c907ad96
Author: Adam Ostrožlík <ad...@yandex.com>
AuthorDate: Sat Oct 10 19:26:44 2020 +0200

    CAMEL-15622: Prefer bean instance in endpoint DSL
    
    Do not search in registry using wrong string representation of a bean, return the bean directly instead
---
 .../src/main/java/org/apache/camel/support/DefaultComponent.java       | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/core/camel-support/src/main/java/org/apache/camel/support/DefaultComponent.java b/core/camel-support/src/main/java/org/apache/camel/support/DefaultComponent.java
index 15cafd2..0161c32 100644
--- a/core/camel-support/src/main/java/org/apache/camel/support/DefaultComponent.java
+++ b/core/camel-support/src/main/java/org/apache/camel/support/DefaultComponent.java
@@ -551,6 +551,9 @@ public abstract class DefaultComponent extends ServiceSupport implements Compone
      * @throws IllegalArgumentException if referenced object was not found in registry.
      */
     public <T> T resolveAndRemoveReferenceParameter(Map<String, Object> parameters, String key, Class<T> type, T defaultValue) {
+        if (parameters.containsKey(key) && type.isInstance(parameters.get(key).getClass())) {
+            return type.cast(parameters.remove(key));
+        }
         String value = getAndRemoveParameter(parameters, key, String.class);
         if (value == null) {
             return defaultValue;