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")
