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/12/05 14:10:04 UTC

[camel] 01/02: CAMEL-15764: Setting properties via configurer should ignore case by default as end users may use mixed case and the API components rely on parameter names with a specific case

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 a177812a5486affd534bba9006f0f1fd4be7afbc
Author: Claus Ibsen <cl...@gmail.com>
AuthorDate: Sat Dec 5 13:14:46 2020 +0100

    CAMEL-15764: Setting properties via configurer should ignore case by default as end users may use mixed case and the API components rely on parameter names with a specific case
---
 .../java/org/apache/camel/reifier/dataformat/DataFormatReifier.java   | 1 +
 .../java/org/apache/camel/reifier/language/ExpressionReifier.java     | 1 +
 .../src/main/java/org/apache/camel/support/DefaultComponent.java      | 4 ++--
 .../src/main/java/org/apache/camel/support/DefaultEndpoint.java       | 4 ++--
 .../main/java/org/apache/camel/support/RestProducerFactoryHelper.java | 2 +-
 .../java/org/apache/camel/support/component/AbstractApiComponent.java | 1 +
 6 files changed, 8 insertions(+), 5 deletions(-)

diff --git a/core/camel-core-reifier/src/main/java/org/apache/camel/reifier/dataformat/DataFormatReifier.java b/core/camel-core-reifier/src/main/java/org/apache/camel/reifier/dataformat/DataFormatReifier.java
index e51fe35..f3e5dd4 100644
--- a/core/camel-core-reifier/src/main/java/org/apache/camel/reifier/dataformat/DataFormatReifier.java
+++ b/core/camel-core-reifier/src/main/java/org/apache/camel/reifier/dataformat/DataFormatReifier.java
@@ -317,6 +317,7 @@ public abstract class DataFormatReifier<T extends DataFormatDefinition> extends
                 .withTarget(dataFormat)
                 .withReference(true)
                 .withMandatory(true)
+                .withIgnoreCase(true)
                 .withConfigurer(configurer)
                 .withProperties(properties)
                 .bind();
diff --git a/core/camel-core-reifier/src/main/java/org/apache/camel/reifier/language/ExpressionReifier.java b/core/camel-core-reifier/src/main/java/org/apache/camel/reifier/language/ExpressionReifier.java
index dd775a1..4e50324 100644
--- a/core/camel-core-reifier/src/main/java/org/apache/camel/reifier/language/ExpressionReifier.java
+++ b/core/camel-core-reifier/src/main/java/org/apache/camel/reifier/language/ExpressionReifier.java
@@ -275,6 +275,7 @@ public class ExpressionReifier<T extends ExpressionDefinition> extends AbstractR
         }
         PropertyBindingSupport.build()
                 .withConfigurer(configurer)
+                .withIgnoreCase(true)
                 .bind(camelContext, target, properties);
     }
 
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 6df994b..cf3bdf1 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
@@ -447,8 +447,8 @@ public abstract class DefaultComponent extends ServiceSupport implements Compone
         } else {
             configurer = null;
         }
-        // use advanced binding
-        PropertyBindingSupport.build().withConfigurer(configurer).bind(camelContext, bean, parameters);
+        // use configurer and ignore case as end users may type an option name with mixed case
+        PropertyBindingSupport.build().withConfigurer(configurer).withIgnoreCase(true).bind(camelContext, bean, parameters);
     }
 
     @Override
diff --git a/core/camel-support/src/main/java/org/apache/camel/support/DefaultEndpoint.java b/core/camel-support/src/main/java/org/apache/camel/support/DefaultEndpoint.java
index 92d008f..3e89bba 100644
--- a/core/camel-support/src/main/java/org/apache/camel/support/DefaultEndpoint.java
+++ b/core/camel-support/src/main/java/org/apache/camel/support/DefaultEndpoint.java
@@ -427,8 +427,8 @@ public abstract class DefaultEndpoint extends ServiceSupport implements Endpoint
         } else if (bean instanceof PropertyConfigurerAware) {
             configurer = ((PropertyConfigurerAware) bean).getPropertyConfigurer(bean);
         }
-        // use advanced binding
-        PropertyBindingSupport.build().withConfigurer(configurer).bind(camelContext, bean, parameters);
+        // use configurer and ignore case as end users may type an option name with mixed case
+        PropertyBindingSupport.build().withConfigurer(configurer).withIgnoreCase(true).bind(camelContext, bean, parameters);
     }
 
     /**
diff --git a/core/camel-support/src/main/java/org/apache/camel/support/RestProducerFactoryHelper.java b/core/camel-support/src/main/java/org/apache/camel/support/RestProducerFactoryHelper.java
index d9b14a9..2910e83 100644
--- a/core/camel-support/src/main/java/org/apache/camel/support/RestProducerFactoryHelper.java
+++ b/core/camel-support/src/main/java/org/apache/camel/support/RestProducerFactoryHelper.java
@@ -76,7 +76,7 @@ public final class RestProducerFactoryHelper {
 
         // component was not added to the context we can configure it
         final Component newlyCreated = camelContext.getComponent(componentName, true, false);
-        PropertyBindingSupport.build().withRemoveParameters(false)
+        PropertyBindingSupport.build().withRemoveParameters(false).withIgnoreCase(true)
                 .withConfigurer(newlyCreated.getComponentPropertyConfigurer())
                 .bind(camelContext, newlyCreated, componentProperties);
         ServiceHelper.startService(newlyCreated);
diff --git a/core/camel-support/src/main/java/org/apache/camel/support/component/AbstractApiComponent.java b/core/camel-support/src/main/java/org/apache/camel/support/component/AbstractApiComponent.java
index 5090e33..38d9f1a 100644
--- a/core/camel-support/src/main/java/org/apache/camel/support/component/AbstractApiComponent.java
+++ b/core/camel-support/src/main/java/org/apache/camel/support/component/AbstractApiComponent.java
@@ -131,6 +131,7 @@ public abstract class AbstractApiComponent<E extends Enum<E> & ApiName, T, S ext
                 .resolvePropertyConfigurer(endpointConfiguration.getClass().getName(), getCamelContext());
         PropertyBindingSupport.build()
                 .withConfigurer(configurer)
+                .withIgnoreCase(true)
                 .bind(getCamelContext(), endpointConfiguration, componentProperties);
         return endpointConfiguration;
     }