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

davsclaus pushed a commit to branch CAMEL-26297-language-configurers
in repository https://gitbox.apache.org/repos/asf/camel.git

commit 5e3ffe52b79b8165dd85b89ba29889c383432086
Author: Claus Ibsen <[email protected]>
AuthorDate: Sun Oct 25 11:24:07 2026 +0100

    CAMEL-26297: camel-package-maven-plugin - generate a property configurer 
for languages
    
    camel-main bound camel.language.<name>.<option> by reflection, as languages 
had
    no configurer.
    
    - PackageLanguageMojo generates <Language>Configurer for every language 
from its
      @Metadata options (CAMEL-26296), registered as <name>-language, as data 
formats
      are registered as <name>-dataformat.
    - camel-main finds the configurer of camel.language.<name> and
      camel.dataformat.<name> by that name. A data format whose name cannot be 
told
      from its class (jacksonXml, bindyCsv, ...) was bound by reflection 
before. A
      configurer is only used for the type it was generated for.
    - generatePropertyConfigurer moves from PackageDataFormatMojo to
      AbstractGeneratorMojo, shared by both.
    
    Co-Authored-By: Claude Opus 5.5 (1M context) <[email protected]>
    Signed-off-by: Claus Ibsen <[email protected]>
---
 .../semantic/SemanticLanguageConfigurer.java       |  63 +++++++++
 .../org/apache/camel/configurer/semantic-language  |   2 +
 .../typesafeai/TypeSafeAiLanguageConfigurer.java   |  79 +++++++++++
 .../apache/camel/configurer/typesafe-ai-language   |   2 +
 .../language/bean/BeanLanguageConfigurer.java      |  60 ++++++++
 .../org/apache/camel/configurer/bean-language      |   2 +
 .../datasonnet/DatasonnetLanguageConfigurer.java   |  48 +++++++
 .../apache/camel/configurer/datasonnet-language    |   2 +
 .../language/groovy/GroovyLanguageConfigurer.java  |  48 +++++++
 .../org/apache/camel/configurer/groovy-language    |   2 +
 .../component/hl7/Hl7TerserLanguageConfigurer.java |  48 +++++++
 .../org/apache/camel/configurer/hl7terser-language |   2 +
 .../language/jactl/JactlLanguageConfigurer.java    |  48 +++++++
 .../org/apache/camel/configurer/jactl-language     |   2 +
 .../language/js/JavaScriptLanguageConfigurer.java  |  48 +++++++
 .../org/apache/camel/configurer/js-language        |   2 +
 .../language/joor/JavaLanguageConfigurer.java      |  77 +++++++++++
 .../org/apache/camel/configurer/java-language      |   2 +
 .../camel/language/jq/JqLanguageConfigurer.java    |  48 +++++++
 .../org/apache/camel/configurer/jq-language        |   2 +
 .../camel/jsonpath/JsonPathLanguageConfigurer.java |  95 +++++++++++++
 .../org/apache/camel/configurer/jsonpath-language  |   2 +
 .../apache/camel/jsonpath/JsonPathOptionsTest.java |  19 +++
 .../language/mvel/MvelLanguageConfigurer.java      |  48 +++++++
 .../org/apache/camel/configurer/mvel-language      |   2 +
 .../language/ognl/OgnlLanguageConfigurer.java      |  48 +++++++
 .../org/apache/camel/configurer/ognl-language      |   2 +
 .../openfeature/OpenFeatureLanguageConfigurer.java |  60 ++++++++
 .../apache/camel/configurer/openfeature-language   |   2 +
 .../language/python/PythonLanguageConfigurer.java  |  48 +++++++
 .../org/apache/camel/configurer/python-language    |   2 +
 .../python3/Python3LanguageConfigurer.java         |  48 +++++++
 .../org/apache/camel/configurer/python3-language   |   2 +
 .../quickjs/QuickjsLanguageConfigurer.java         |  70 ++++++++++
 .../org/apache/camel/configurer/quickjs-language   |   2 +
 .../language/xquery/XQueryLanguageConfigurer.java  |  60 ++++++++
 .../org/apache/camel/configurer/xquery-language    |   2 +
 .../language/spel/SpelLanguageConfigurer.java      |  48 +++++++
 .../org/apache/camel/configurer/spel-language      |   2 +
 .../xtokenizer/XMLTokenizeLanguageConfigurer.java  |  48 +++++++
 .../org/apache/camel/configurer/xtokenize-language |   2 +
 .../language/xpath/XPathLanguageConfigurer.java    | 109 +++++++++++++++
 .../org/apache/camel/configurer/xpath-language     |   2 +
 .../constant/ConstantLanguageConfigurer.java       |  48 +++++++
 .../language/header/HeaderLanguageConfigurer.java  |  48 +++++++
 .../ExchangePropertyLanguageConfigurer.java        |  48 +++++++
 .../camel/language/ref/RefLanguageConfigurer.java  |  48 +++++++
 .../language/simple/FileLanguageConfigurer.java    |  48 +++++++
 .../language/simple/SimpleLanguageConfigurer.java  |  48 +++++++
 .../tokenizer/TokenizeLanguageConfigurer.java      |  48 +++++++
 .../variable/VariableLanguageConfigurer.java       |  48 +++++++
 .../org/apache/camel/configurer/constant-language  |   2 +
 .../camel/configurer/exchangeProperty-language     |   2 +
 .../org/apache/camel/configurer/file-language      |   2 +
 .../org/apache/camel/configurer/header-language    |   2 +
 .../org/apache/camel/configurer/ref-language       |   2 +
 .../org/apache/camel/configurer/simple-language    |   2 +
 .../org/apache/camel/configurer/tokenize-language  |   2 +
 .../org/apache/camel/configurer/variable-language  |   2 +
 .../org/apache/camel/main/BaseMainSupport.java     |   3 +-
 .../java/org/apache/camel/main/MainHelper.java     |  46 ++++++-
 .../camel/main/MainConfigurerByNameTest.java       | 152 +++++++++++++++++++++
 .../org/apache/camel/configurer/mydf-dataformat    |   1 +
 .../org/apache/camel/configurer/mylang-language    |   1 +
 .../org/apache/camel/configurer/otherlang-language |   1 +
 .../maven/packaging/AbstractGeneratorMojo.java     |  33 +++++
 .../maven/packaging/PackageDataFormatMojo.java     |  31 -----
 .../camel/maven/packaging/PackageLanguageMojo.java |  27 ++++
 .../maven/packaging/PrepareComponentMojo.java      |   2 +-
 .../maven/packaging/PackageLanguageMojoTest.java   |  31 ++++-
 70 files changed, 2001 insertions(+), 37 deletions(-)

diff --git 
a/components/camel-ai/camel-semantic/src/generated/java/org/apache/camel/language/semantic/SemanticLanguageConfigurer.java
 
b/components/camel-ai/camel-semantic/src/generated/java/org/apache/camel/language/semantic/SemanticLanguageConfigurer.java
new file mode 100644
index 000000000000..7be98f4b72a6
--- /dev/null
+++ 
b/components/camel-ai/camel-semantic/src/generated/java/org/apache/camel/language/semantic/SemanticLanguageConfigurer.java
@@ -0,0 +1,63 @@
+/* Generated by camel build tools - do NOT edit this file! */
+package org.apache.camel.language.semantic;
+
+import javax.annotation.processing.Generated;
+import java.util.Map;
+
+import org.apache.camel.CamelContext;
+import org.apache.camel.spi.ExtendedPropertyConfigurerGetter;
+import org.apache.camel.spi.PropertyConfigurerGetter;
+import org.apache.camel.spi.ConfigurerStrategy;
+import org.apache.camel.spi.GeneratedPropertyConfigurer;
+import org.apache.camel.util.CaseInsensitiveMap;
+import org.apache.camel.support.component.PropertyConfigurerSupport;
+
+/**
+ * Generated by camel build tools - do NOT edit this file!
+ */
+@Generated("org.apache.camel.maven.packaging.PackageLanguageMojo")
+@SuppressWarnings("unchecked")
+public class SemanticLanguageConfigurer extends 
org.apache.camel.support.component.PropertyConfigurerSupport implements 
GeneratedPropertyConfigurer, ExtendedPropertyConfigurerGetter {
+
+    private static final Map<String, Object> ALL_OPTIONS;
+    static {
+        Map<String, Object> map = new CaseInsensitiveMap();
+        map.put("DefaultState", java.lang.String.class);
+        ALL_OPTIONS = map;
+    }
+
+    @Override
+    public boolean configure(CamelContext camelContext, Object obj, String 
name, Object value, boolean ignoreCase) {
+        SemanticLanguage target = (SemanticLanguage) obj;
+        switch (ignoreCase ? name.toLowerCase() : name) {
+        case "defaultstate":
+        case "defaultState": target.setDefaultState(property(camelContext, 
java.lang.String.class, value)); return true;
+        default: return false;
+        }
+    }
+
+    @Override
+    public Map<String, Object> getAllOptions(Object target) {
+        return ALL_OPTIONS;
+    }
+
+    @Override
+    public Class<?> getOptionType(String name, boolean ignoreCase) {
+        switch (ignoreCase ? name.toLowerCase() : name) {
+        case "defaultstate":
+        case "defaultState": return java.lang.String.class;
+        default: return null;
+        }
+    }
+
+    @Override
+    public Object getOptionValue(Object obj, String name, boolean ignoreCase) {
+        SemanticLanguage target = (SemanticLanguage) obj;
+        switch (ignoreCase ? name.toLowerCase() : name) {
+        case "defaultstate":
+        case "defaultState": return target.getDefaultState();
+        default: return null;
+        }
+    }
+}
+
diff --git 
a/components/camel-ai/camel-semantic/src/generated/resources/META-INF/services/org/apache/camel/configurer/semantic-language
 
b/components/camel-ai/camel-semantic/src/generated/resources/META-INF/services/org/apache/camel/configurer/semantic-language
new file mode 100644
index 000000000000..7e7dcdf2310c
--- /dev/null
+++ 
b/components/camel-ai/camel-semantic/src/generated/resources/META-INF/services/org/apache/camel/configurer/semantic-language
@@ -0,0 +1,2 @@
+# Generated by camel build tools - do NOT edit this file!
+class=org.apache.camel.language.semantic.SemanticLanguageConfigurer
diff --git 
a/components/camel-ai/camel-typesafe-ai/src/generated/java/org/apache/camel/language/typesafeai/TypeSafeAiLanguageConfigurer.java
 
b/components/camel-ai/camel-typesafe-ai/src/generated/java/org/apache/camel/language/typesafeai/TypeSafeAiLanguageConfigurer.java
new file mode 100644
index 000000000000..5dd88beae20c
--- /dev/null
+++ 
b/components/camel-ai/camel-typesafe-ai/src/generated/java/org/apache/camel/language/typesafeai/TypeSafeAiLanguageConfigurer.java
@@ -0,0 +1,79 @@
+/* Generated by camel build tools - do NOT edit this file! */
+package org.apache.camel.language.typesafeai;
+
+import javax.annotation.processing.Generated;
+import java.util.Map;
+
+import org.apache.camel.CamelContext;
+import org.apache.camel.spi.ExtendedPropertyConfigurerGetter;
+import org.apache.camel.spi.PropertyConfigurerGetter;
+import org.apache.camel.spi.ConfigurerStrategy;
+import org.apache.camel.spi.GeneratedPropertyConfigurer;
+import org.apache.camel.util.CaseInsensitiveMap;
+import org.apache.camel.support.component.PropertyConfigurerSupport;
+
+/**
+ * Generated by camel build tools - do NOT edit this file!
+ */
+@Generated("org.apache.camel.maven.packaging.PackageLanguageMojo")
+@SuppressWarnings("unchecked")
+public class TypeSafeAiLanguageConfigurer extends 
org.apache.camel.support.component.PropertyConfigurerSupport implements 
GeneratedPropertyConfigurer, ExtendedPropertyConfigurerGetter {
+
+    private static final Map<String, Object> ALL_OPTIONS;
+    static {
+        Map<String, Object> map = new CaseInsensitiveMap();
+        map.put("Endpoint", java.lang.String.class);
+        map.put("State", java.lang.String.class);
+        map.put("Threshold", java.lang.Double.class);
+        map.put("Uncertainty", java.lang.Double.class);
+        map.put("UncertaintyPolicy", 
org.apache.camel.language.typesafeai.TypeSafeAiLanguage.UncertaintyPolicy.class);
+        ALL_OPTIONS = map;
+    }
+
+    @Override
+    public boolean configure(CamelContext camelContext, Object obj, String 
name, Object value, boolean ignoreCase) {
+        TypeSafeAiLanguage target = (TypeSafeAiLanguage) obj;
+        switch (ignoreCase ? name.toLowerCase() : name) {
+        case "endpoint": target.setEndpoint(property(camelContext, 
java.lang.String.class, value)); return true;
+        case "state": target.setState(property(camelContext, 
java.lang.String.class, value)); return true;
+        case "threshold": target.setThreshold(property(camelContext, 
java.lang.Double.class, value)); return true;
+        case "uncertainty": target.setUncertainty(property(camelContext, 
java.lang.Double.class, value)); return true;
+        case "uncertaintypolicy":
+        case "uncertaintyPolicy": 
target.setUncertaintyPolicy(property(camelContext, 
org.apache.camel.language.typesafeai.TypeSafeAiLanguage.UncertaintyPolicy.class,
 value)); return true;
+        default: return false;
+        }
+    }
+
+    @Override
+    public Map<String, Object> getAllOptions(Object target) {
+        return ALL_OPTIONS;
+    }
+
+    @Override
+    public Class<?> getOptionType(String name, boolean ignoreCase) {
+        switch (ignoreCase ? name.toLowerCase() : name) {
+        case "endpoint": return java.lang.String.class;
+        case "state": return java.lang.String.class;
+        case "threshold": return java.lang.Double.class;
+        case "uncertainty": return java.lang.Double.class;
+        case "uncertaintypolicy":
+        case "uncertaintyPolicy": return 
org.apache.camel.language.typesafeai.TypeSafeAiLanguage.UncertaintyPolicy.class;
+        default: return null;
+        }
+    }
+
+    @Override
+    public Object getOptionValue(Object obj, String name, boolean ignoreCase) {
+        TypeSafeAiLanguage target = (TypeSafeAiLanguage) obj;
+        switch (ignoreCase ? name.toLowerCase() : name) {
+        case "endpoint": return target.getEndpoint();
+        case "state": return target.getState();
+        case "threshold": return target.getThreshold();
+        case "uncertainty": return target.getUncertainty();
+        case "uncertaintypolicy":
+        case "uncertaintyPolicy": return target.getUncertaintyPolicy();
+        default: return null;
+        }
+    }
+}
+
diff --git 
a/components/camel-ai/camel-typesafe-ai/src/generated/resources/META-INF/services/org/apache/camel/configurer/typesafe-ai-language
 
b/components/camel-ai/camel-typesafe-ai/src/generated/resources/META-INF/services/org/apache/camel/configurer/typesafe-ai-language
new file mode 100644
index 000000000000..7f0eb6e72cbb
--- /dev/null
+++ 
b/components/camel-ai/camel-typesafe-ai/src/generated/resources/META-INF/services/org/apache/camel/configurer/typesafe-ai-language
@@ -0,0 +1,2 @@
+# Generated by camel build tools - do NOT edit this file!
+class=org.apache.camel.language.typesafeai.TypeSafeAiLanguageConfigurer
diff --git 
a/components/camel-bean/src/generated/java/org/apache/camel/language/bean/BeanLanguageConfigurer.java
 
b/components/camel-bean/src/generated/java/org/apache/camel/language/bean/BeanLanguageConfigurer.java
new file mode 100644
index 000000000000..be813181eb46
--- /dev/null
+++ 
b/components/camel-bean/src/generated/java/org/apache/camel/language/bean/BeanLanguageConfigurer.java
@@ -0,0 +1,60 @@
+/* Generated by camel build tools - do NOT edit this file! */
+package org.apache.camel.language.bean;
+
+import javax.annotation.processing.Generated;
+import java.util.Map;
+
+import org.apache.camel.CamelContext;
+import org.apache.camel.spi.ExtendedPropertyConfigurerGetter;
+import org.apache.camel.spi.PropertyConfigurerGetter;
+import org.apache.camel.spi.ConfigurerStrategy;
+import org.apache.camel.spi.GeneratedPropertyConfigurer;
+import org.apache.camel.util.CaseInsensitiveMap;
+import org.apache.camel.support.component.PropertyConfigurerSupport;
+
+/**
+ * Generated by camel build tools - do NOT edit this file!
+ */
+@Generated("org.apache.camel.maven.packaging.PackageLanguageMojo")
+@SuppressWarnings("unchecked")
+public class BeanLanguageConfigurer extends 
org.apache.camel.support.component.PropertyConfigurerSupport implements 
GeneratedPropertyConfigurer, ExtendedPropertyConfigurerGetter {
+
+    private static final Map<String, Object> ALL_OPTIONS;
+    static {
+        Map<String, Object> map = new CaseInsensitiveMap();
+        map.put("Validate", boolean.class);
+        ALL_OPTIONS = map;
+    }
+
+    @Override
+    public boolean configure(CamelContext camelContext, Object obj, String 
name, Object value, boolean ignoreCase) {
+        BeanLanguage target = (BeanLanguage) obj;
+        switch (ignoreCase ? name.toLowerCase() : name) {
+        case "validate": target.setValidate(property(camelContext, 
boolean.class, value)); return true;
+        default: return false;
+        }
+    }
+
+    @Override
+    public Map<String, Object> getAllOptions(Object target) {
+        return ALL_OPTIONS;
+    }
+
+    @Override
+    public Class<?> getOptionType(String name, boolean ignoreCase) {
+        switch (ignoreCase ? name.toLowerCase() : name) {
+        case "validate": return boolean.class;
+        default: return null;
+        }
+    }
+
+    @Override
+    public Object getOptionValue(Object obj, String name, boolean ignoreCase) {
+        BeanLanguage target = (BeanLanguage) obj;
+        switch (ignoreCase ? name.toLowerCase() : name) {
+        case "validate": return target.isValidate();
+        default: return null;
+        }
+    }
+}
+
diff --git 
a/components/camel-bean/src/generated/resources/META-INF/services/org/apache/camel/configurer/bean-language
 
b/components/camel-bean/src/generated/resources/META-INF/services/org/apache/camel/configurer/bean-language
new file mode 100644
index 000000000000..5428997576d4
--- /dev/null
+++ 
b/components/camel-bean/src/generated/resources/META-INF/services/org/apache/camel/configurer/bean-language
@@ -0,0 +1,2 @@
+# Generated by camel build tools - do NOT edit this file!
+class=org.apache.camel.language.bean.BeanLanguageConfigurer
diff --git 
a/components/camel-datasonnet/src/generated/java/org/apache/camel/language/datasonnet/DatasonnetLanguageConfigurer.java
 
b/components/camel-datasonnet/src/generated/java/org/apache/camel/language/datasonnet/DatasonnetLanguageConfigurer.java
new file mode 100644
index 000000000000..5b3a6648340d
--- /dev/null
+++ 
b/components/camel-datasonnet/src/generated/java/org/apache/camel/language/datasonnet/DatasonnetLanguageConfigurer.java
@@ -0,0 +1,48 @@
+/* Generated by camel build tools - do NOT edit this file! */
+package org.apache.camel.language.datasonnet;
+
+import javax.annotation.processing.Generated;
+import java.util.Map;
+
+import org.apache.camel.CamelContext;
+import org.apache.camel.spi.ExtendedPropertyConfigurerGetter;
+import org.apache.camel.spi.PropertyConfigurerGetter;
+import org.apache.camel.spi.ConfigurerStrategy;
+import org.apache.camel.spi.GeneratedPropertyConfigurer;
+import org.apache.camel.util.CaseInsensitiveMap;
+import org.apache.camel.support.component.PropertyConfigurerSupport;
+
+/**
+ * Generated by camel build tools - do NOT edit this file!
+ */
+@Generated("org.apache.camel.maven.packaging.PackageLanguageMojo")
+@SuppressWarnings("unchecked")
+public class DatasonnetLanguageConfigurer extends 
org.apache.camel.support.component.PropertyConfigurerSupport implements 
GeneratedPropertyConfigurer, ExtendedPropertyConfigurerGetter {
+
+    private static final Map<String, Object> ALL_OPTIONS;
+    static {
+        Map<String, Object> map = new CaseInsensitiveMap();
+        ALL_OPTIONS = map;
+    }
+
+    @Override
+    public boolean configure(CamelContext camelContext, Object obj, String 
name, Object value, boolean ignoreCase) {
+        return false;
+    }
+
+    @Override
+    public Map<String, Object> getAllOptions(Object target) {
+        return ALL_OPTIONS;
+    }
+
+    @Override
+    public Class<?> getOptionType(String name, boolean ignoreCase) {
+        return null;
+    }
+
+    @Override
+    public Object getOptionValue(Object obj, String name, boolean ignoreCase) {
+        return null;
+    }
+}
+
diff --git 
a/components/camel-datasonnet/src/generated/resources/META-INF/services/org/apache/camel/configurer/datasonnet-language
 
b/components/camel-datasonnet/src/generated/resources/META-INF/services/org/apache/camel/configurer/datasonnet-language
new file mode 100644
index 000000000000..471d63221592
--- /dev/null
+++ 
b/components/camel-datasonnet/src/generated/resources/META-INF/services/org/apache/camel/configurer/datasonnet-language
@@ -0,0 +1,2 @@
+# Generated by camel build tools - do NOT edit this file!
+class=org.apache.camel.language.datasonnet.DatasonnetLanguageConfigurer
diff --git 
a/components/camel-groovy/src/generated/java/org/apache/camel/language/groovy/GroovyLanguageConfigurer.java
 
b/components/camel-groovy/src/generated/java/org/apache/camel/language/groovy/GroovyLanguageConfigurer.java
new file mode 100644
index 000000000000..6d81701ddfb1
--- /dev/null
+++ 
b/components/camel-groovy/src/generated/java/org/apache/camel/language/groovy/GroovyLanguageConfigurer.java
@@ -0,0 +1,48 @@
+/* Generated by camel build tools - do NOT edit this file! */
+package org.apache.camel.language.groovy;
+
+import javax.annotation.processing.Generated;
+import java.util.Map;
+
+import org.apache.camel.CamelContext;
+import org.apache.camel.spi.ExtendedPropertyConfigurerGetter;
+import org.apache.camel.spi.PropertyConfigurerGetter;
+import org.apache.camel.spi.ConfigurerStrategy;
+import org.apache.camel.spi.GeneratedPropertyConfigurer;
+import org.apache.camel.util.CaseInsensitiveMap;
+import org.apache.camel.support.component.PropertyConfigurerSupport;
+
+/**
+ * Generated by camel build tools - do NOT edit this file!
+ */
+@Generated("org.apache.camel.maven.packaging.PackageLanguageMojo")
+@SuppressWarnings("unchecked")
+public class GroovyLanguageConfigurer extends 
org.apache.camel.support.component.PropertyConfigurerSupport implements 
GeneratedPropertyConfigurer, ExtendedPropertyConfigurerGetter {
+
+    private static final Map<String, Object> ALL_OPTIONS;
+    static {
+        Map<String, Object> map = new CaseInsensitiveMap();
+        ALL_OPTIONS = map;
+    }
+
+    @Override
+    public boolean configure(CamelContext camelContext, Object obj, String 
name, Object value, boolean ignoreCase) {
+        return false;
+    }
+
+    @Override
+    public Map<String, Object> getAllOptions(Object target) {
+        return ALL_OPTIONS;
+    }
+
+    @Override
+    public Class<?> getOptionType(String name, boolean ignoreCase) {
+        return null;
+    }
+
+    @Override
+    public Object getOptionValue(Object obj, String name, boolean ignoreCase) {
+        return null;
+    }
+}
+
diff --git 
a/components/camel-groovy/src/generated/resources/META-INF/services/org/apache/camel/configurer/groovy-language
 
b/components/camel-groovy/src/generated/resources/META-INF/services/org/apache/camel/configurer/groovy-language
new file mode 100644
index 000000000000..f92e66b92a81
--- /dev/null
+++ 
b/components/camel-groovy/src/generated/resources/META-INF/services/org/apache/camel/configurer/groovy-language
@@ -0,0 +1,2 @@
+# Generated by camel build tools - do NOT edit this file!
+class=org.apache.camel.language.groovy.GroovyLanguageConfigurer
diff --git 
a/components/camel-hl7/src/generated/java/org/apache/camel/component/hl7/Hl7TerserLanguageConfigurer.java
 
b/components/camel-hl7/src/generated/java/org/apache/camel/component/hl7/Hl7TerserLanguageConfigurer.java
new file mode 100644
index 000000000000..8655d00babb6
--- /dev/null
+++ 
b/components/camel-hl7/src/generated/java/org/apache/camel/component/hl7/Hl7TerserLanguageConfigurer.java
@@ -0,0 +1,48 @@
+/* Generated by camel build tools - do NOT edit this file! */
+package org.apache.camel.component.hl7;
+
+import javax.annotation.processing.Generated;
+import java.util.Map;
+
+import org.apache.camel.CamelContext;
+import org.apache.camel.spi.ExtendedPropertyConfigurerGetter;
+import org.apache.camel.spi.PropertyConfigurerGetter;
+import org.apache.camel.spi.ConfigurerStrategy;
+import org.apache.camel.spi.GeneratedPropertyConfigurer;
+import org.apache.camel.util.CaseInsensitiveMap;
+import org.apache.camel.support.component.PropertyConfigurerSupport;
+
+/**
+ * Generated by camel build tools - do NOT edit this file!
+ */
+@Generated("org.apache.camel.maven.packaging.PackageLanguageMojo")
+@SuppressWarnings("unchecked")
+public class Hl7TerserLanguageConfigurer extends 
org.apache.camel.support.component.PropertyConfigurerSupport implements 
GeneratedPropertyConfigurer, ExtendedPropertyConfigurerGetter {
+
+    private static final Map<String, Object> ALL_OPTIONS;
+    static {
+        Map<String, Object> map = new CaseInsensitiveMap();
+        ALL_OPTIONS = map;
+    }
+
+    @Override
+    public boolean configure(CamelContext camelContext, Object obj, String 
name, Object value, boolean ignoreCase) {
+        return false;
+    }
+
+    @Override
+    public Map<String, Object> getAllOptions(Object target) {
+        return ALL_OPTIONS;
+    }
+
+    @Override
+    public Class<?> getOptionType(String name, boolean ignoreCase) {
+        return null;
+    }
+
+    @Override
+    public Object getOptionValue(Object obj, String name, boolean ignoreCase) {
+        return null;
+    }
+}
+
diff --git 
a/components/camel-hl7/src/generated/resources/META-INF/services/org/apache/camel/configurer/hl7terser-language
 
b/components/camel-hl7/src/generated/resources/META-INF/services/org/apache/camel/configurer/hl7terser-language
new file mode 100644
index 000000000000..79951fa30863
--- /dev/null
+++ 
b/components/camel-hl7/src/generated/resources/META-INF/services/org/apache/camel/configurer/hl7terser-language
@@ -0,0 +1,2 @@
+# Generated by camel build tools - do NOT edit this file!
+class=org.apache.camel.component.hl7.Hl7TerserLanguageConfigurer
diff --git 
a/components/camel-jactl/src/generated/java/org/apache/camel/language/jactl/JactlLanguageConfigurer.java
 
b/components/camel-jactl/src/generated/java/org/apache/camel/language/jactl/JactlLanguageConfigurer.java
new file mode 100644
index 000000000000..afabef57ffc2
--- /dev/null
+++ 
b/components/camel-jactl/src/generated/java/org/apache/camel/language/jactl/JactlLanguageConfigurer.java
@@ -0,0 +1,48 @@
+/* Generated by camel build tools - do NOT edit this file! */
+package org.apache.camel.language.jactl;
+
+import javax.annotation.processing.Generated;
+import java.util.Map;
+
+import org.apache.camel.CamelContext;
+import org.apache.camel.spi.ExtendedPropertyConfigurerGetter;
+import org.apache.camel.spi.PropertyConfigurerGetter;
+import org.apache.camel.spi.ConfigurerStrategy;
+import org.apache.camel.spi.GeneratedPropertyConfigurer;
+import org.apache.camel.util.CaseInsensitiveMap;
+import org.apache.camel.support.component.PropertyConfigurerSupport;
+
+/**
+ * Generated by camel build tools - do NOT edit this file!
+ */
+@Generated("org.apache.camel.maven.packaging.PackageLanguageMojo")
+@SuppressWarnings("unchecked")
+public class JactlLanguageConfigurer extends 
org.apache.camel.support.component.PropertyConfigurerSupport implements 
GeneratedPropertyConfigurer, ExtendedPropertyConfigurerGetter {
+
+    private static final Map<String, Object> ALL_OPTIONS;
+    static {
+        Map<String, Object> map = new CaseInsensitiveMap();
+        ALL_OPTIONS = map;
+    }
+
+    @Override
+    public boolean configure(CamelContext camelContext, Object obj, String 
name, Object value, boolean ignoreCase) {
+        return false;
+    }
+
+    @Override
+    public Map<String, Object> getAllOptions(Object target) {
+        return ALL_OPTIONS;
+    }
+
+    @Override
+    public Class<?> getOptionType(String name, boolean ignoreCase) {
+        return null;
+    }
+
+    @Override
+    public Object getOptionValue(Object obj, String name, boolean ignoreCase) {
+        return null;
+    }
+}
+
diff --git 
a/components/camel-jactl/src/generated/resources/META-INF/services/org/apache/camel/configurer/jactl-language
 
b/components/camel-jactl/src/generated/resources/META-INF/services/org/apache/camel/configurer/jactl-language
new file mode 100644
index 000000000000..dd24320cdec2
--- /dev/null
+++ 
b/components/camel-jactl/src/generated/resources/META-INF/services/org/apache/camel/configurer/jactl-language
@@ -0,0 +1,2 @@
+# Generated by camel build tools - do NOT edit this file!
+class=org.apache.camel.language.jactl.JactlLanguageConfigurer
diff --git 
a/components/camel-javascript/src/generated/java/org/apache/camel/language/js/JavaScriptLanguageConfigurer.java
 
b/components/camel-javascript/src/generated/java/org/apache/camel/language/js/JavaScriptLanguageConfigurer.java
new file mode 100644
index 000000000000..2f24b02f680e
--- /dev/null
+++ 
b/components/camel-javascript/src/generated/java/org/apache/camel/language/js/JavaScriptLanguageConfigurer.java
@@ -0,0 +1,48 @@
+/* Generated by camel build tools - do NOT edit this file! */
+package org.apache.camel.language.js;
+
+import javax.annotation.processing.Generated;
+import java.util.Map;
+
+import org.apache.camel.CamelContext;
+import org.apache.camel.spi.ExtendedPropertyConfigurerGetter;
+import org.apache.camel.spi.PropertyConfigurerGetter;
+import org.apache.camel.spi.ConfigurerStrategy;
+import org.apache.camel.spi.GeneratedPropertyConfigurer;
+import org.apache.camel.util.CaseInsensitiveMap;
+import org.apache.camel.support.component.PropertyConfigurerSupport;
+
+/**
+ * Generated by camel build tools - do NOT edit this file!
+ */
+@Generated("org.apache.camel.maven.packaging.PackageLanguageMojo")
+@SuppressWarnings("unchecked")
+public class JavaScriptLanguageConfigurer extends 
org.apache.camel.support.component.PropertyConfigurerSupport implements 
GeneratedPropertyConfigurer, ExtendedPropertyConfigurerGetter {
+
+    private static final Map<String, Object> ALL_OPTIONS;
+    static {
+        Map<String, Object> map = new CaseInsensitiveMap();
+        ALL_OPTIONS = map;
+    }
+
+    @Override
+    public boolean configure(CamelContext camelContext, Object obj, String 
name, Object value, boolean ignoreCase) {
+        return false;
+    }
+
+    @Override
+    public Map<String, Object> getAllOptions(Object target) {
+        return ALL_OPTIONS;
+    }
+
+    @Override
+    public Class<?> getOptionType(String name, boolean ignoreCase) {
+        return null;
+    }
+
+    @Override
+    public Object getOptionValue(Object obj, String name, boolean ignoreCase) {
+        return null;
+    }
+}
+
diff --git 
a/components/camel-javascript/src/generated/resources/META-INF/services/org/apache/camel/configurer/js-language
 
b/components/camel-javascript/src/generated/resources/META-INF/services/org/apache/camel/configurer/js-language
new file mode 100644
index 000000000000..c223b798a835
--- /dev/null
+++ 
b/components/camel-javascript/src/generated/resources/META-INF/services/org/apache/camel/configurer/js-language
@@ -0,0 +1,2 @@
+# Generated by camel build tools - do NOT edit this file!
+class=org.apache.camel.language.js.JavaScriptLanguageConfigurer
diff --git 
a/components/camel-joor/src/generated/java/org/apache/camel/language/joor/JavaLanguageConfigurer.java
 
b/components/camel-joor/src/generated/java/org/apache/camel/language/joor/JavaLanguageConfigurer.java
new file mode 100644
index 000000000000..cc828da29ff0
--- /dev/null
+++ 
b/components/camel-joor/src/generated/java/org/apache/camel/language/joor/JavaLanguageConfigurer.java
@@ -0,0 +1,77 @@
+/* Generated by camel build tools - do NOT edit this file! */
+package org.apache.camel.language.joor;
+
+import javax.annotation.processing.Generated;
+import java.util.Map;
+
+import org.apache.camel.CamelContext;
+import org.apache.camel.spi.ExtendedPropertyConfigurerGetter;
+import org.apache.camel.spi.PropertyConfigurerGetter;
+import org.apache.camel.spi.ConfigurerStrategy;
+import org.apache.camel.spi.GeneratedPropertyConfigurer;
+import org.apache.camel.util.CaseInsensitiveMap;
+import org.apache.camel.support.component.PropertyConfigurerSupport;
+
+/**
+ * Generated by camel build tools - do NOT edit this file!
+ */
+@Generated("org.apache.camel.maven.packaging.PackageLanguageMojo")
+@SuppressWarnings("unchecked")
+public class JavaLanguageConfigurer extends 
org.apache.camel.support.component.PropertyConfigurerSupport implements 
GeneratedPropertyConfigurer, ExtendedPropertyConfigurerGetter {
+
+    private static final Map<String, Object> ALL_OPTIONS;
+    static {
+        Map<String, Object> map = new CaseInsensitiveMap();
+        map.put("ConfigResource", java.lang.String.class);
+        map.put("PreCompile", boolean.class);
+        map.put("SingleQuotes", boolean.class);
+        ALL_OPTIONS = map;
+    }
+
+    @Override
+    public boolean configure(CamelContext camelContext, Object obj, String 
name, Object value, boolean ignoreCase) {
+        JavaLanguage target = (JavaLanguage) obj;
+        switch (ignoreCase ? name.toLowerCase() : name) {
+        case "configresource":
+        case "configResource": target.setConfigResource(property(camelContext, 
java.lang.String.class, value)); return true;
+        case "precompile":
+        case "preCompile": target.setPreCompile(property(camelContext, 
boolean.class, value)); return true;
+        case "singlequotes":
+        case "singleQuotes": target.setSingleQuotes(property(camelContext, 
boolean.class, value)); return true;
+        default: return false;
+        }
+    }
+
+    @Override
+    public Map<String, Object> getAllOptions(Object target) {
+        return ALL_OPTIONS;
+    }
+
+    @Override
+    public Class<?> getOptionType(String name, boolean ignoreCase) {
+        switch (ignoreCase ? name.toLowerCase() : name) {
+        case "configresource":
+        case "configResource": return java.lang.String.class;
+        case "precompile":
+        case "preCompile": return boolean.class;
+        case "singlequotes":
+        case "singleQuotes": return boolean.class;
+        default: return null;
+        }
+    }
+
+    @Override
+    public Object getOptionValue(Object obj, String name, boolean ignoreCase) {
+        JavaLanguage target = (JavaLanguage) obj;
+        switch (ignoreCase ? name.toLowerCase() : name) {
+        case "configresource":
+        case "configResource": return target.getConfigResource();
+        case "precompile":
+        case "preCompile": return target.isPreCompile();
+        case "singlequotes":
+        case "singleQuotes": return target.isSingleQuotes();
+        default: return null;
+        }
+    }
+}
+
diff --git 
a/components/camel-joor/src/generated/resources/META-INF/services/org/apache/camel/configurer/java-language
 
b/components/camel-joor/src/generated/resources/META-INF/services/org/apache/camel/configurer/java-language
new file mode 100644
index 000000000000..c07985546f71
--- /dev/null
+++ 
b/components/camel-joor/src/generated/resources/META-INF/services/org/apache/camel/configurer/java-language
@@ -0,0 +1,2 @@
+# Generated by camel build tools - do NOT edit this file!
+class=org.apache.camel.language.joor.JavaLanguageConfigurer
diff --git 
a/components/camel-jq/src/generated/java/org/apache/camel/language/jq/JqLanguageConfigurer.java
 
b/components/camel-jq/src/generated/java/org/apache/camel/language/jq/JqLanguageConfigurer.java
new file mode 100644
index 000000000000..cf57ebf8bc81
--- /dev/null
+++ 
b/components/camel-jq/src/generated/java/org/apache/camel/language/jq/JqLanguageConfigurer.java
@@ -0,0 +1,48 @@
+/* Generated by camel build tools - do NOT edit this file! */
+package org.apache.camel.language.jq;
+
+import javax.annotation.processing.Generated;
+import java.util.Map;
+
+import org.apache.camel.CamelContext;
+import org.apache.camel.spi.ExtendedPropertyConfigurerGetter;
+import org.apache.camel.spi.PropertyConfigurerGetter;
+import org.apache.camel.spi.ConfigurerStrategy;
+import org.apache.camel.spi.GeneratedPropertyConfigurer;
+import org.apache.camel.util.CaseInsensitiveMap;
+import org.apache.camel.support.component.PropertyConfigurerSupport;
+
+/**
+ * Generated by camel build tools - do NOT edit this file!
+ */
+@Generated("org.apache.camel.maven.packaging.PackageLanguageMojo")
+@SuppressWarnings("unchecked")
+public class JqLanguageConfigurer extends 
org.apache.camel.support.component.PropertyConfigurerSupport implements 
GeneratedPropertyConfigurer, ExtendedPropertyConfigurerGetter {
+
+    private static final Map<String, Object> ALL_OPTIONS;
+    static {
+        Map<String, Object> map = new CaseInsensitiveMap();
+        ALL_OPTIONS = map;
+    }
+
+    @Override
+    public boolean configure(CamelContext camelContext, Object obj, String 
name, Object value, boolean ignoreCase) {
+        return false;
+    }
+
+    @Override
+    public Map<String, Object> getAllOptions(Object target) {
+        return ALL_OPTIONS;
+    }
+
+    @Override
+    public Class<?> getOptionType(String name, boolean ignoreCase) {
+        return null;
+    }
+
+    @Override
+    public Object getOptionValue(Object obj, String name, boolean ignoreCase) {
+        return null;
+    }
+}
+
diff --git 
a/components/camel-jq/src/generated/resources/META-INF/services/org/apache/camel/configurer/jq-language
 
b/components/camel-jq/src/generated/resources/META-INF/services/org/apache/camel/configurer/jq-language
new file mode 100644
index 000000000000..196bbc3344ab
--- /dev/null
+++ 
b/components/camel-jq/src/generated/resources/META-INF/services/org/apache/camel/configurer/jq-language
@@ -0,0 +1,2 @@
+# Generated by camel build tools - do NOT edit this file!
+class=org.apache.camel.language.jq.JqLanguageConfigurer
diff --git 
a/components/camel-jsonpath/src/generated/java/org/apache/camel/jsonpath/JsonPathLanguageConfigurer.java
 
b/components/camel-jsonpath/src/generated/java/org/apache/camel/jsonpath/JsonPathLanguageConfigurer.java
new file mode 100644
index 000000000000..2d668e527cec
--- /dev/null
+++ 
b/components/camel-jsonpath/src/generated/java/org/apache/camel/jsonpath/JsonPathLanguageConfigurer.java
@@ -0,0 +1,95 @@
+/* Generated by camel build tools - do NOT edit this file! */
+package org.apache.camel.jsonpath;
+
+import javax.annotation.processing.Generated;
+import java.util.Map;
+
+import org.apache.camel.CamelContext;
+import org.apache.camel.spi.ExtendedPropertyConfigurerGetter;
+import org.apache.camel.spi.PropertyConfigurerGetter;
+import org.apache.camel.spi.ConfigurerStrategy;
+import org.apache.camel.spi.GeneratedPropertyConfigurer;
+import org.apache.camel.util.CaseInsensitiveMap;
+import org.apache.camel.support.component.PropertyConfigurerSupport;
+
+/**
+ * Generated by camel build tools - do NOT edit this file!
+ */
+@Generated("org.apache.camel.maven.packaging.PackageLanguageMojo")
+@SuppressWarnings("unchecked")
+public class JsonPathLanguageConfigurer extends 
org.apache.camel.support.component.PropertyConfigurerSupport implements 
GeneratedPropertyConfigurer, ExtendedPropertyConfigurerGetter {
+
+    private static final Map<String, Object> ALL_OPTIONS;
+    static {
+        Map<String, Object> map = new CaseInsensitiveMap();
+        map.put("AllowEasyPredicate", boolean.class);
+        map.put("AllowSimple", boolean.class);
+        map.put("Options", com.jayway.jsonpath.Option[].class);
+        map.put("SuppressExceptions", boolean.class);
+        map.put("UnpackArray", boolean.class);
+        map.put("WriteAsString", boolean.class);
+        ALL_OPTIONS = map;
+    }
+
+    @Override
+    public boolean configure(CamelContext camelContext, Object obj, String 
name, Object value, boolean ignoreCase) {
+        JsonPathLanguage target = (JsonPathLanguage) obj;
+        switch (ignoreCase ? name.toLowerCase() : name) {
+        case "alloweasypredicate":
+        case "allowEasyPredicate": 
target.setAllowEasyPredicate(property(camelContext, boolean.class, value)); 
return true;
+        case "allowsimple":
+        case "allowSimple": target.setAllowSimple(property(camelContext, 
boolean.class, value)); return true;
+        case "options": target.setOptions(property(camelContext, 
com.jayway.jsonpath.Option[].class, value)); return true;
+        case "suppressexceptions":
+        case "suppressExceptions": 
target.setSuppressExceptions(property(camelContext, boolean.class, value)); 
return true;
+        case "unpackarray":
+        case "unpackArray": target.setUnpackArray(property(camelContext, 
boolean.class, value)); return true;
+        case "writeasstring":
+        case "writeAsString": target.setWriteAsString(property(camelContext, 
boolean.class, value)); return true;
+        default: return false;
+        }
+    }
+
+    @Override
+    public Map<String, Object> getAllOptions(Object target) {
+        return ALL_OPTIONS;
+    }
+
+    @Override
+    public Class<?> getOptionType(String name, boolean ignoreCase) {
+        switch (ignoreCase ? name.toLowerCase() : name) {
+        case "alloweasypredicate":
+        case "allowEasyPredicate": return boolean.class;
+        case "allowsimple":
+        case "allowSimple": return boolean.class;
+        case "options": return com.jayway.jsonpath.Option[].class;
+        case "suppressexceptions":
+        case "suppressExceptions": return boolean.class;
+        case "unpackarray":
+        case "unpackArray": return boolean.class;
+        case "writeasstring":
+        case "writeAsString": return boolean.class;
+        default: return null;
+        }
+    }
+
+    @Override
+    public Object getOptionValue(Object obj, String name, boolean ignoreCase) {
+        JsonPathLanguage target = (JsonPathLanguage) obj;
+        switch (ignoreCase ? name.toLowerCase() : name) {
+        case "alloweasypredicate":
+        case "allowEasyPredicate": return target.isAllowEasyPredicate();
+        case "allowsimple":
+        case "allowSimple": return target.isAllowSimple();
+        case "options": return target.getOptions();
+        case "suppressexceptions":
+        case "suppressExceptions": return target.isSuppressExceptions();
+        case "unpackarray":
+        case "unpackArray": return target.isUnpackArray();
+        case "writeasstring":
+        case "writeAsString": return target.isWriteAsString();
+        default: return null;
+        }
+    }
+}
+
diff --git 
a/components/camel-jsonpath/src/generated/resources/META-INF/services/org/apache/camel/configurer/jsonpath-language
 
b/components/camel-jsonpath/src/generated/resources/META-INF/services/org/apache/camel/configurer/jsonpath-language
new file mode 100644
index 000000000000..ab87f444abd9
--- /dev/null
+++ 
b/components/camel-jsonpath/src/generated/resources/META-INF/services/org/apache/camel/configurer/jsonpath-language
@@ -0,0 +1,2 @@
+# Generated by camel build tools - do NOT edit this file!
+class=org.apache.camel.jsonpath.JsonPathLanguageConfigurer
diff --git 
a/components/camel-jsonpath/src/test/java/org/apache/camel/jsonpath/JsonPathOptionsTest.java
 
b/components/camel-jsonpath/src/test/java/org/apache/camel/jsonpath/JsonPathOptionsTest.java
index 6ba8b95a0f7c..b4f1a1982ea7 100644
--- 
a/components/camel-jsonpath/src/test/java/org/apache/camel/jsonpath/JsonPathOptionsTest.java
+++ 
b/components/camel-jsonpath/src/test/java/org/apache/camel/jsonpath/JsonPathOptionsTest.java
@@ -16,18 +16,23 @@
  */
 package org.apache.camel.jsonpath;
 
+import java.util.HashMap;
 import java.util.List;
+import java.util.Map;
 
 import com.jayway.jsonpath.Option;
 import org.apache.camel.Exchange;
 import org.apache.camel.Expression;
+import org.apache.camel.spi.PropertyConfigurer;
 import org.apache.camel.support.DefaultExchange;
+import org.apache.camel.support.PluginHelper;
 import org.apache.camel.support.PropertyBindingSupport;
 import org.apache.camel.test.junit6.CamelTestSupport;
 import org.junit.jupiter.api.Test;
 
 import static org.junit.jupiter.api.Assertions.assertArrayEquals;
 import static org.junit.jupiter.api.Assertions.assertEquals;
+import static org.junit.jupiter.api.Assertions.assertInstanceOf;
 import static org.junit.jupiter.api.Assertions.assertThrows;
 import static org.junit.jupiter.api.Assertions.assertTrue;
 
@@ -66,6 +71,20 @@ public class JsonPathOptionsTest extends CamelTestSupport {
         assertEquals(List.of(), expression.evaluate(exchange(), List.class));
     }
 
+    @Test
+    public void testTheConfigurerOfTheLanguage() {
+        // camel-main finds the configurer of camel.language.jsonpath.* by the 
name of the language
+        PropertyConfigurer configurer
+                = 
PluginHelper.getConfigurerResolver(context).resolvePropertyConfigurer("jsonpath-language",
 context);
+        assertInstanceOf(JsonPathLanguageConfigurer.class, configurer);
+
+        JsonPathLanguage language = (JsonPathLanguage) 
context.resolveLanguage("jsonpath");
+        
PropertyBindingSupport.build().withConfigurer(configurer).withReflection(false)
+                .bind(context, language, new HashMap<>(Map.of("options", 
"SUPPRESS_EXCEPTIONS", "writeAsString", "true")));
+        assertArrayEquals(new Option[] { Option.SUPPRESS_EXCEPTIONS }, 
language.getOptions());
+        assertTrue(language.isWriteAsString());
+    }
+
     @Test
     public void testTheOptionOfAnExpression() {
         JsonPathLanguage language = (JsonPathLanguage) 
context.resolveLanguage("jsonpath");
diff --git 
a/components/camel-mvel/src/generated/java/org/apache/camel/language/mvel/MvelLanguageConfigurer.java
 
b/components/camel-mvel/src/generated/java/org/apache/camel/language/mvel/MvelLanguageConfigurer.java
new file mode 100644
index 000000000000..437f5de6a1ff
--- /dev/null
+++ 
b/components/camel-mvel/src/generated/java/org/apache/camel/language/mvel/MvelLanguageConfigurer.java
@@ -0,0 +1,48 @@
+/* Generated by camel build tools - do NOT edit this file! */
+package org.apache.camel.language.mvel;
+
+import javax.annotation.processing.Generated;
+import java.util.Map;
+
+import org.apache.camel.CamelContext;
+import org.apache.camel.spi.ExtendedPropertyConfigurerGetter;
+import org.apache.camel.spi.PropertyConfigurerGetter;
+import org.apache.camel.spi.ConfigurerStrategy;
+import org.apache.camel.spi.GeneratedPropertyConfigurer;
+import org.apache.camel.util.CaseInsensitiveMap;
+import org.apache.camel.support.component.PropertyConfigurerSupport;
+
+/**
+ * Generated by camel build tools - do NOT edit this file!
+ */
+@Generated("org.apache.camel.maven.packaging.PackageLanguageMojo")
+@SuppressWarnings("unchecked")
+public class MvelLanguageConfigurer extends 
org.apache.camel.support.component.PropertyConfigurerSupport implements 
GeneratedPropertyConfigurer, ExtendedPropertyConfigurerGetter {
+
+    private static final Map<String, Object> ALL_OPTIONS;
+    static {
+        Map<String, Object> map = new CaseInsensitiveMap();
+        ALL_OPTIONS = map;
+    }
+
+    @Override
+    public boolean configure(CamelContext camelContext, Object obj, String 
name, Object value, boolean ignoreCase) {
+        return false;
+    }
+
+    @Override
+    public Map<String, Object> getAllOptions(Object target) {
+        return ALL_OPTIONS;
+    }
+
+    @Override
+    public Class<?> getOptionType(String name, boolean ignoreCase) {
+        return null;
+    }
+
+    @Override
+    public Object getOptionValue(Object obj, String name, boolean ignoreCase) {
+        return null;
+    }
+}
+
diff --git 
a/components/camel-mvel/src/generated/resources/META-INF/services/org/apache/camel/configurer/mvel-language
 
b/components/camel-mvel/src/generated/resources/META-INF/services/org/apache/camel/configurer/mvel-language
new file mode 100644
index 000000000000..31b063f2cc98
--- /dev/null
+++ 
b/components/camel-mvel/src/generated/resources/META-INF/services/org/apache/camel/configurer/mvel-language
@@ -0,0 +1,2 @@
+# Generated by camel build tools - do NOT edit this file!
+class=org.apache.camel.language.mvel.MvelLanguageConfigurer
diff --git 
a/components/camel-ognl/src/generated/java/org/apache/camel/language/ognl/OgnlLanguageConfigurer.java
 
b/components/camel-ognl/src/generated/java/org/apache/camel/language/ognl/OgnlLanguageConfigurer.java
new file mode 100644
index 000000000000..9664b32a9fd3
--- /dev/null
+++ 
b/components/camel-ognl/src/generated/java/org/apache/camel/language/ognl/OgnlLanguageConfigurer.java
@@ -0,0 +1,48 @@
+/* Generated by camel build tools - do NOT edit this file! */
+package org.apache.camel.language.ognl;
+
+import javax.annotation.processing.Generated;
+import java.util.Map;
+
+import org.apache.camel.CamelContext;
+import org.apache.camel.spi.ExtendedPropertyConfigurerGetter;
+import org.apache.camel.spi.PropertyConfigurerGetter;
+import org.apache.camel.spi.ConfigurerStrategy;
+import org.apache.camel.spi.GeneratedPropertyConfigurer;
+import org.apache.camel.util.CaseInsensitiveMap;
+import org.apache.camel.support.component.PropertyConfigurerSupport;
+
+/**
+ * Generated by camel build tools - do NOT edit this file!
+ */
+@Generated("org.apache.camel.maven.packaging.PackageLanguageMojo")
+@SuppressWarnings("unchecked")
+public class OgnlLanguageConfigurer extends 
org.apache.camel.support.component.PropertyConfigurerSupport implements 
GeneratedPropertyConfigurer, ExtendedPropertyConfigurerGetter {
+
+    private static final Map<String, Object> ALL_OPTIONS;
+    static {
+        Map<String, Object> map = new CaseInsensitiveMap();
+        ALL_OPTIONS = map;
+    }
+
+    @Override
+    public boolean configure(CamelContext camelContext, Object obj, String 
name, Object value, boolean ignoreCase) {
+        return false;
+    }
+
+    @Override
+    public Map<String, Object> getAllOptions(Object target) {
+        return ALL_OPTIONS;
+    }
+
+    @Override
+    public Class<?> getOptionType(String name, boolean ignoreCase) {
+        return null;
+    }
+
+    @Override
+    public Object getOptionValue(Object obj, String name, boolean ignoreCase) {
+        return null;
+    }
+}
+
diff --git 
a/components/camel-ognl/src/generated/resources/META-INF/services/org/apache/camel/configurer/ognl-language
 
b/components/camel-ognl/src/generated/resources/META-INF/services/org/apache/camel/configurer/ognl-language
new file mode 100644
index 000000000000..d10b6c55f582
--- /dev/null
+++ 
b/components/camel-ognl/src/generated/resources/META-INF/services/org/apache/camel/configurer/ognl-language
@@ -0,0 +1,2 @@
+# Generated by camel build tools - do NOT edit this file!
+class=org.apache.camel.language.ognl.OgnlLanguageConfigurer
diff --git 
a/components/camel-openfeature/src/generated/java/org/apache/camel/language/openfeature/OpenFeatureLanguageConfigurer.java
 
b/components/camel-openfeature/src/generated/java/org/apache/camel/language/openfeature/OpenFeatureLanguageConfigurer.java
new file mode 100644
index 000000000000..40c8aa78cf7b
--- /dev/null
+++ 
b/components/camel-openfeature/src/generated/java/org/apache/camel/language/openfeature/OpenFeatureLanguageConfigurer.java
@@ -0,0 +1,60 @@
+/* Generated by camel build tools - do NOT edit this file! */
+package org.apache.camel.language.openfeature;
+
+import javax.annotation.processing.Generated;
+import java.util.Map;
+
+import org.apache.camel.CamelContext;
+import org.apache.camel.spi.ExtendedPropertyConfigurerGetter;
+import org.apache.camel.spi.PropertyConfigurerGetter;
+import org.apache.camel.spi.ConfigurerStrategy;
+import org.apache.camel.spi.GeneratedPropertyConfigurer;
+import org.apache.camel.util.CaseInsensitiveMap;
+import org.apache.camel.support.component.PropertyConfigurerSupport;
+
+/**
+ * Generated by camel build tools - do NOT edit this file!
+ */
+@Generated("org.apache.camel.maven.packaging.PackageLanguageMojo")
+@SuppressWarnings("unchecked")
+public class OpenFeatureLanguageConfigurer extends 
org.apache.camel.support.component.PropertyConfigurerSupport implements 
GeneratedPropertyConfigurer, ExtendedPropertyConfigurerGetter {
+
+    private static final Map<String, Object> ALL_OPTIONS;
+    static {
+        Map<String, Object> map = new CaseInsensitiveMap();
+        map.put("Endpoint", java.lang.String.class);
+        ALL_OPTIONS = map;
+    }
+
+    @Override
+    public boolean configure(CamelContext camelContext, Object obj, String 
name, Object value, boolean ignoreCase) {
+        OpenFeatureLanguage target = (OpenFeatureLanguage) obj;
+        switch (ignoreCase ? name.toLowerCase() : name) {
+        case "endpoint": target.setEndpoint(property(camelContext, 
java.lang.String.class, value)); return true;
+        default: return false;
+        }
+    }
+
+    @Override
+    public Map<String, Object> getAllOptions(Object target) {
+        return ALL_OPTIONS;
+    }
+
+    @Override
+    public Class<?> getOptionType(String name, boolean ignoreCase) {
+        switch (ignoreCase ? name.toLowerCase() : name) {
+        case "endpoint": return java.lang.String.class;
+        default: return null;
+        }
+    }
+
+    @Override
+    public Object getOptionValue(Object obj, String name, boolean ignoreCase) {
+        OpenFeatureLanguage target = (OpenFeatureLanguage) obj;
+        switch (ignoreCase ? name.toLowerCase() : name) {
+        case "endpoint": return target.getEndpoint();
+        default: return null;
+        }
+    }
+}
+
diff --git 
a/components/camel-openfeature/src/generated/resources/META-INF/services/org/apache/camel/configurer/openfeature-language
 
b/components/camel-openfeature/src/generated/resources/META-INF/services/org/apache/camel/configurer/openfeature-language
new file mode 100644
index 000000000000..e4e1bde6f81d
--- /dev/null
+++ 
b/components/camel-openfeature/src/generated/resources/META-INF/services/org/apache/camel/configurer/openfeature-language
@@ -0,0 +1,2 @@
+# Generated by camel build tools - do NOT edit this file!
+class=org.apache.camel.language.openfeature.OpenFeatureLanguageConfigurer
diff --git 
a/components/camel-python/src/generated/java/org/apache/camel/language/python/PythonLanguageConfigurer.java
 
b/components/camel-python/src/generated/java/org/apache/camel/language/python/PythonLanguageConfigurer.java
new file mode 100644
index 000000000000..ee6d3d5153b4
--- /dev/null
+++ 
b/components/camel-python/src/generated/java/org/apache/camel/language/python/PythonLanguageConfigurer.java
@@ -0,0 +1,48 @@
+/* Generated by camel build tools - do NOT edit this file! */
+package org.apache.camel.language.python;
+
+import javax.annotation.processing.Generated;
+import java.util.Map;
+
+import org.apache.camel.CamelContext;
+import org.apache.camel.spi.ExtendedPropertyConfigurerGetter;
+import org.apache.camel.spi.PropertyConfigurerGetter;
+import org.apache.camel.spi.ConfigurerStrategy;
+import org.apache.camel.spi.GeneratedPropertyConfigurer;
+import org.apache.camel.util.CaseInsensitiveMap;
+import org.apache.camel.support.component.PropertyConfigurerSupport;
+
+/**
+ * Generated by camel build tools - do NOT edit this file!
+ */
+@Generated("org.apache.camel.maven.packaging.PackageLanguageMojo")
+@SuppressWarnings("unchecked")
+public class PythonLanguageConfigurer extends 
org.apache.camel.support.component.PropertyConfigurerSupport implements 
GeneratedPropertyConfigurer, ExtendedPropertyConfigurerGetter {
+
+    private static final Map<String, Object> ALL_OPTIONS;
+    static {
+        Map<String, Object> map = new CaseInsensitiveMap();
+        ALL_OPTIONS = map;
+    }
+
+    @Override
+    public boolean configure(CamelContext camelContext, Object obj, String 
name, Object value, boolean ignoreCase) {
+        return false;
+    }
+
+    @Override
+    public Map<String, Object> getAllOptions(Object target) {
+        return ALL_OPTIONS;
+    }
+
+    @Override
+    public Class<?> getOptionType(String name, boolean ignoreCase) {
+        return null;
+    }
+
+    @Override
+    public Object getOptionValue(Object obj, String name, boolean ignoreCase) {
+        return null;
+    }
+}
+
diff --git 
a/components/camel-python/src/generated/resources/META-INF/services/org/apache/camel/configurer/python-language
 
b/components/camel-python/src/generated/resources/META-INF/services/org/apache/camel/configurer/python-language
new file mode 100644
index 000000000000..74711af82144
--- /dev/null
+++ 
b/components/camel-python/src/generated/resources/META-INF/services/org/apache/camel/configurer/python-language
@@ -0,0 +1,2 @@
+# Generated by camel build tools - do NOT edit this file!
+class=org.apache.camel.language.python.PythonLanguageConfigurer
diff --git 
a/components/camel-python3/src/generated/java/org/apache/camel/language/python3/Python3LanguageConfigurer.java
 
b/components/camel-python3/src/generated/java/org/apache/camel/language/python3/Python3LanguageConfigurer.java
new file mode 100644
index 000000000000..c77f9887ebbe
--- /dev/null
+++ 
b/components/camel-python3/src/generated/java/org/apache/camel/language/python3/Python3LanguageConfigurer.java
@@ -0,0 +1,48 @@
+/* Generated by camel build tools - do NOT edit this file! */
+package org.apache.camel.language.python3;
+
+import javax.annotation.processing.Generated;
+import java.util.Map;
+
+import org.apache.camel.CamelContext;
+import org.apache.camel.spi.ExtendedPropertyConfigurerGetter;
+import org.apache.camel.spi.PropertyConfigurerGetter;
+import org.apache.camel.spi.ConfigurerStrategy;
+import org.apache.camel.spi.GeneratedPropertyConfigurer;
+import org.apache.camel.util.CaseInsensitiveMap;
+import org.apache.camel.support.component.PropertyConfigurerSupport;
+
+/**
+ * Generated by camel build tools - do NOT edit this file!
+ */
+@Generated("org.apache.camel.maven.packaging.PackageLanguageMojo")
+@SuppressWarnings("unchecked")
+public class Python3LanguageConfigurer extends 
org.apache.camel.support.component.PropertyConfigurerSupport implements 
GeneratedPropertyConfigurer, ExtendedPropertyConfigurerGetter {
+
+    private static final Map<String, Object> ALL_OPTIONS;
+    static {
+        Map<String, Object> map = new CaseInsensitiveMap();
+        ALL_OPTIONS = map;
+    }
+
+    @Override
+    public boolean configure(CamelContext camelContext, Object obj, String 
name, Object value, boolean ignoreCase) {
+        return false;
+    }
+
+    @Override
+    public Map<String, Object> getAllOptions(Object target) {
+        return ALL_OPTIONS;
+    }
+
+    @Override
+    public Class<?> getOptionType(String name, boolean ignoreCase) {
+        return null;
+    }
+
+    @Override
+    public Object getOptionValue(Object obj, String name, boolean ignoreCase) {
+        return null;
+    }
+}
+
diff --git 
a/components/camel-python3/src/generated/resources/META-INF/services/org/apache/camel/configurer/python3-language
 
b/components/camel-python3/src/generated/resources/META-INF/services/org/apache/camel/configurer/python3-language
new file mode 100644
index 000000000000..77686f3d1fdb
--- /dev/null
+++ 
b/components/camel-python3/src/generated/resources/META-INF/services/org/apache/camel/configurer/python3-language
@@ -0,0 +1,2 @@
+# Generated by camel build tools - do NOT edit this file!
+class=org.apache.camel.language.python3.Python3LanguageConfigurer
diff --git 
a/components/camel-quickjs/src/generated/java/org/apache/camel/language/quickjs/QuickjsLanguageConfigurer.java
 
b/components/camel-quickjs/src/generated/java/org/apache/camel/language/quickjs/QuickjsLanguageConfigurer.java
new file mode 100644
index 000000000000..ae17718262e4
--- /dev/null
+++ 
b/components/camel-quickjs/src/generated/java/org/apache/camel/language/quickjs/QuickjsLanguageConfigurer.java
@@ -0,0 +1,70 @@
+/* Generated by camel build tools - do NOT edit this file! */
+package org.apache.camel.language.quickjs;
+
+import javax.annotation.processing.Generated;
+import java.util.Map;
+
+import org.apache.camel.CamelContext;
+import org.apache.camel.spi.ExtendedPropertyConfigurerGetter;
+import org.apache.camel.spi.PropertyConfigurerGetter;
+import org.apache.camel.spi.ConfigurerStrategy;
+import org.apache.camel.spi.GeneratedPropertyConfigurer;
+import org.apache.camel.util.CaseInsensitiveMap;
+import org.apache.camel.support.component.PropertyConfigurerSupport;
+
+/**
+ * Generated by camel build tools - do NOT edit this file!
+ */
+@Generated("org.apache.camel.maven.packaging.PackageLanguageMojo")
+@SuppressWarnings("unchecked")
+public class QuickjsLanguageConfigurer extends 
org.apache.camel.support.component.PropertyConfigurerSupport implements 
GeneratedPropertyConfigurer, ExtendedPropertyConfigurerGetter {
+
+    private static final Map<String, Object> ALL_OPTIONS;
+    static {
+        Map<String, Object> map = new CaseInsensitiveMap();
+        map.put("EngineMaxEvaluations", int.class);
+        map.put("EngineMaxMemory", long.class);
+        ALL_OPTIONS = map;
+    }
+
+    @Override
+    public boolean configure(CamelContext camelContext, Object obj, String 
name, Object value, boolean ignoreCase) {
+        QuickjsLanguage target = (QuickjsLanguage) obj;
+        switch (ignoreCase ? name.toLowerCase() : name) {
+        case "enginemaxevaluations":
+        case "engineMaxEvaluations": 
target.setEngineMaxEvaluations(property(camelContext, int.class, value)); 
return true;
+        case "enginemaxmemory":
+        case "engineMaxMemory": 
target.setEngineMaxMemory(property(camelContext, long.class, value)); return 
true;
+        default: return false;
+        }
+    }
+
+    @Override
+    public Map<String, Object> getAllOptions(Object target) {
+        return ALL_OPTIONS;
+    }
+
+    @Override
+    public Class<?> getOptionType(String name, boolean ignoreCase) {
+        switch (ignoreCase ? name.toLowerCase() : name) {
+        case "enginemaxevaluations":
+        case "engineMaxEvaluations": return int.class;
+        case "enginemaxmemory":
+        case "engineMaxMemory": return long.class;
+        default: return null;
+        }
+    }
+
+    @Override
+    public Object getOptionValue(Object obj, String name, boolean ignoreCase) {
+        QuickjsLanguage target = (QuickjsLanguage) obj;
+        switch (ignoreCase ? name.toLowerCase() : name) {
+        case "enginemaxevaluations":
+        case "engineMaxEvaluations": return target.getEngineMaxEvaluations();
+        case "enginemaxmemory":
+        case "engineMaxMemory": return target.getEngineMaxMemory();
+        default: return null;
+        }
+    }
+}
+
diff --git 
a/components/camel-quickjs/src/generated/resources/META-INF/services/org/apache/camel/configurer/quickjs-language
 
b/components/camel-quickjs/src/generated/resources/META-INF/services/org/apache/camel/configurer/quickjs-language
new file mode 100644
index 000000000000..428e0c4ad443
--- /dev/null
+++ 
b/components/camel-quickjs/src/generated/resources/META-INF/services/org/apache/camel/configurer/quickjs-language
@@ -0,0 +1,2 @@
+# Generated by camel build tools - do NOT edit this file!
+class=org.apache.camel.language.quickjs.QuickjsLanguageConfigurer
diff --git 
a/components/camel-saxon/src/generated/java/org/apache/camel/language/xquery/XQueryLanguageConfigurer.java
 
b/components/camel-saxon/src/generated/java/org/apache/camel/language/xquery/XQueryLanguageConfigurer.java
new file mode 100644
index 000000000000..fcdf6b7b5e03
--- /dev/null
+++ 
b/components/camel-saxon/src/generated/java/org/apache/camel/language/xquery/XQueryLanguageConfigurer.java
@@ -0,0 +1,60 @@
+/* Generated by camel build tools - do NOT edit this file! */
+package org.apache.camel.language.xquery;
+
+import javax.annotation.processing.Generated;
+import java.util.Map;
+
+import org.apache.camel.CamelContext;
+import org.apache.camel.spi.ExtendedPropertyConfigurerGetter;
+import org.apache.camel.spi.PropertyConfigurerGetter;
+import org.apache.camel.spi.ConfigurerStrategy;
+import org.apache.camel.spi.GeneratedPropertyConfigurer;
+import org.apache.camel.util.CaseInsensitiveMap;
+import org.apache.camel.support.component.PropertyConfigurerSupport;
+
+/**
+ * Generated by camel build tools - do NOT edit this file!
+ */
+@Generated("org.apache.camel.maven.packaging.PackageLanguageMojo")
+@SuppressWarnings("unchecked")
+public class XQueryLanguageConfigurer extends 
org.apache.camel.support.component.PropertyConfigurerSupport implements 
GeneratedPropertyConfigurer, ExtendedPropertyConfigurerGetter {
+
+    private static final Map<String, Object> ALL_OPTIONS;
+    static {
+        Map<String, Object> map = new CaseInsensitiveMap();
+        map.put("Configuration", net.sf.saxon.Configuration.class);
+        ALL_OPTIONS = map;
+    }
+
+    @Override
+    public boolean configure(CamelContext camelContext, Object obj, String 
name, Object value, boolean ignoreCase) {
+        XQueryLanguage target = (XQueryLanguage) obj;
+        switch (ignoreCase ? name.toLowerCase() : name) {
+        case "configuration": target.setConfiguration(property(camelContext, 
net.sf.saxon.Configuration.class, value)); return true;
+        default: return false;
+        }
+    }
+
+    @Override
+    public Map<String, Object> getAllOptions(Object target) {
+        return ALL_OPTIONS;
+    }
+
+    @Override
+    public Class<?> getOptionType(String name, boolean ignoreCase) {
+        switch (ignoreCase ? name.toLowerCase() : name) {
+        case "configuration": return net.sf.saxon.Configuration.class;
+        default: return null;
+        }
+    }
+
+    @Override
+    public Object getOptionValue(Object obj, String name, boolean ignoreCase) {
+        XQueryLanguage target = (XQueryLanguage) obj;
+        switch (ignoreCase ? name.toLowerCase() : name) {
+        case "configuration": return target.getConfiguration();
+        default: return null;
+        }
+    }
+}
+
diff --git 
a/components/camel-saxon/src/generated/resources/META-INF/services/org/apache/camel/configurer/xquery-language
 
b/components/camel-saxon/src/generated/resources/META-INF/services/org/apache/camel/configurer/xquery-language
new file mode 100644
index 000000000000..52ea308d23c5
--- /dev/null
+++ 
b/components/camel-saxon/src/generated/resources/META-INF/services/org/apache/camel/configurer/xquery-language
@@ -0,0 +1,2 @@
+# Generated by camel build tools - do NOT edit this file!
+class=org.apache.camel.language.xquery.XQueryLanguageConfigurer
diff --git 
a/components/camel-spring-parent/camel-spring/src/generated/java/org/apache/camel/language/spel/SpelLanguageConfigurer.java
 
b/components/camel-spring-parent/camel-spring/src/generated/java/org/apache/camel/language/spel/SpelLanguageConfigurer.java
new file mode 100644
index 000000000000..dff939459078
--- /dev/null
+++ 
b/components/camel-spring-parent/camel-spring/src/generated/java/org/apache/camel/language/spel/SpelLanguageConfigurer.java
@@ -0,0 +1,48 @@
+/* Generated by camel build tools - do NOT edit this file! */
+package org.apache.camel.language.spel;
+
+import javax.annotation.processing.Generated;
+import java.util.Map;
+
+import org.apache.camel.CamelContext;
+import org.apache.camel.spi.ExtendedPropertyConfigurerGetter;
+import org.apache.camel.spi.PropertyConfigurerGetter;
+import org.apache.camel.spi.ConfigurerStrategy;
+import org.apache.camel.spi.GeneratedPropertyConfigurer;
+import org.apache.camel.util.CaseInsensitiveMap;
+import org.apache.camel.support.component.PropertyConfigurerSupport;
+
+/**
+ * Generated by camel build tools - do NOT edit this file!
+ */
+@Generated("org.apache.camel.maven.packaging.PackageLanguageMojo")
+@SuppressWarnings("unchecked")
+public class SpelLanguageConfigurer extends 
org.apache.camel.support.component.PropertyConfigurerSupport implements 
GeneratedPropertyConfigurer, ExtendedPropertyConfigurerGetter {
+
+    private static final Map<String, Object> ALL_OPTIONS;
+    static {
+        Map<String, Object> map = new CaseInsensitiveMap();
+        ALL_OPTIONS = map;
+    }
+
+    @Override
+    public boolean configure(CamelContext camelContext, Object obj, String 
name, Object value, boolean ignoreCase) {
+        return false;
+    }
+
+    @Override
+    public Map<String, Object> getAllOptions(Object target) {
+        return ALL_OPTIONS;
+    }
+
+    @Override
+    public Class<?> getOptionType(String name, boolean ignoreCase) {
+        return null;
+    }
+
+    @Override
+    public Object getOptionValue(Object obj, String name, boolean ignoreCase) {
+        return null;
+    }
+}
+
diff --git 
a/components/camel-spring-parent/camel-spring/src/generated/resources/META-INF/services/org/apache/camel/configurer/spel-language
 
b/components/camel-spring-parent/camel-spring/src/generated/resources/META-INF/services/org/apache/camel/configurer/spel-language
new file mode 100644
index 000000000000..7ca14a4830e1
--- /dev/null
+++ 
b/components/camel-spring-parent/camel-spring/src/generated/resources/META-INF/services/org/apache/camel/configurer/spel-language
@@ -0,0 +1,2 @@
+# Generated by camel build tools - do NOT edit this file!
+class=org.apache.camel.language.spel.SpelLanguageConfigurer
diff --git 
a/components/camel-stax/src/generated/java/org/apache/camel/language/xtokenizer/XMLTokenizeLanguageConfigurer.java
 
b/components/camel-stax/src/generated/java/org/apache/camel/language/xtokenizer/XMLTokenizeLanguageConfigurer.java
new file mode 100644
index 000000000000..5758f0b1cb39
--- /dev/null
+++ 
b/components/camel-stax/src/generated/java/org/apache/camel/language/xtokenizer/XMLTokenizeLanguageConfigurer.java
@@ -0,0 +1,48 @@
+/* Generated by camel build tools - do NOT edit this file! */
+package org.apache.camel.language.xtokenizer;
+
+import javax.annotation.processing.Generated;
+import java.util.Map;
+
+import org.apache.camel.CamelContext;
+import org.apache.camel.spi.ExtendedPropertyConfigurerGetter;
+import org.apache.camel.spi.PropertyConfigurerGetter;
+import org.apache.camel.spi.ConfigurerStrategy;
+import org.apache.camel.spi.GeneratedPropertyConfigurer;
+import org.apache.camel.util.CaseInsensitiveMap;
+import org.apache.camel.support.component.PropertyConfigurerSupport;
+
+/**
+ * Generated by camel build tools - do NOT edit this file!
+ */
+@Generated("org.apache.camel.maven.packaging.PackageLanguageMojo")
+@SuppressWarnings("unchecked")
+public class XMLTokenizeLanguageConfigurer extends 
org.apache.camel.support.component.PropertyConfigurerSupport implements 
GeneratedPropertyConfigurer, ExtendedPropertyConfigurerGetter {
+
+    private static final Map<String, Object> ALL_OPTIONS;
+    static {
+        Map<String, Object> map = new CaseInsensitiveMap();
+        ALL_OPTIONS = map;
+    }
+
+    @Override
+    public boolean configure(CamelContext camelContext, Object obj, String 
name, Object value, boolean ignoreCase) {
+        return false;
+    }
+
+    @Override
+    public Map<String, Object> getAllOptions(Object target) {
+        return ALL_OPTIONS;
+    }
+
+    @Override
+    public Class<?> getOptionType(String name, boolean ignoreCase) {
+        return null;
+    }
+
+    @Override
+    public Object getOptionValue(Object obj, String name, boolean ignoreCase) {
+        return null;
+    }
+}
+
diff --git 
a/components/camel-stax/src/generated/resources/META-INF/services/org/apache/camel/configurer/xtokenize-language
 
b/components/camel-stax/src/generated/resources/META-INF/services/org/apache/camel/configurer/xtokenize-language
new file mode 100644
index 000000000000..7a278ee59983
--- /dev/null
+++ 
b/components/camel-stax/src/generated/resources/META-INF/services/org/apache/camel/configurer/xtokenize-language
@@ -0,0 +1,2 @@
+# Generated by camel build tools - do NOT edit this file!
+class=org.apache.camel.language.xtokenizer.XMLTokenizeLanguageConfigurer
diff --git 
a/components/camel-xpath/src/generated/java/org/apache/camel/language/xpath/XPathLanguageConfigurer.java
 
b/components/camel-xpath/src/generated/java/org/apache/camel/language/xpath/XPathLanguageConfigurer.java
new file mode 100644
index 000000000000..b74fcd6f76fc
--- /dev/null
+++ 
b/components/camel-xpath/src/generated/java/org/apache/camel/language/xpath/XPathLanguageConfigurer.java
@@ -0,0 +1,109 @@
+/* Generated by camel build tools - do NOT edit this file! */
+package org.apache.camel.language.xpath;
+
+import javax.annotation.processing.Generated;
+import java.util.Map;
+
+import org.apache.camel.CamelContext;
+import org.apache.camel.spi.ExtendedPropertyConfigurerGetter;
+import org.apache.camel.spi.PropertyConfigurerGetter;
+import org.apache.camel.spi.ConfigurerStrategy;
+import org.apache.camel.spi.GeneratedPropertyConfigurer;
+import org.apache.camel.util.CaseInsensitiveMap;
+import org.apache.camel.support.component.PropertyConfigurerSupport;
+
+/**
+ * Generated by camel build tools - do NOT edit this file!
+ */
+@Generated("org.apache.camel.maven.packaging.PackageLanguageMojo")
+@SuppressWarnings("unchecked")
+public class XPathLanguageConfigurer extends 
org.apache.camel.support.component.PropertyConfigurerSupport implements 
GeneratedPropertyConfigurer, ExtendedPropertyConfigurerGetter {
+
+    private static final Map<String, Object> ALL_OPTIONS;
+    static {
+        Map<String, Object> map = new CaseInsensitiveMap();
+        map.put("DocumentType", java.lang.Class.class);
+        map.put("LogNamespaces", java.lang.Boolean.class);
+        map.put("ObjectModelUri", java.lang.String.class);
+        map.put("PreCompile", java.lang.Boolean.class);
+        map.put("ResultQName", javax.xml.namespace.QName.class);
+        map.put("Saxon", java.lang.Boolean.class);
+        map.put("ThreadSafety", java.lang.Boolean.class);
+        map.put("XpathFactory", javax.xml.xpath.XPathFactory.class);
+        ALL_OPTIONS = map;
+    }
+
+    @Override
+    public boolean configure(CamelContext camelContext, Object obj, String 
name, Object value, boolean ignoreCase) {
+        XPathLanguage target = (XPathLanguage) obj;
+        switch (ignoreCase ? name.toLowerCase() : name) {
+        case "documenttype":
+        case "documentType": target.setDocumentType(property(camelContext, 
java.lang.Class.class, value)); return true;
+        case "lognamespaces":
+        case "logNamespaces": target.setLogNamespaces(property(camelContext, 
java.lang.Boolean.class, value)); return true;
+        case "objectmodeluri":
+        case "objectModelUri": target.setObjectModelUri(property(camelContext, 
java.lang.String.class, value)); return true;
+        case "precompile":
+        case "preCompile": target.setPreCompile(property(camelContext, 
java.lang.Boolean.class, value)); return true;
+        case "resultqname":
+        case "resultQName": target.setResultQName(property(camelContext, 
javax.xml.namespace.QName.class, value)); return true;
+        case "saxon": target.setSaxon(property(camelContext, 
java.lang.Boolean.class, value)); return true;
+        case "threadsafety":
+        case "threadSafety": target.setThreadSafety(property(camelContext, 
java.lang.Boolean.class, value)); return true;
+        case "xpathfactory":
+        case "xpathFactory": target.setXpathFactory(property(camelContext, 
javax.xml.xpath.XPathFactory.class, value)); return true;
+        default: return false;
+        }
+    }
+
+    @Override
+    public Map<String, Object> getAllOptions(Object target) {
+        return ALL_OPTIONS;
+    }
+
+    @Override
+    public Class<?> getOptionType(String name, boolean ignoreCase) {
+        switch (ignoreCase ? name.toLowerCase() : name) {
+        case "documenttype":
+        case "documentType": return java.lang.Class.class;
+        case "lognamespaces":
+        case "logNamespaces": return java.lang.Boolean.class;
+        case "objectmodeluri":
+        case "objectModelUri": return java.lang.String.class;
+        case "precompile":
+        case "preCompile": return java.lang.Boolean.class;
+        case "resultqname":
+        case "resultQName": return javax.xml.namespace.QName.class;
+        case "saxon": return java.lang.Boolean.class;
+        case "threadsafety":
+        case "threadSafety": return java.lang.Boolean.class;
+        case "xpathfactory":
+        case "xpathFactory": return javax.xml.xpath.XPathFactory.class;
+        default: return null;
+        }
+    }
+
+    @Override
+    public Object getOptionValue(Object obj, String name, boolean ignoreCase) {
+        XPathLanguage target = (XPathLanguage) obj;
+        switch (ignoreCase ? name.toLowerCase() : name) {
+        case "documenttype":
+        case "documentType": return target.getDocumentType();
+        case "lognamespaces":
+        case "logNamespaces": return target.getLogNamespaces();
+        case "objectmodeluri":
+        case "objectModelUri": return target.getObjectModelUri();
+        case "precompile":
+        case "preCompile": return target.getPreCompile();
+        case "resultqname":
+        case "resultQName": return target.getResultQName();
+        case "saxon": return target.getSaxon();
+        case "threadsafety":
+        case "threadSafety": return target.getThreadSafety();
+        case "xpathfactory":
+        case "xpathFactory": return target.getXpathFactory();
+        default: return null;
+        }
+    }
+}
+
diff --git 
a/components/camel-xpath/src/generated/resources/META-INF/services/org/apache/camel/configurer/xpath-language
 
b/components/camel-xpath/src/generated/resources/META-INF/services/org/apache/camel/configurer/xpath-language
new file mode 100644
index 000000000000..f67708fa6b1a
--- /dev/null
+++ 
b/components/camel-xpath/src/generated/resources/META-INF/services/org/apache/camel/configurer/xpath-language
@@ -0,0 +1,2 @@
+# Generated by camel build tools - do NOT edit this file!
+class=org.apache.camel.language.xpath.XPathLanguageConfigurer
diff --git 
a/core/camel-core-languages/src/generated/java/org/apache/camel/language/constant/ConstantLanguageConfigurer.java
 
b/core/camel-core-languages/src/generated/java/org/apache/camel/language/constant/ConstantLanguageConfigurer.java
new file mode 100644
index 000000000000..d97e17620528
--- /dev/null
+++ 
b/core/camel-core-languages/src/generated/java/org/apache/camel/language/constant/ConstantLanguageConfigurer.java
@@ -0,0 +1,48 @@
+/* Generated by camel build tools - do NOT edit this file! */
+package org.apache.camel.language.constant;
+
+import javax.annotation.processing.Generated;
+import java.util.Map;
+
+import org.apache.camel.CamelContext;
+import org.apache.camel.spi.ExtendedPropertyConfigurerGetter;
+import org.apache.camel.spi.PropertyConfigurerGetter;
+import org.apache.camel.spi.ConfigurerStrategy;
+import org.apache.camel.spi.GeneratedPropertyConfigurer;
+import org.apache.camel.util.CaseInsensitiveMap;
+import org.apache.camel.support.component.PropertyConfigurerSupport;
+
+/**
+ * Generated by camel build tools - do NOT edit this file!
+ */
+@Generated("org.apache.camel.maven.packaging.PackageLanguageMojo")
+@SuppressWarnings("unchecked")
+public class ConstantLanguageConfigurer extends 
org.apache.camel.support.component.PropertyConfigurerSupport implements 
GeneratedPropertyConfigurer, ExtendedPropertyConfigurerGetter {
+
+    private static final Map<String, Object> ALL_OPTIONS;
+    static {
+        Map<String, Object> map = new CaseInsensitiveMap();
+        ALL_OPTIONS = map;
+    }
+
+    @Override
+    public boolean configure(CamelContext camelContext, Object obj, String 
name, Object value, boolean ignoreCase) {
+        return false;
+    }
+
+    @Override
+    public Map<String, Object> getAllOptions(Object target) {
+        return ALL_OPTIONS;
+    }
+
+    @Override
+    public Class<?> getOptionType(String name, boolean ignoreCase) {
+        return null;
+    }
+
+    @Override
+    public Object getOptionValue(Object obj, String name, boolean ignoreCase) {
+        return null;
+    }
+}
+
diff --git 
a/core/camel-core-languages/src/generated/java/org/apache/camel/language/header/HeaderLanguageConfigurer.java
 
b/core/camel-core-languages/src/generated/java/org/apache/camel/language/header/HeaderLanguageConfigurer.java
new file mode 100644
index 000000000000..8bd512013d1b
--- /dev/null
+++ 
b/core/camel-core-languages/src/generated/java/org/apache/camel/language/header/HeaderLanguageConfigurer.java
@@ -0,0 +1,48 @@
+/* Generated by camel build tools - do NOT edit this file! */
+package org.apache.camel.language.header;
+
+import javax.annotation.processing.Generated;
+import java.util.Map;
+
+import org.apache.camel.CamelContext;
+import org.apache.camel.spi.ExtendedPropertyConfigurerGetter;
+import org.apache.camel.spi.PropertyConfigurerGetter;
+import org.apache.camel.spi.ConfigurerStrategy;
+import org.apache.camel.spi.GeneratedPropertyConfigurer;
+import org.apache.camel.util.CaseInsensitiveMap;
+import org.apache.camel.support.component.PropertyConfigurerSupport;
+
+/**
+ * Generated by camel build tools - do NOT edit this file!
+ */
+@Generated("org.apache.camel.maven.packaging.PackageLanguageMojo")
+@SuppressWarnings("unchecked")
+public class HeaderLanguageConfigurer extends 
org.apache.camel.support.component.PropertyConfigurerSupport implements 
GeneratedPropertyConfigurer, ExtendedPropertyConfigurerGetter {
+
+    private static final Map<String, Object> ALL_OPTIONS;
+    static {
+        Map<String, Object> map = new CaseInsensitiveMap();
+        ALL_OPTIONS = map;
+    }
+
+    @Override
+    public boolean configure(CamelContext camelContext, Object obj, String 
name, Object value, boolean ignoreCase) {
+        return false;
+    }
+
+    @Override
+    public Map<String, Object> getAllOptions(Object target) {
+        return ALL_OPTIONS;
+    }
+
+    @Override
+    public Class<?> getOptionType(String name, boolean ignoreCase) {
+        return null;
+    }
+
+    @Override
+    public Object getOptionValue(Object obj, String name, boolean ignoreCase) {
+        return null;
+    }
+}
+
diff --git 
a/core/camel-core-languages/src/generated/java/org/apache/camel/language/property/ExchangePropertyLanguageConfigurer.java
 
b/core/camel-core-languages/src/generated/java/org/apache/camel/language/property/ExchangePropertyLanguageConfigurer.java
new file mode 100644
index 000000000000..346ae4cd82ca
--- /dev/null
+++ 
b/core/camel-core-languages/src/generated/java/org/apache/camel/language/property/ExchangePropertyLanguageConfigurer.java
@@ -0,0 +1,48 @@
+/* Generated by camel build tools - do NOT edit this file! */
+package org.apache.camel.language.property;
+
+import javax.annotation.processing.Generated;
+import java.util.Map;
+
+import org.apache.camel.CamelContext;
+import org.apache.camel.spi.ExtendedPropertyConfigurerGetter;
+import org.apache.camel.spi.PropertyConfigurerGetter;
+import org.apache.camel.spi.ConfigurerStrategy;
+import org.apache.camel.spi.GeneratedPropertyConfigurer;
+import org.apache.camel.util.CaseInsensitiveMap;
+import org.apache.camel.support.component.PropertyConfigurerSupport;
+
+/**
+ * Generated by camel build tools - do NOT edit this file!
+ */
+@Generated("org.apache.camel.maven.packaging.PackageLanguageMojo")
+@SuppressWarnings("unchecked")
+public class ExchangePropertyLanguageConfigurer extends 
org.apache.camel.support.component.PropertyConfigurerSupport implements 
GeneratedPropertyConfigurer, ExtendedPropertyConfigurerGetter {
+
+    private static final Map<String, Object> ALL_OPTIONS;
+    static {
+        Map<String, Object> map = new CaseInsensitiveMap();
+        ALL_OPTIONS = map;
+    }
+
+    @Override
+    public boolean configure(CamelContext camelContext, Object obj, String 
name, Object value, boolean ignoreCase) {
+        return false;
+    }
+
+    @Override
+    public Map<String, Object> getAllOptions(Object target) {
+        return ALL_OPTIONS;
+    }
+
+    @Override
+    public Class<?> getOptionType(String name, boolean ignoreCase) {
+        return null;
+    }
+
+    @Override
+    public Object getOptionValue(Object obj, String name, boolean ignoreCase) {
+        return null;
+    }
+}
+
diff --git 
a/core/camel-core-languages/src/generated/java/org/apache/camel/language/ref/RefLanguageConfigurer.java
 
b/core/camel-core-languages/src/generated/java/org/apache/camel/language/ref/RefLanguageConfigurer.java
new file mode 100644
index 000000000000..eff26aadf821
--- /dev/null
+++ 
b/core/camel-core-languages/src/generated/java/org/apache/camel/language/ref/RefLanguageConfigurer.java
@@ -0,0 +1,48 @@
+/* Generated by camel build tools - do NOT edit this file! */
+package org.apache.camel.language.ref;
+
+import javax.annotation.processing.Generated;
+import java.util.Map;
+
+import org.apache.camel.CamelContext;
+import org.apache.camel.spi.ExtendedPropertyConfigurerGetter;
+import org.apache.camel.spi.PropertyConfigurerGetter;
+import org.apache.camel.spi.ConfigurerStrategy;
+import org.apache.camel.spi.GeneratedPropertyConfigurer;
+import org.apache.camel.util.CaseInsensitiveMap;
+import org.apache.camel.support.component.PropertyConfigurerSupport;
+
+/**
+ * Generated by camel build tools - do NOT edit this file!
+ */
+@Generated("org.apache.camel.maven.packaging.PackageLanguageMojo")
+@SuppressWarnings("unchecked")
+public class RefLanguageConfigurer extends 
org.apache.camel.support.component.PropertyConfigurerSupport implements 
GeneratedPropertyConfigurer, ExtendedPropertyConfigurerGetter {
+
+    private static final Map<String, Object> ALL_OPTIONS;
+    static {
+        Map<String, Object> map = new CaseInsensitiveMap();
+        ALL_OPTIONS = map;
+    }
+
+    @Override
+    public boolean configure(CamelContext camelContext, Object obj, String 
name, Object value, boolean ignoreCase) {
+        return false;
+    }
+
+    @Override
+    public Map<String, Object> getAllOptions(Object target) {
+        return ALL_OPTIONS;
+    }
+
+    @Override
+    public Class<?> getOptionType(String name, boolean ignoreCase) {
+        return null;
+    }
+
+    @Override
+    public Object getOptionValue(Object obj, String name, boolean ignoreCase) {
+        return null;
+    }
+}
+
diff --git 
a/core/camel-core-languages/src/generated/java/org/apache/camel/language/simple/FileLanguageConfigurer.java
 
b/core/camel-core-languages/src/generated/java/org/apache/camel/language/simple/FileLanguageConfigurer.java
new file mode 100644
index 000000000000..4faa0cab7999
--- /dev/null
+++ 
b/core/camel-core-languages/src/generated/java/org/apache/camel/language/simple/FileLanguageConfigurer.java
@@ -0,0 +1,48 @@
+/* Generated by camel build tools - do NOT edit this file! */
+package org.apache.camel.language.simple;
+
+import javax.annotation.processing.Generated;
+import java.util.Map;
+
+import org.apache.camel.CamelContext;
+import org.apache.camel.spi.ExtendedPropertyConfigurerGetter;
+import org.apache.camel.spi.PropertyConfigurerGetter;
+import org.apache.camel.spi.ConfigurerStrategy;
+import org.apache.camel.spi.GeneratedPropertyConfigurer;
+import org.apache.camel.util.CaseInsensitiveMap;
+import org.apache.camel.support.component.PropertyConfigurerSupport;
+
+/**
+ * Generated by camel build tools - do NOT edit this file!
+ */
+@Generated("org.apache.camel.maven.packaging.PackageLanguageMojo")
+@SuppressWarnings("unchecked")
+public class FileLanguageConfigurer extends 
org.apache.camel.support.component.PropertyConfigurerSupport implements 
GeneratedPropertyConfigurer, ExtendedPropertyConfigurerGetter {
+
+    private static final Map<String, Object> ALL_OPTIONS;
+    static {
+        Map<String, Object> map = new CaseInsensitiveMap();
+        ALL_OPTIONS = map;
+    }
+
+    @Override
+    public boolean configure(CamelContext camelContext, Object obj, String 
name, Object value, boolean ignoreCase) {
+        return false;
+    }
+
+    @Override
+    public Map<String, Object> getAllOptions(Object target) {
+        return ALL_OPTIONS;
+    }
+
+    @Override
+    public Class<?> getOptionType(String name, boolean ignoreCase) {
+        return null;
+    }
+
+    @Override
+    public Object getOptionValue(Object obj, String name, boolean ignoreCase) {
+        return null;
+    }
+}
+
diff --git 
a/core/camel-core-languages/src/generated/java/org/apache/camel/language/simple/SimpleLanguageConfigurer.java
 
b/core/camel-core-languages/src/generated/java/org/apache/camel/language/simple/SimpleLanguageConfigurer.java
new file mode 100644
index 000000000000..b3c156d9a80d
--- /dev/null
+++ 
b/core/camel-core-languages/src/generated/java/org/apache/camel/language/simple/SimpleLanguageConfigurer.java
@@ -0,0 +1,48 @@
+/* Generated by camel build tools - do NOT edit this file! */
+package org.apache.camel.language.simple;
+
+import javax.annotation.processing.Generated;
+import java.util.Map;
+
+import org.apache.camel.CamelContext;
+import org.apache.camel.spi.ExtendedPropertyConfigurerGetter;
+import org.apache.camel.spi.PropertyConfigurerGetter;
+import org.apache.camel.spi.ConfigurerStrategy;
+import org.apache.camel.spi.GeneratedPropertyConfigurer;
+import org.apache.camel.util.CaseInsensitiveMap;
+import org.apache.camel.support.component.PropertyConfigurerSupport;
+
+/**
+ * Generated by camel build tools - do NOT edit this file!
+ */
+@Generated("org.apache.camel.maven.packaging.PackageLanguageMojo")
+@SuppressWarnings("unchecked")
+public class SimpleLanguageConfigurer extends 
org.apache.camel.support.component.PropertyConfigurerSupport implements 
GeneratedPropertyConfigurer, ExtendedPropertyConfigurerGetter {
+
+    private static final Map<String, Object> ALL_OPTIONS;
+    static {
+        Map<String, Object> map = new CaseInsensitiveMap();
+        ALL_OPTIONS = map;
+    }
+
+    @Override
+    public boolean configure(CamelContext camelContext, Object obj, String 
name, Object value, boolean ignoreCase) {
+        return false;
+    }
+
+    @Override
+    public Map<String, Object> getAllOptions(Object target) {
+        return ALL_OPTIONS;
+    }
+
+    @Override
+    public Class<?> getOptionType(String name, boolean ignoreCase) {
+        return null;
+    }
+
+    @Override
+    public Object getOptionValue(Object obj, String name, boolean ignoreCase) {
+        return null;
+    }
+}
+
diff --git 
a/core/camel-core-languages/src/generated/java/org/apache/camel/language/tokenizer/TokenizeLanguageConfigurer.java
 
b/core/camel-core-languages/src/generated/java/org/apache/camel/language/tokenizer/TokenizeLanguageConfigurer.java
new file mode 100644
index 000000000000..31c81b262030
--- /dev/null
+++ 
b/core/camel-core-languages/src/generated/java/org/apache/camel/language/tokenizer/TokenizeLanguageConfigurer.java
@@ -0,0 +1,48 @@
+/* Generated by camel build tools - do NOT edit this file! */
+package org.apache.camel.language.tokenizer;
+
+import javax.annotation.processing.Generated;
+import java.util.Map;
+
+import org.apache.camel.CamelContext;
+import org.apache.camel.spi.ExtendedPropertyConfigurerGetter;
+import org.apache.camel.spi.PropertyConfigurerGetter;
+import org.apache.camel.spi.ConfigurerStrategy;
+import org.apache.camel.spi.GeneratedPropertyConfigurer;
+import org.apache.camel.util.CaseInsensitiveMap;
+import org.apache.camel.support.component.PropertyConfigurerSupport;
+
+/**
+ * Generated by camel build tools - do NOT edit this file!
+ */
+@Generated("org.apache.camel.maven.packaging.PackageLanguageMojo")
+@SuppressWarnings("unchecked")
+public class TokenizeLanguageConfigurer extends 
org.apache.camel.support.component.PropertyConfigurerSupport implements 
GeneratedPropertyConfigurer, ExtendedPropertyConfigurerGetter {
+
+    private static final Map<String, Object> ALL_OPTIONS;
+    static {
+        Map<String, Object> map = new CaseInsensitiveMap();
+        ALL_OPTIONS = map;
+    }
+
+    @Override
+    public boolean configure(CamelContext camelContext, Object obj, String 
name, Object value, boolean ignoreCase) {
+        return false;
+    }
+
+    @Override
+    public Map<String, Object> getAllOptions(Object target) {
+        return ALL_OPTIONS;
+    }
+
+    @Override
+    public Class<?> getOptionType(String name, boolean ignoreCase) {
+        return null;
+    }
+
+    @Override
+    public Object getOptionValue(Object obj, String name, boolean ignoreCase) {
+        return null;
+    }
+}
+
diff --git 
a/core/camel-core-languages/src/generated/java/org/apache/camel/language/variable/VariableLanguageConfigurer.java
 
b/core/camel-core-languages/src/generated/java/org/apache/camel/language/variable/VariableLanguageConfigurer.java
new file mode 100644
index 000000000000..d8effe195b42
--- /dev/null
+++ 
b/core/camel-core-languages/src/generated/java/org/apache/camel/language/variable/VariableLanguageConfigurer.java
@@ -0,0 +1,48 @@
+/* Generated by camel build tools - do NOT edit this file! */
+package org.apache.camel.language.variable;
+
+import javax.annotation.processing.Generated;
+import java.util.Map;
+
+import org.apache.camel.CamelContext;
+import org.apache.camel.spi.ExtendedPropertyConfigurerGetter;
+import org.apache.camel.spi.PropertyConfigurerGetter;
+import org.apache.camel.spi.ConfigurerStrategy;
+import org.apache.camel.spi.GeneratedPropertyConfigurer;
+import org.apache.camel.util.CaseInsensitiveMap;
+import org.apache.camel.support.component.PropertyConfigurerSupport;
+
+/**
+ * Generated by camel build tools - do NOT edit this file!
+ */
+@Generated("org.apache.camel.maven.packaging.PackageLanguageMojo")
+@SuppressWarnings("unchecked")
+public class VariableLanguageConfigurer extends 
org.apache.camel.support.component.PropertyConfigurerSupport implements 
GeneratedPropertyConfigurer, ExtendedPropertyConfigurerGetter {
+
+    private static final Map<String, Object> ALL_OPTIONS;
+    static {
+        Map<String, Object> map = new CaseInsensitiveMap();
+        ALL_OPTIONS = map;
+    }
+
+    @Override
+    public boolean configure(CamelContext camelContext, Object obj, String 
name, Object value, boolean ignoreCase) {
+        return false;
+    }
+
+    @Override
+    public Map<String, Object> getAllOptions(Object target) {
+        return ALL_OPTIONS;
+    }
+
+    @Override
+    public Class<?> getOptionType(String name, boolean ignoreCase) {
+        return null;
+    }
+
+    @Override
+    public Object getOptionValue(Object obj, String name, boolean ignoreCase) {
+        return null;
+    }
+}
+
diff --git 
a/core/camel-core-languages/src/generated/resources/META-INF/services/org/apache/camel/configurer/constant-language
 
b/core/camel-core-languages/src/generated/resources/META-INF/services/org/apache/camel/configurer/constant-language
new file mode 100644
index 000000000000..d8576930cf60
--- /dev/null
+++ 
b/core/camel-core-languages/src/generated/resources/META-INF/services/org/apache/camel/configurer/constant-language
@@ -0,0 +1,2 @@
+# Generated by camel build tools - do NOT edit this file!
+class=org.apache.camel.language.constant.ConstantLanguageConfigurer
diff --git 
a/core/camel-core-languages/src/generated/resources/META-INF/services/org/apache/camel/configurer/exchangeProperty-language
 
b/core/camel-core-languages/src/generated/resources/META-INF/services/org/apache/camel/configurer/exchangeProperty-language
new file mode 100644
index 000000000000..809171b96e6e
--- /dev/null
+++ 
b/core/camel-core-languages/src/generated/resources/META-INF/services/org/apache/camel/configurer/exchangeProperty-language
@@ -0,0 +1,2 @@
+# Generated by camel build tools - do NOT edit this file!
+class=org.apache.camel.language.property.ExchangePropertyLanguageConfigurer
diff --git 
a/core/camel-core-languages/src/generated/resources/META-INF/services/org/apache/camel/configurer/file-language
 
b/core/camel-core-languages/src/generated/resources/META-INF/services/org/apache/camel/configurer/file-language
new file mode 100644
index 000000000000..311677f0ec61
--- /dev/null
+++ 
b/core/camel-core-languages/src/generated/resources/META-INF/services/org/apache/camel/configurer/file-language
@@ -0,0 +1,2 @@
+# Generated by camel build tools - do NOT edit this file!
+class=org.apache.camel.language.simple.FileLanguageConfigurer
diff --git 
a/core/camel-core-languages/src/generated/resources/META-INF/services/org/apache/camel/configurer/header-language
 
b/core/camel-core-languages/src/generated/resources/META-INF/services/org/apache/camel/configurer/header-language
new file mode 100644
index 000000000000..5e5c152039e3
--- /dev/null
+++ 
b/core/camel-core-languages/src/generated/resources/META-INF/services/org/apache/camel/configurer/header-language
@@ -0,0 +1,2 @@
+# Generated by camel build tools - do NOT edit this file!
+class=org.apache.camel.language.header.HeaderLanguageConfigurer
diff --git 
a/core/camel-core-languages/src/generated/resources/META-INF/services/org/apache/camel/configurer/ref-language
 
b/core/camel-core-languages/src/generated/resources/META-INF/services/org/apache/camel/configurer/ref-language
new file mode 100644
index 000000000000..2140bd7b072c
--- /dev/null
+++ 
b/core/camel-core-languages/src/generated/resources/META-INF/services/org/apache/camel/configurer/ref-language
@@ -0,0 +1,2 @@
+# Generated by camel build tools - do NOT edit this file!
+class=org.apache.camel.language.ref.RefLanguageConfigurer
diff --git 
a/core/camel-core-languages/src/generated/resources/META-INF/services/org/apache/camel/configurer/simple-language
 
b/core/camel-core-languages/src/generated/resources/META-INF/services/org/apache/camel/configurer/simple-language
new file mode 100644
index 000000000000..6b2c0ce553ec
--- /dev/null
+++ 
b/core/camel-core-languages/src/generated/resources/META-INF/services/org/apache/camel/configurer/simple-language
@@ -0,0 +1,2 @@
+# Generated by camel build tools - do NOT edit this file!
+class=org.apache.camel.language.simple.SimpleLanguageConfigurer
diff --git 
a/core/camel-core-languages/src/generated/resources/META-INF/services/org/apache/camel/configurer/tokenize-language
 
b/core/camel-core-languages/src/generated/resources/META-INF/services/org/apache/camel/configurer/tokenize-language
new file mode 100644
index 000000000000..189bb64abdf9
--- /dev/null
+++ 
b/core/camel-core-languages/src/generated/resources/META-INF/services/org/apache/camel/configurer/tokenize-language
@@ -0,0 +1,2 @@
+# Generated by camel build tools - do NOT edit this file!
+class=org.apache.camel.language.tokenizer.TokenizeLanguageConfigurer
diff --git 
a/core/camel-core-languages/src/generated/resources/META-INF/services/org/apache/camel/configurer/variable-language
 
b/core/camel-core-languages/src/generated/resources/META-INF/services/org/apache/camel/configurer/variable-language
new file mode 100644
index 000000000000..3a9c4136ba9c
--- /dev/null
+++ 
b/core/camel-core-languages/src/generated/resources/META-INF/services/org/apache/camel/configurer/variable-language
@@ -0,0 +1,2 @@
+# Generated by camel build tools - do NOT edit this file!
+class=org.apache.camel.language.variable.VariableLanguageConfigurer
diff --git 
a/core/camel-main/src/main/java/org/apache/camel/main/BaseMainSupport.java 
b/core/camel-main/src/main/java/org/apache/camel/main/BaseMainSupport.java
index 09f1f0063a47..7fc74449180a 100644
--- a/core/camel-main/src/main/java/org/apache/camel/main/BaseMainSupport.java
+++ b/core/camel-main/src/main/java/org/apache/camel/main/BaseMainSupport.java
@@ -3263,7 +3263,8 @@ public abstract class BaseMainSupport extends BaseService 
{
                     entry.getKey().getOptionPrefix(),
                     failFast,
                     true,
-                    autoConfiguredProperties);
+                    autoConfiguredProperties,
+                    MainHelper.configurerByName(camelContext, 
entry.getKey().getOptionPrefix(), instance));
         }
 
         // log which options was not set
diff --git 
a/core/camel-main/src/main/java/org/apache/camel/main/MainHelper.java 
b/core/camel-main/src/main/java/org/apache/camel/main/MainHelper.java
index 524e8b0281b4..d26a04dd7967 100644
--- a/core/camel-main/src/main/java/org/apache/camel/main/MainHelper.java
+++ b/core/camel-main/src/main/java/org/apache/camel/main/MainHelper.java
@@ -307,14 +307,25 @@ public final class MainHelper {
             CamelContext context, Object target, OrderedLocationProperties 
properties,
             String optionPrefix, boolean failIfNotSet, boolean ignoreCase,
             OrderedLocationProperties autoConfiguredProperties) {
+        return setPropertiesOnTarget(context, target, properties, 
optionPrefix, failIfNotSet, ignoreCase,
+                autoConfiguredProperties, null);
+    }
+
+    /**
+     * Sets the properties on the target, with the given configurer, or when 
null, the configurer of the target found by
+     * its type.
+     */
+    public static boolean setPropertiesOnTarget(
+            CamelContext context, Object target, OrderedLocationProperties 
properties,
+            String optionPrefix, boolean failIfNotSet, boolean ignoreCase,
+            OrderedLocationProperties autoConfiguredProperties, 
PropertyConfigurer configurer) {
 
         ObjectHelper.notNull(context, "context");
         ObjectHelper.notNull(target, "target");
         ObjectHelper.notNull(properties, "properties");
 
         boolean rc = false;
-        PropertyConfigurer configurer = null;
-        if (target instanceof Component component) {
+        if (configurer == null && target instanceof Component component) {
             // the component needs to be initialized to have the configurer 
ready
             ServiceHelper.initService(target);
             configurer = component.getComponentPropertyConfigurer();
@@ -406,6 +417,37 @@ public final class MainHelper {
         return rc;
     }
 
+    /**
+     * The configurer of the data format or language that the option prefix, 
such as camel.dataformat.jacksonXml. or
+     * camel.language.jsonpath., is about. They are found by their name 
(jacksonXml-dataformat, jsonpath-language), as
+     * their name cannot always be told from their type.
+     *
+     * @param  target the data format or language
+     * @return        the configurer, or <tt>null</tt> for any other prefix, 
when there is none, or when it is not the
+     *                configurer of the type of the target (such as a custom 
bean with the name of a data format)
+     */
+    public static PropertyConfigurer configurerByName(CamelContext context, 
String optionPrefix, Object target) {
+        String kind;
+        if (optionPrefix.startsWith("camel.dataformat.")) {
+            kind = "dataformat";
+        } else if (optionPrefix.startsWith("camel.language.")) {
+            kind = "language";
+        } else {
+            return null;
+        }
+        String name = StringHelper.between(optionPrefix, "camel." + kind + 
".", ".");
+        if (name == null || name.isEmpty()) {
+            return null;
+        }
+        PropertyConfigurer configurer
+                = 
PluginHelper.getConfigurerResolver(context).resolvePropertyConfigurer(name + 
"-" + kind, context);
+        // the generated configurer of a type is named after it
+        if (configurer != null && 
configurer.getClass().getName().equals(target.getClass().getName() + 
"Configurer")) {
+            return configurer;
+        }
+        return null;
+    }
+
     public static void computeProperties(
             String keyPrefix, String key, OrderedLocationProperties prop,
             Map<PropertyOptionKey, OrderedLocationProperties> properties,
diff --git 
a/core/camel-main/src/test/java/org/apache/camel/main/MainConfigurerByNameTest.java
 
b/core/camel-main/src/test/java/org/apache/camel/main/MainConfigurerByNameTest.java
new file mode 100644
index 000000000000..e69b61e1b7fe
--- /dev/null
+++ 
b/core/camel-main/src/test/java/org/apache/camel/main/MainConfigurerByNameTest.java
@@ -0,0 +1,152 @@
+/*
+ * 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.main;
+
+import java.io.InputStream;
+import java.io.OutputStream;
+
+import org.apache.camel.CamelContext;
+import org.apache.camel.Exchange;
+import org.apache.camel.Expression;
+import org.apache.camel.Predicate;
+import org.apache.camel.spi.DataFormat;
+import org.apache.camel.spi.GeneratedPropertyConfigurer;
+import org.apache.camel.support.LanguageSupport;
+import org.apache.camel.support.component.PropertyConfigurerSupport;
+import org.apache.camel.support.service.ServiceSupport;
+import org.junit.jupiter.api.Test;
+
+import static org.junit.jupiter.api.Assertions.assertEquals;
+
+/**
+ * camel.language.<name>.<option> and camel.dataformat.<name>.<option> are set 
with the configurer found by the name
+ * (<name>-language, <name>-dataformat), not by reflection. The options of 
these test types have no setter, so only
+ * their configurer can set them.
+ */
+public class MainConfigurerByNameTest {
+
+    @Test
+    public void testLanguageAndDataFormat() {
+        Main main = new Main();
+        main.bind("mylang", new MyLanguage());
+        main.bind("mydf", new MyDataFormat());
+        main.addProperty("camel.language.mylang.level", "3");
+        main.addProperty("camel.dataformat.mydf.level", "5");
+        main.start();
+        try {
+            CamelContext context = main.getCamelContext();
+            assertEquals(3, ((MyLanguage) 
context.resolveLanguage("mylang")).getLevel());
+            assertEquals(5, ((MyDataFormat) 
context.resolveDataFormat("mydf")).getLevel());
+        } finally {
+            main.stop();
+        }
+    }
+
+    @Test
+    public void testConfigurerOfAnotherType() {
+        // a bean with the name of the language whose type is not the one of 
the configurer: set by reflection
+        Main main = new Main();
+        main.bind("otherlang", new OtherLanguage());
+        main.addProperty("camel.language.otherlang.level", "7");
+        main.start();
+        try {
+            assertEquals(7, ((OtherLanguage) 
main.getCamelContext().resolveLanguage("otherlang")).getLevel());
+        } finally {
+            main.stop();
+        }
+    }
+
+    public static class MyLanguage extends LanguageSupport {
+        private int level;
+
+        public int getLevel() {
+            return level;
+        }
+
+        @Override
+        public Predicate createPredicate(String expression) {
+            throw new UnsupportedOperationException();
+        }
+
+        @Override
+        public Expression createExpression(String expression) {
+            throw new UnsupportedOperationException();
+        }
+    }
+
+    public static class MyLanguageConfigurer extends PropertyConfigurerSupport 
implements GeneratedPropertyConfigurer {
+        @Override
+        public boolean configure(CamelContext camelContext, Object obj, String 
name, Object value, boolean ignoreCase) {
+            if ("level".equalsIgnoreCase(name)) {
+                ((MyLanguage) obj).level = property(camelContext, int.class, 
value);
+                return true;
+            }
+            return false;
+        }
+    }
+
+    public static class OtherLanguage extends LanguageSupport {
+        private int level;
+
+        public int getLevel() {
+            return level;
+        }
+
+        public void setLevel(int level) {
+            this.level = level;
+        }
+
+        @Override
+        public Predicate createPredicate(String expression) {
+            throw new UnsupportedOperationException();
+        }
+
+        @Override
+        public Expression createExpression(String expression) {
+            throw new UnsupportedOperationException();
+        }
+    }
+
+    public static class MyDataFormat extends ServiceSupport implements 
DataFormat {
+        private int level;
+
+        public int getLevel() {
+            return level;
+        }
+
+        @Override
+        public void marshal(Exchange exchange, Object graph, OutputStream 
stream) {
+            throw new UnsupportedOperationException();
+        }
+
+        @Override
+        public Object unmarshal(Exchange exchange, InputStream stream) {
+            throw new UnsupportedOperationException();
+        }
+    }
+
+    public static class MyDataFormatConfigurer extends 
PropertyConfigurerSupport implements GeneratedPropertyConfigurer {
+        @Override
+        public boolean configure(CamelContext camelContext, Object obj, String 
name, Object value, boolean ignoreCase) {
+            if ("level".equalsIgnoreCase(name)) {
+                ((MyDataFormat) obj).level = property(camelContext, int.class, 
value);
+                return true;
+            }
+            return false;
+        }
+    }
+}
diff --git 
a/core/camel-main/src/test/resources/META-INF/services/org/apache/camel/configurer/mydf-dataformat
 
b/core/camel-main/src/test/resources/META-INF/services/org/apache/camel/configurer/mydf-dataformat
new file mode 100644
index 000000000000..d2310d4e7eb0
--- /dev/null
+++ 
b/core/camel-main/src/test/resources/META-INF/services/org/apache/camel/configurer/mydf-dataformat
@@ -0,0 +1 @@
+class=org.apache.camel.main.MainConfigurerByNameTest$MyDataFormatConfigurer
diff --git 
a/core/camel-main/src/test/resources/META-INF/services/org/apache/camel/configurer/mylang-language
 
b/core/camel-main/src/test/resources/META-INF/services/org/apache/camel/configurer/mylang-language
new file mode 100644
index 000000000000..6d6377a78313
--- /dev/null
+++ 
b/core/camel-main/src/test/resources/META-INF/services/org/apache/camel/configurer/mylang-language
@@ -0,0 +1 @@
+class=org.apache.camel.main.MainConfigurerByNameTest$MyLanguageConfigurer
diff --git 
a/core/camel-main/src/test/resources/META-INF/services/org/apache/camel/configurer/otherlang-language
 
b/core/camel-main/src/test/resources/META-INF/services/org/apache/camel/configurer/otherlang-language
new file mode 100644
index 000000000000..6d6377a78313
--- /dev/null
+++ 
b/core/camel-main/src/test/resources/META-INF/services/org/apache/camel/configurer/otherlang-language
@@ -0,0 +1 @@
+class=org.apache.camel.main.MainConfigurerByNameTest$MyLanguageConfigurer
diff --git 
a/tooling/maven/camel-package-maven-plugin/src/main/java/org/apache/camel/maven/packaging/AbstractGeneratorMojo.java
 
b/tooling/maven/camel-package-maven-plugin/src/main/java/org/apache/camel/maven/packaging/AbstractGeneratorMojo.java
index 5c71cce5f659..c6aacb5ccbd2 100644
--- 
a/tooling/maven/camel-package-maven-plugin/src/main/java/org/apache/camel/maven/packaging/AbstractGeneratorMojo.java
+++ 
b/tooling/maven/camel-package-maven-plugin/src/main/java/org/apache/camel/maven/packaging/AbstractGeneratorMojo.java
@@ -26,7 +26,9 @@ import java.nio.file.attribute.BasicFileAttributes;
 import java.time.Duration;
 import java.util.Collection;
 import java.util.Collections;
+import java.util.Comparator;
 import java.util.Date;
+import java.util.HashMap;
 import java.util.HashSet;
 import java.util.LinkedHashSet;
 import java.util.Map;
@@ -295,4 +297,35 @@ public abstract class AbstractGeneratorMojo extends 
AbstractMojo {
                 .filter(o -> found.add(o.getConfigurationClass()))
                 .collect(Collectors.toCollection(LinkedHashSet::new));
     }
+
+    /**
+     * Generates the source of the property configurer of a data format or 
language, from its options.
+     */
+    public String generatePropertyConfigurer(
+            String pn, String cn, String pfqn, String en, boolean hasSuper,
+            Collection<? extends BaseOptionModel> options)
+            throws IOException {
+
+        options = 
options.stream().sorted(Comparator.comparing(BaseOptionModel::getName)).toList();
+
+        Map<String, Object> ctx = new HashMap<>();
+        ctx.put("generatorClass", getClass().getName());
+        ctx.put("package", pn);
+        ctx.put("className", cn);
+        ctx.put("type", en);
+        ctx.put("pfqn", pfqn);
+        ctx.put("psn", pfqn);
+        ctx.put("hasSuper", hasSuper);
+        ctx.put("component", false);
+        ctx.put("extended", true);
+        ctx.put("bootstrap", false);
+        ctx.put("options", options);
+        ctx.put("model", null);
+        ctx.put("mojo", this);
+        return velocity("velocity/property-configurer.vm", ctx);
+    }
+
+    public static String generateMetaInfConfigurer(String fqn) {
+        return "# " + GENERATED_MSG + NL + "class=" + fqn + NL;
+    }
 }
diff --git 
a/tooling/maven/camel-package-maven-plugin/src/main/java/org/apache/camel/maven/packaging/PackageDataFormatMojo.java
 
b/tooling/maven/camel-package-maven-plugin/src/main/java/org/apache/camel/maven/packaging/PackageDataFormatMojo.java
index 66377f9c3cf0..ba99d781e47d 100644
--- 
a/tooling/maven/camel-package-maven-plugin/src/main/java/org/apache/camel/maven/packaging/PackageDataFormatMojo.java
+++ 
b/tooling/maven/camel-package-maven-plugin/src/main/java/org/apache/camel/maven/packaging/PackageDataFormatMojo.java
@@ -21,9 +21,7 @@ import java.io.IOException;
 import java.nio.file.Files;
 import java.nio.file.Path;
 import java.util.ArrayList;
-import java.util.Collection;
 import java.util.Collections;
-import java.util.Comparator;
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
@@ -37,7 +35,6 @@ import javax.inject.Inject;
 import org.apache.camel.maven.packaging.generics.ClassUtil;
 import org.apache.camel.spi.BodyTypes;
 import org.apache.camel.spi.Metadata;
-import org.apache.camel.tooling.model.BaseOptionModel;
 import org.apache.camel.tooling.model.DataFormatModel;
 import org.apache.camel.tooling.model.DataFormatModel.DataFormatOptionModel;
 import org.apache.camel.tooling.model.EipModel;
@@ -650,32 +647,4 @@ public class PackageDataFormatMojo extends 
AbstractGeneratorMojo {
         }
     }
 
-    public String generatePropertyConfigurer(
-            String pn, String cn, String pfqn, String en, boolean hasSuper,
-            Collection<DataFormatOptionModel> options)
-            throws IOException {
-
-        options = 
options.stream().sorted(Comparator.comparing(BaseOptionModel::getName)).toList();
-
-        Map<String, Object> ctx = new HashMap<>();
-        ctx.put("generatorClass", getClass().getName());
-        ctx.put("package", pn);
-        ctx.put("className", cn);
-        ctx.put("type", en);
-        ctx.put("pfqn", pfqn);
-        ctx.put("psn", pfqn);
-        ctx.put("hasSuper", hasSuper);
-        ctx.put("component", false);
-        ctx.put("extended", true);
-        ctx.put("bootstrap", false);
-        ctx.put("options", options);
-        ctx.put("model", null);
-        ctx.put("mojo", this);
-        return velocity("velocity/property-configurer.vm", ctx);
-    }
-
-    public static String generateMetaInfConfigurer(String fqn) {
-        return "# " + GENERATED_MSG + NL + "class=" + fqn + NL;
-    }
-
 }
diff --git 
a/tooling/maven/camel-package-maven-plugin/src/main/java/org/apache/camel/maven/packaging/PackageLanguageMojo.java
 
b/tooling/maven/camel-package-maven-plugin/src/main/java/org/apache/camel/maven/packaging/PackageLanguageMojo.java
index 5896f34c82ad..8edaa6b3c182 100644
--- 
a/tooling/maven/camel-package-maven-plugin/src/main/java/org/apache/camel/maven/packaging/PackageLanguageMojo.java
+++ 
b/tooling/maven/camel-package-maven-plugin/src/main/java/org/apache/camel/maven/packaging/PackageLanguageMojo.java
@@ -72,6 +72,18 @@ public class PackageLanguageMojo extends 
AbstractGeneratorMojo {
     @Parameter(defaultValue = "${project.basedir}/src/generated/resources")
     protected File schemaOutDir;
 
+    /**
+     * The output directory for the generated language configurer java classes
+     */
+    @Parameter(defaultValue = "${project.basedir}/src/generated/java")
+    protected File configurerSourceOutDir;
+
+    /**
+     * The output directory for the generated language configurer resources
+     */
+    @Parameter(defaultValue = "${project.basedir}/src/generated/resources")
+    protected File configurerResourceOutDir;
+
     /**
      * The project build directory
      */
@@ -81,6 +93,7 @@ public class PackageLanguageMojo extends 
AbstractGeneratorMojo {
     @Inject
     public PackageLanguageMojo(Log log, MavenProject project, 
MavenProjectHelper projectHelper,
                                File buildDir, File languageOutDir, File 
schemaOutDir,
+                               File configurerSourceOutDir, File 
configurerResourceOutDir,
                                BuildContext buildContext) {
         super(projectHelper, buildContext);
 
@@ -89,6 +102,8 @@ public class PackageLanguageMojo extends 
AbstractGeneratorMojo {
         this.buildDir = buildDir;
         this.languageOutDir = languageOutDir;
         this.schemaOutDir = schemaOutDir;
+        this.configurerSourceOutDir = configurerSourceOutDir;
+        this.configurerResourceOutDir = configurerResourceOutDir;
     }
 
     /**
@@ -187,6 +202,18 @@ public class PackageLanguageMojo extends 
AbstractGeneratorMojo {
                         if (log.isDebugEnabled()) {
                             log.debug("Generated " + out + " containing JSON 
schema for " + name + " language");
                         }
+
+                        // the configurer that sets the options of the 
language (camel.language.<name>.<option>)
+                        // without reflection, found by its name as the 
configurer of a data format is
+                        String cn = javaType.getSimpleName() + "Configurer";
+                        String pn = javaType.getPackageName();
+                        updateResource(configurerSourceOutDir.toPath(), 
pn.replace('.', '/') + "/" + cn + ".java",
+                                generatePropertyConfigurer(pn, cn,
+                                        
"org.apache.camel.support.component.PropertyConfigurerSupport",
+                                        javaType.getSimpleName(), false, 
languageModel.getLanguageOptions()));
+                        updateResource(configurerResourceOutDir.toPath(),
+                                
"META-INF/services/org/apache/camel/configurer/" + name + "-language",
+                                generateMetaInfConfigurer(pn + "." + cn));
                     }
                 } else {
                     throw new MojoExecutionException(
diff --git 
a/tooling/maven/camel-package-maven-plugin/src/main/java/org/apache/camel/maven/packaging/PrepareComponentMojo.java
 
b/tooling/maven/camel-package-maven-plugin/src/main/java/org/apache/camel/maven/packaging/PrepareComponentMojo.java
index e7e22eb3015e..8ecd071cfd4b 100644
--- 
a/tooling/maven/camel-package-maven-plugin/src/main/java/org/apache/camel/maven/packaging/PrepareComponentMojo.java
+++ 
b/tooling/maven/camel-package-maven-plugin/src/main/java/org/apache/camel/maven/packaging/PrepareComponentMojo.java
@@ -150,7 +150,7 @@ public class PrepareComponentMojo extends 
AbstractGeneratorMojo {
                 configurerResourceOutDir, schemaOutDir, 
buildContext).prepareDataFormat();
         count += new PackageLanguageMojo(
                 getLog(), project, projectHelper, buildDir, languageOutDir,
-                schemaOutDir, buildContext).prepareLanguage();
+                schemaOutDir, configurerSourceOutDir, 
configurerResourceOutDir, buildContext).prepareLanguage();
         if (count == 0 && new File(project.getBasedir(), 
"src/main/java").isDirectory()) {
             // okay its not any of the above then its other
             new PackageOtherMojo(
diff --git 
a/tooling/maven/camel-package-maven-plugin/src/test/java/org/apache/camel/maven/packaging/PackageLanguageMojoTest.java
 
b/tooling/maven/camel-package-maven-plugin/src/test/java/org/apache/camel/maven/packaging/PackageLanguageMojoTest.java
index 3a9bfdc52649..25262f3c72b2 100644
--- 
a/tooling/maven/camel-package-maven-plugin/src/test/java/org/apache/camel/maven/packaging/PackageLanguageMojoTest.java
+++ 
b/tooling/maven/camel-package-maven-plugin/src/test/java/org/apache/camel/maven/packaging/PackageLanguageMojoTest.java
@@ -131,18 +131,45 @@ class PackageLanguageMojoTest {
         assertThrows(IllegalArgumentException.class, () -> 
PackageLanguageMojo.languageOptions(UndescribedLanguage.class));
     }
 
+    @Test
+    void theConfigurerSetsAndGetsTheOptions() throws Exception {
+        String source = 
mojo(OptionsLanguage.class).generatePropertyConfigurer("org.example", 
"OptionsLanguageConfigurer",
+                
"org.apache.camel.support.component.PropertyConfigurerSupport", 
"OptionsLanguage", false,
+                PackageLanguageMojo.languageOptions(OptionsLanguage.class));
+        assertTrue(source.contains("public class OptionsLanguageConfigurer 
extends"), source);
+        assertTrue(
+                source.contains("case \"memory\": 
target.setMemory(property(camelContext, long.class, value)); return true;"),
+                source);
+        assertTrue(source.contains("case \"memory\": return 
target.getMemory();"), source);
+        assertTrue(source.contains("case \"base\": 
target.setBase(property(camelContext, java.lang.String.class, value));"),
+                source);
+    }
+
+    @Test
+    void aLanguageWithoutOptionsHasAnEmptyConfigurer() throws Exception {
+        String source = 
mojo(GenericLanguage.class).generatePropertyConfigurer("org.example", 
"GenericLanguageConfigurer",
+                
"org.apache.camel.support.component.PropertyConfigurerSupport", 
"GenericLanguage", false,
+                PackageLanguageMojo.languageOptions(GenericLanguage.class));
+        assertTrue(source.contains("public class GenericLanguageConfigurer 
extends"), source);
+        assertFalse(source.contains("case \""), source);
+    }
+
     private LanguageModel extract(Class<?> type) {
+        PackageLanguageMojo mojo = mojo(type);
+        return mojo.extractLanguageModel(mojo.project, GENERIC_MODEL, 
"custom", type);
+    }
+
+    private PackageLanguageMojo mojo(Class<?> type) {
         MavenProject project = new MavenProject();
         project.setGroupId("org.apache.camel");
         project.setArtifactId("camel-custom");
         project.setVersion("4.24.0-SNAPSHOT");
-        PackageLanguageMojo mojo = new PackageLanguageMojo(new 
SystemStreamLog(), project, null, null, null, null, null) {
+        return new PackageLanguageMojo(new SystemStreamLog(), project, null, 
null, null, null, null, null, null) {
             @Override
             protected Class<?> loadClass(String name) {
                 return type;
             }
         };
-        return mojo.extractLanguageModel(project, GENERIC_MODEL, "custom", 
type);
     }
 
     @Language(value = "custom", modelName = "language")

Reply via email to