This is an automated email from the ASF dual-hosted git repository. davsclaus pushed a commit to branch re in repository https://gitbox.apache.org/repos/asf/camel.git
commit 57f4ae947df0106b8076db38fa855337a0c5346b Author: Claus Ibsen <[email protected]> AuthorDate: Thu Jun 26 13:34:30 2025 +0200 CAMEL-22200: components that are resource endpoint based should have content cache true as default and make it configurable on component level. --- .../component/mvel/MvelComponentConfigurer.java | 6 + .../org/apache/camel/component/mvel/mvel.json | 5 +- .../apache/camel/component/mvel/MvelComponent.java | 19 ++- .../apache/camel/component/mvel/MvelEndpoint.java | 9 +- .../apache/camel/language/mvel/MvelRefTest.java | 55 +++++++++ .../RobotFrameworkEndpointConfigurer.java | 6 - .../RobotFrameworkEndpointUriFactory.java | 3 +- .../component/robotframework/robotframework.json | 127 ++++++++++----------- .../RobotFrameworkCamelConfiguration.java | 23 +--- .../robotframework/RobotFrameworkComponent.java | 5 +- .../robotframework/RobotFrameworkEndpoint.java | 2 + 11 files changed, 162 insertions(+), 98 deletions(-) diff --git a/components/camel-mvel/src/generated/java/org/apache/camel/component/mvel/MvelComponentConfigurer.java b/components/camel-mvel/src/generated/java/org/apache/camel/component/mvel/MvelComponentConfigurer.java index 35185cac1f8..017ac4b8f0e 100644 --- a/components/camel-mvel/src/generated/java/org/apache/camel/component/mvel/MvelComponentConfigurer.java +++ b/components/camel-mvel/src/generated/java/org/apache/camel/component/mvel/MvelComponentConfigurer.java @@ -29,6 +29,8 @@ public class MvelComponentConfigurer extends PropertyConfigurerSupport implement case "allowTemplateFromHeader": target.setAllowTemplateFromHeader(property(camelContext, boolean.class, value)); return true; case "autowiredenabled": case "autowiredEnabled": target.setAutowiredEnabled(property(camelContext, boolean.class, value)); return true; + case "contentcache": + case "contentCache": target.setContentCache(property(camelContext, boolean.class, value)); return true; case "lazystartproducer": case "lazyStartProducer": target.setLazyStartProducer(property(camelContext, boolean.class, value)); return true; default: return false; @@ -44,6 +46,8 @@ public class MvelComponentConfigurer extends PropertyConfigurerSupport implement case "allowTemplateFromHeader": return boolean.class; case "autowiredenabled": case "autowiredEnabled": return boolean.class; + case "contentcache": + case "contentCache": return boolean.class; case "lazystartproducer": case "lazyStartProducer": return boolean.class; default: return null; @@ -60,6 +64,8 @@ public class MvelComponentConfigurer extends PropertyConfigurerSupport implement case "allowTemplateFromHeader": return target.isAllowTemplateFromHeader(); case "autowiredenabled": case "autowiredEnabled": return target.isAutowiredEnabled(); + case "contentcache": + case "contentCache": return target.isContentCache(); case "lazystartproducer": case "lazyStartProducer": return target.isLazyStartProducer(); default: return null; diff --git a/components/camel-mvel/src/generated/resources/META-INF/org/apache/camel/component/mvel/mvel.json b/components/camel-mvel/src/generated/resources/META-INF/org/apache/camel/component/mvel/mvel.json index e60f17a58c5..1fe5a59d795 100644 --- a/components/camel-mvel/src/generated/resources/META-INF/org/apache/camel/component/mvel/mvel.json +++ b/components/camel-mvel/src/generated/resources/META-INF/org/apache/camel/component/mvel/mvel.json @@ -26,8 +26,9 @@ "componentProperties": { "allowContextMapAll": { "index": 0, "kind": "property", "displayName": "Allow Context Map All", "group": "producer", "label": "", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Sets whether the context map should allow access to all details. By default only the message body and headers can be accessed. This option can be enabled for full access to the current Exchange and Ca [...] "allowTemplateFromHeader": { "index": 1, "kind": "property", "displayName": "Allow Template From Header", "group": "producer", "label": "", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Whether to allow to use resource template from header or not (default false). Enabling this allows to specify dynamic templates via message header. However this can be seen as a potential se [...] - "lazyStartProducer": { "index": 2, "kind": "property", "displayName": "Lazy Start Producer", "group": "producer", "label": "producer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail [...] - "autowiredEnabled": { "index": 3, "kind": "property", "displayName": "Autowired Enabled", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": true, "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching t [...] + "contentCache": { "index": 2, "kind": "property", "displayName": "Content Cache", "group": "producer", "label": "", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": true, "description": "Sets whether to use resource content cache or not" }, + "lazyStartProducer": { "index": 3, "kind": "property", "displayName": "Lazy Start Producer", "group": "producer", "label": "producer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail [...] + "autowiredEnabled": { "index": 4, "kind": "property", "displayName": "Autowired Enabled", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": true, "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching t [...] }, "headers": { "CamelMvelResourceUri": { "index": 0, "kind": "header", "displayName": "", "group": "producer", "label": "", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "A URI for the template resource to use instead of the endpoint configured.", "constantName": "org.apache.camel.component.mvel.MvelConstants#MVEL_RESOURCE_URI" }, diff --git a/components/camel-mvel/src/main/java/org/apache/camel/component/mvel/MvelComponent.java b/components/camel-mvel/src/main/java/org/apache/camel/component/mvel/MvelComponent.java index f87afebe6c7..77b58762554 100644 --- a/components/camel-mvel/src/main/java/org/apache/camel/component/mvel/MvelComponent.java +++ b/components/camel-mvel/src/main/java/org/apache/camel/component/mvel/MvelComponent.java @@ -30,9 +30,11 @@ import org.apache.camel.support.ResourceHelper; @Component("mvel") public class MvelComponent extends DefaultComponent { - @Metadata(defaultValue = "false") + @Metadata(defaultValue = "true", description = "Sets whether to use resource content cache or not") + private boolean contentCache; + @Metadata private boolean allowTemplateFromHeader; - @Metadata(defaultValue = "false") + @Metadata private boolean allowContextMapAll; public MvelComponent() { @@ -40,7 +42,7 @@ public class MvelComponent extends DefaultComponent { @Override protected Endpoint createEndpoint(String uri, String remaining, Map<String, Object> parameters) throws Exception { - boolean cache = getAndRemoveParameter(parameters, "contentCache", Boolean.class, Boolean.TRUE); + boolean cache = getAndRemoveParameter(parameters, "contentCache", Boolean.class, contentCache); MvelEndpoint answer = new MvelEndpoint(uri, this, remaining); answer.setContentCache(cache); @@ -58,6 +60,17 @@ public class MvelComponent extends DefaultComponent { return answer; } + public boolean isContentCache() { + return contentCache; + } + + /** + * Sets whether to use resource content cache or not + */ + public void setContentCache(boolean contentCache) { + this.contentCache = contentCache; + } + public boolean isAllowTemplateFromHeader() { return allowTemplateFromHeader; } diff --git a/components/camel-mvel/src/main/java/org/apache/camel/component/mvel/MvelEndpoint.java b/components/camel-mvel/src/main/java/org/apache/camel/component/mvel/MvelEndpoint.java index 73a054cadae..8e67b315b5e 100644 --- a/components/camel-mvel/src/main/java/org/apache/camel/component/mvel/MvelEndpoint.java +++ b/components/camel-mvel/src/main/java/org/apache/camel/component/mvel/MvelEndpoint.java @@ -41,7 +41,7 @@ import org.mvel2.templates.TemplateRuntime; remote = false, category = { Category.TRANSFORMATION, Category.SCRIPT }, headersClass = MvelConstants.class) public class MvelEndpoint extends ResourceEndpoint { - @UriParam(defaultValue = "false") + @UriParam private boolean allowTemplateFromHeader; @UriParam private String encoding; @@ -58,6 +58,13 @@ public class MvelEndpoint extends ResourceEndpoint { return false; } + @Override + public void clearContentCache() { + super.clearContentCache(); + this.template = null; + this.compiled = null; + } + @Override public ExchangePattern getExchangePattern() { return ExchangePattern.InOut; diff --git a/components/camel-mvel/src/test/java/org/apache/camel/language/mvel/MvelRefTest.java b/components/camel-mvel/src/test/java/org/apache/camel/language/mvel/MvelRefTest.java new file mode 100644 index 00000000000..92e4cb9cf62 --- /dev/null +++ b/components/camel-mvel/src/test/java/org/apache/camel/language/mvel/MvelRefTest.java @@ -0,0 +1,55 @@ +/* + * 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.language.mvel; + +import org.apache.camel.Exchange; +import org.apache.camel.Processor; +import org.apache.camel.builder.RouteBuilder; +import org.apache.camel.test.junit5.CamelTestSupport; +import org.junit.jupiter.api.Test; + +import static org.junit.jupiter.api.Assertions.assertEquals; + +public class MvelRefTest extends CamelTestSupport { + + private static final String TEMP = "@{\"The result is \" + body * headers.multiplier}"; + + @Test + public void testRef() { + Exchange exchange = template.request("direct:a", new Processor() { + @Override + public void process(Exchange exchange) { + exchange.getIn().setBody(7); + exchange.getIn().setHeader("multiplier", 3); + } + }); + + assertEquals("The result is 21", exchange.getMessage().getBody()); + } + + @Override + protected RouteBuilder createRouteBuilder() { + return new RouteBuilder() { + public void configure() { + context.getRegistry().bind("mytemp", TEMP); + + from("direct:a").to( + "mvel:ref:mytemp"); + } + }; + } +} diff --git a/components/camel-robotframework/src/generated/java/org/apache/camel/component/robotframework/RobotFrameworkEndpointConfigurer.java b/components/camel-robotframework/src/generated/java/org/apache/camel/component/robotframework/RobotFrameworkEndpointConfigurer.java index e24d704b2e4..ebfbb731dfd 100644 --- a/components/camel-robotframework/src/generated/java/org/apache/camel/component/robotframework/RobotFrameworkEndpointConfigurer.java +++ b/components/camel-robotframework/src/generated/java/org/apache/camel/component/robotframework/RobotFrameworkEndpointConfigurer.java @@ -39,8 +39,6 @@ public class RobotFrameworkEndpointConfigurer extends PropertyConfigurerSupport case "bridgeErrorHandler": target.setBridgeErrorHandler(property(camelContext, boolean.class, value)); return true; case "combinedtagstats": case "combinedTagStats": target.getConfiguration().setCombinedTagStats(property(camelContext, java.lang.String.class, value)); return true; - case "contentcache": - case "contentCache": target.setContentCache(property(camelContext, boolean.class, value)); return true; case "criticaltags": case "criticalTags": target.getConfiguration().setCriticalTags(property(camelContext, java.lang.String.class, value)); return true; case "debugfile": @@ -163,8 +161,6 @@ public class RobotFrameworkEndpointConfigurer extends PropertyConfigurerSupport case "bridgeErrorHandler": return boolean.class; case "combinedtagstats": case "combinedTagStats": return java.lang.String.class; - case "contentcache": - case "contentCache": return boolean.class; case "criticaltags": case "criticalTags": return java.lang.String.class; case "debugfile": @@ -288,8 +284,6 @@ public class RobotFrameworkEndpointConfigurer extends PropertyConfigurerSupport case "bridgeErrorHandler": return target.isBridgeErrorHandler(); case "combinedtagstats": case "combinedTagStats": return target.getConfiguration().getCombinedTagStats(); - case "contentcache": - case "contentCache": return target.isContentCache(); case "criticaltags": case "criticalTags": return target.getConfiguration().getCriticalTags(); case "debugfile": diff --git a/components/camel-robotframework/src/generated/java/org/apache/camel/component/robotframework/RobotFrameworkEndpointUriFactory.java b/components/camel-robotframework/src/generated/java/org/apache/camel/component/robotframework/RobotFrameworkEndpointUriFactory.java index 277a9307c72..5ee521d9b4f 100644 --- a/components/camel-robotframework/src/generated/java/org/apache/camel/component/robotframework/RobotFrameworkEndpointUriFactory.java +++ b/components/camel-robotframework/src/generated/java/org/apache/camel/component/robotframework/RobotFrameworkEndpointUriFactory.java @@ -23,7 +23,7 @@ public class RobotFrameworkEndpointUriFactory extends org.apache.camel.support.c private static final Set<String> SECRET_PROPERTY_NAMES; private static final Set<String> MULTI_VALUE_PREFIXES; static { - Set<String> props = new HashSet<>(69); + Set<String> props = new HashSet<>(68); props.add("allowContextMapAll"); props.add("allowTemplateFromHeader"); props.add("argumentFiles"); @@ -32,7 +32,6 @@ public class RobotFrameworkEndpointUriFactory extends org.apache.camel.support.c props.add("backoffMultiplier"); props.add("bridgeErrorHandler"); props.add("combinedTagStats"); - props.add("contentCache"); props.add("criticalTags"); props.add("debugFile"); props.add("delay"); diff --git a/components/camel-robotframework/src/generated/resources/META-INF/org/apache/camel/component/robotframework/robotframework.json b/components/camel-robotframework/src/generated/resources/META-INF/org/apache/camel/component/robotframework/robotframework.json index 0be01c9bbd5..a91283c53f0 100644 --- a/components/camel-robotframework/src/generated/resources/META-INF/org/apache/camel/component/robotframework/robotframework.json +++ b/components/camel-robotframework/src/generated/resources/META-INF/org/apache/camel/component/robotframework/robotframework.json @@ -87,69 +87,68 @@ "allowTemplateFromHeader": { "index": 2, "kind": "parameter", "displayName": "Allow Template From Header", "group": "common", "label": "", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.robotframework.RobotFrameworkCamelConfiguration", "configurationField": "configuration", "description": "Whether to allow to use resource template from heade [...] "argumentFiles": { "index": 3, "kind": "parameter", "displayName": "Argument Files", "group": "common", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.robotframework.RobotFrameworkCamelConfiguration", "configurationField": "configuration", "description": "A text String to read more arguments from." }, "combinedTagStats": { "index": 4, "kind": "parameter", "displayName": "Combined Tag Stats", "group": "common", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.robotframework.RobotFrameworkCamelConfiguration", "configurationField": "configuration", "description": "Creates combined statistics based on tags. Use the format tags:title List" }, - "contentCache": { "index": 5, "kind": "parameter", "displayName": "Content Cache", "group": "common", "label": "", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": true, "description": "Sets whether to use resource content cache or not" }, - "criticalTags": { "index": 6, "kind": "parameter", "displayName": "Critical Tags", "group": "common", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.robotframework.RobotFrameworkCamelConfiguration", "configurationField": "configuration", "description": "Tests that have the given tags are considered critical. List" }, - "debugFile": { "index": 7, "kind": "parameter", "displayName": "Debug File", "group": "common", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.robotframework.RobotFrameworkCamelConfiguration", "configurationField": "configuration", "description": "A debug String that is written during execution." }, - "document": { "index": 8, "kind": "parameter", "displayName": "Document", "group": "common", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.robotframework.RobotFrameworkCamelConfiguration", "configurationField": "configuration", "description": "Sets the documentation of the top-level tests suites." }, - "dryrun": { "index": 9, "kind": "parameter", "displayName": "Dryrun", "group": "common", "label": "", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.robotframework.RobotFrameworkCamelConfiguration", "configurationField": "configuration", "description": "Sets dryrun mode on use. In the dry run mode tests are run without executing keywords ori [...] - "excludes": { "index": 10, "kind": "parameter", "displayName": "Excludes", "group": "common", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.robotframework.RobotFrameworkCamelConfiguration", "configurationField": "configuration", "description": "Selects the tests cases by tags. List" }, - "exitOnFailure": { "index": 11, "kind": "parameter", "displayName": "Exit On Failure", "group": "common", "label": "", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.robotframework.RobotFrameworkCamelConfiguration", "configurationField": "configuration", "description": "Sets robot to stop execution immediately if a critical test fails." }, - "includes": { "index": 12, "kind": "parameter", "displayName": "Includes", "group": "common", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.robotframework.RobotFrameworkCamelConfiguration", "configurationField": "configuration", "description": "Selects the tests cases by tags. List" }, - "listener": { "index": 13, "kind": "parameter", "displayName": "Listener", "group": "common", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.robotframework.RobotFrameworkCamelConfiguration", "configurationField": "configuration", "description": "Sets a single listener for monitoring tests execution" }, - "listeners": { "index": 14, "kind": "parameter", "displayName": "Listeners", "group": "common", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.robotframework.RobotFrameworkCamelConfiguration", "configurationField": "configuration", "description": "Sets multiple listeners for monitoring tests execution. Use the format ListenerWithArgs:arg1:arg2 [...] - "log": { "index": 15, "kind": "parameter", "displayName": "Log", "group": "common", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.robotframework.RobotFrameworkCamelConfiguration", "configurationField": "configuration", "description": "Sets the path to the generated log String." }, - "logLevel": { "index": 16, "kind": "parameter", "displayName": "Log Level", "group": "common", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.robotframework.RobotFrameworkCamelConfiguration", "configurationField": "configuration", "description": "Sets the threshold level for logging." }, - "logTitle": { "index": 17, "kind": "parameter", "displayName": "Log Title", "group": "common", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.robotframework.RobotFrameworkCamelConfiguration", "configurationField": "configuration", "description": "Sets a title for the generated tests log." }, - "metadata": { "index": 18, "kind": "parameter", "displayName": "Metadata", "group": "common", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.robotframework.RobotFrameworkCamelConfiguration", "configurationField": "configuration", "description": "Sets free metadata for the top level tests suites. comma seperated list of string resulting as List" }, - "monitorColors": { "index": 19, "kind": "parameter", "displayName": "Monitor Colors", "group": "common", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.robotframework.RobotFrameworkCamelConfiguration", "configurationField": "configuration", "description": "Using ANSI colors in console. Normally colors work in unixes but not in Windows. Default [...] - "monitorWidth": { "index": 20, "kind": "parameter", "displayName": "Monitor Width", "group": "common", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "78", "configurationClass": "org.apache.camel.component.robotframework.RobotFrameworkCamelConfiguration", "configurationField": "configuration", "description": "Width of the monitor output. Default is 78." }, - "name": { "index": 21, "kind": "parameter", "displayName": "Name", "group": "common", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.robotframework.RobotFrameworkCamelConfiguration", "configurationField": "configuration", "description": "Sets the name of the top-level tests suites." }, - "nonCriticalTags": { "index": 22, "kind": "parameter", "displayName": "Non Critical Tags", "group": "common", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.robotframework.RobotFrameworkCamelConfiguration", "configurationField": "configuration", "description": "Tests that have the given tags are not critical. List" }, - "noStatusReturnCode": { "index": 23, "kind": "parameter", "displayName": "No Status Return Code", "group": "common", "label": "", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.robotframework.RobotFrameworkCamelConfiguration", "configurationField": "configuration", "description": "If true, sets the return code to zero regardless of failures [...] - "output": { "index": 24, "kind": "parameter", "displayName": "Output", "group": "common", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.robotframework.RobotFrameworkCamelConfiguration", "configurationField": "configuration", "description": "Sets the path to the generated output String." }, - "outputDirectory": { "index": 25, "kind": "parameter", "displayName": "Output Directory", "group": "common", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.robotframework.RobotFrameworkCamelConfiguration", "configurationField": "configuration", "description": "Configures where generated reports are to be placed." }, - "randomize": { "index": 26, "kind": "parameter", "displayName": "Randomize", "group": "common", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.robotframework.RobotFrameworkCamelConfiguration", "configurationField": "configuration", "description": "Sets the test execution order to be randomized. Valid values are all, suite, and test" }, - "report": { "index": 27, "kind": "parameter", "displayName": "Report", "group": "common", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.robotframework.RobotFrameworkCamelConfiguration", "configurationField": "configuration", "description": "Sets the path to the generated report String." }, - "reportBackground": { "index": 28, "kind": "parameter", "displayName": "Report Background", "group": "common", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.robotframework.RobotFrameworkCamelConfiguration", "configurationField": "configuration", "description": "Sets background colors for the generated report and summary." }, - "reportTitle": { "index": 29, "kind": "parameter", "displayName": "Report Title", "group": "common", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.robotframework.RobotFrameworkCamelConfiguration", "configurationField": "configuration", "description": "Sets a title for the generated tests report." }, - "runEmptySuite": { "index": 30, "kind": "parameter", "displayName": "Run Empty Suite", "group": "common", "label": "", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.robotframework.RobotFrameworkCamelConfiguration", "configurationField": "configuration", "description": "Executes tests also if the top level test suite is empty. Useful e.g. wi [...] - "runFailed": { "index": 31, "kind": "parameter", "displayName": "Run Failed", "group": "common", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.robotframework.RobotFrameworkCamelConfiguration", "configurationField": "configuration", "description": "Re-run failed tests, based on output.xml String." }, - "runMode": { "index": 32, "kind": "parameter", "displayName": "Run Mode", "group": "common", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.robotframework.RobotFrameworkCamelConfiguration", "configurationField": "configuration", "description": "Sets the execution mode for this tests run. Note that this setting has been deprecated in Robot Fram [...] - "skipTeardownOnExit": { "index": 33, "kind": "parameter", "displayName": "Skip Teardown On Exit", "group": "common", "label": "", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.robotframework.RobotFrameworkCamelConfiguration", "configurationField": "configuration", "description": "Sets whether the teardowns are skipped if the test execution [...] - "splitOutputs": { "index": 34, "kind": "parameter", "displayName": "Split Outputs", "group": "common", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.robotframework.RobotFrameworkCamelConfiguration", "configurationField": "configuration", "description": "Splits output and log files." }, - "suites": { "index": 35, "kind": "parameter", "displayName": "Suites", "group": "common", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.robotframework.RobotFrameworkCamelConfiguration", "configurationField": "configuration", "description": "Selects the tests suites by name. List" }, - "suiteStatLevel": { "index": 36, "kind": "parameter", "displayName": "Suite Stat Level", "group": "common", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.robotframework.RobotFrameworkCamelConfiguration", "configurationField": "configuration", "description": "Defines how many levels to show in the Statistics by Suite table in outputs." }, - "summaryTitle": { "index": 37, "kind": "parameter", "displayName": "Summary Title", "group": "common", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.robotframework.RobotFrameworkCamelConfiguration", "configurationField": "configuration", "description": "Sets a title for the generated summary report." }, - "tagDocs": { "index": 38, "kind": "parameter", "displayName": "Tag Docs", "group": "common", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.robotframework.RobotFrameworkCamelConfiguration", "configurationField": "configuration", "description": "Adds documentation to the specified tags. List" }, - "tags": { "index": 39, "kind": "parameter", "displayName": "Tags", "group": "common", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.robotframework.RobotFrameworkCamelConfiguration", "configurationField": "configuration", "description": "Sets the tags(s) to all executed tests cases. List" }, - "tagStatExcludes": { "index": 40, "kind": "parameter", "displayName": "Tag Stat Excludes", "group": "common", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.robotframework.RobotFrameworkCamelConfiguration", "configurationField": "configuration", "description": "Excludes these tags from the Statistics by Tag and Test Details by Tag tables in ou [...] - "tagStatIncludes": { "index": 41, "kind": "parameter", "displayName": "Tag Stat Includes", "group": "common", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.robotframework.RobotFrameworkCamelConfiguration", "configurationField": "configuration", "description": "Includes only these tags in the Statistics by Tag and Test Details by Tag tables in [...] - "tagStatLinks": { "index": 42, "kind": "parameter", "displayName": "Tag Stat Links", "group": "common", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.robotframework.RobotFrameworkCamelConfiguration", "configurationField": "configuration", "description": "Adds external links to the Statistics by Tag table in outputs. Use the format pattern:lin [...] - "tests": { "index": 43, "kind": "parameter", "displayName": "Tests", "group": "common", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.robotframework.RobotFrameworkCamelConfiguration", "configurationField": "configuration", "description": "Selects the tests cases by name. List" }, - "timestampOutputs": { "index": 44, "kind": "parameter", "displayName": "Timestamp Outputs", "group": "common", "label": "", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.robotframework.RobotFrameworkCamelConfiguration", "configurationField": "configuration", "description": "Adds a timestamp to all output files." }, - "variableFiles": { "index": 45, "kind": "parameter", "displayName": "Variable Files", "group": "common", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.robotframework.RobotFrameworkCamelConfiguration", "configurationField": "configuration", "description": "Sets variables using variables files. Use the format path:args List" }, - "variables": { "index": 46, "kind": "parameter", "displayName": "Variables", "group": "common", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.robotframework.RobotFrameworkCamelConfiguration", "configurationField": "configuration", "description": "Sets individual variables. Use the format name:value List" }, - "warnOnSkippedFiles": { "index": 47, "kind": "parameter", "displayName": "Warn On Skipped Files", "group": "common", "label": "", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.robotframework.RobotFrameworkCamelConfiguration", "configurationField": "configuration", "description": "Show a warning when an invalid String is skipped." }, - "xunitFile": { "index": 48, "kind": "parameter", "displayName": "Xunit File", "group": "common", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.robotframework.RobotFrameworkCamelConfiguration", "configurationField": "configuration", "description": "Sets the path to the generated XUnit compatible result String, relative to outputDirectory. The [...] - "sendEmptyMessageWhenIdle": { "index": 49, "kind": "parameter", "displayName": "Send Empty Message When Idle", "group": "consumer", "label": "consumer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "If the polling consumer did not poll any files, you can enable this option to send an empty message (no body) instead." }, - "bridgeErrorHandler": { "index": 50, "kind": "parameter", "displayName": "Bridge Error Handler", "group": "consumer (advanced)", "label": "consumer,advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Allows for bridging the consumer to the Camel routing Error Handler, which mean any exceptions (if possible) occurred while the Camel consumer is trying to pickup incoming [...] - "exceptionHandler": { "index": 51, "kind": "parameter", "displayName": "Exception Handler", "group": "consumer (advanced)", "label": "consumer,advanced", "required": false, "type": "object", "javaType": "org.apache.camel.spi.ExceptionHandler", "optionalPrefix": "consumer.", "deprecated": false, "autowired": false, "secret": false, "description": "To let the consumer use a custom ExceptionHandler. Notice if the option bridgeErrorHandler is enabled then this option is not in use. By de [...] - "exchangePattern": { "index": 52, "kind": "parameter", "displayName": "Exchange Pattern", "group": "consumer (advanced)", "label": "consumer,advanced", "required": false, "type": "object", "javaType": "org.apache.camel.ExchangePattern", "enum": [ "InOnly", "InOut" ], "deprecated": false, "autowired": false, "secret": false, "description": "Sets the exchange pattern when the consumer creates an exchange." }, - "pollStrategy": { "index": 53, "kind": "parameter", "displayName": "Poll Strategy", "group": "consumer (advanced)", "label": "consumer,advanced", "required": false, "type": "object", "javaType": "org.apache.camel.spi.PollingConsumerPollStrategy", "deprecated": false, "autowired": false, "secret": false, "description": "A pluggable org.apache.camel.PollingConsumerPollingStrategy allowing you to provide your custom implementation to control error handling usually occurred during the po [...] - "lazyStartProducer": { "index": 54, "kind": "parameter", "displayName": "Lazy Start Producer", "group": "producer (advanced)", "label": "producer,advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a produ [...] - "backoffErrorThreshold": { "index": 55, "kind": "parameter", "displayName": "Backoff Error Threshold", "group": "scheduler", "label": "consumer,scheduler", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "autowired": false, "secret": false, "description": "The number of subsequent error polls (failed due some error) that should happen before the backoffMultipler should kick-in." }, - "backoffIdleThreshold": { "index": 56, "kind": "parameter", "displayName": "Backoff Idle Threshold", "group": "scheduler", "label": "consumer,scheduler", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "autowired": false, "secret": false, "description": "The number of subsequent idle polls that should happen before the backoffMultipler should kick-in." }, - "backoffMultiplier": { "index": 57, "kind": "parameter", "displayName": "Backoff Multiplier", "group": "scheduler", "label": "consumer,scheduler", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "autowired": false, "secret": false, "description": "To let the scheduled polling consumer backoff if there has been a number of subsequent idles\/errors in a row. The multiplier is then the number of polls that will be skipped before the next actual attempt is h [...] - "delay": { "index": 58, "kind": "parameter", "displayName": "Delay", "group": "scheduler", "label": "consumer,scheduler", "required": false, "type": "integer", "javaType": "long", "deprecated": false, "autowired": false, "secret": false, "defaultValue": 500, "description": "Milliseconds before the next poll." }, - "greedy": { "index": 59, "kind": "parameter", "displayName": "Greedy", "group": "scheduler", "label": "consumer,scheduler", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "If greedy is enabled, then the ScheduledPollConsumer will run immediately again, if the previous run polled 1 or more messages." }, - "initialDelay": { "index": 60, "kind": "parameter", "displayName": "Initial Delay", "group": "scheduler", "label": "consumer,scheduler", "required": false, "type": "integer", "javaType": "long", "deprecated": false, "autowired": false, "secret": false, "defaultValue": 1000, "description": "Milliseconds before the first poll starts." }, - "repeatCount": { "index": 61, "kind": "parameter", "displayName": "Repeat Count", "group": "scheduler", "label": "consumer,scheduler", "required": false, "type": "integer", "javaType": "long", "deprecated": false, "autowired": false, "secret": false, "defaultValue": 0, "description": "Specifies a maximum limit of number of fires. So if you set it to 1, the scheduler will only fire once. If you set it to 5, it will only fire five times. A value of zero or negative means fire forever." }, - "runLoggingLevel": { "index": 62, "kind": "parameter", "displayName": "Run Logging Level", "group": "scheduler", "label": "consumer,scheduler", "required": false, "type": "object", "javaType": "org.apache.camel.LoggingLevel", "enum": [ "TRACE", "DEBUG", "INFO", "WARN", "ERROR", "OFF" ], "deprecated": false, "autowired": false, "secret": false, "defaultValue": "TRACE", "description": "The consumer logs a start\/complete log line when it polls. This option allows you to configure the l [...] - "scheduledExecutorService": { "index": 63, "kind": "parameter", "displayName": "Scheduled Executor Service", "group": "scheduler", "label": "consumer,scheduler", "required": false, "type": "object", "javaType": "java.util.concurrent.ScheduledExecutorService", "deprecated": false, "autowired": false, "secret": false, "description": "Allows for configuring a custom\/shared thread pool to use for the consumer. By default each consumer has its own single threaded thread pool." }, - "scheduler": { "index": 64, "kind": "parameter", "displayName": "Scheduler", "group": "scheduler", "label": "consumer,scheduler", "required": false, "type": "object", "javaType": "java.lang.Object", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "none", "description": "To use a cron scheduler from either camel-spring or camel-quartz component. Use value spring or quartz for built in scheduler" }, - "schedulerProperties": { "index": 65, "kind": "parameter", "displayName": "Scheduler Properties", "group": "scheduler", "label": "consumer,scheduler", "required": false, "type": "object", "javaType": "java.util.Map<java.lang.String, java.lang.Object>", "prefix": "scheduler.", "multiValue": true, "deprecated": false, "autowired": false, "secret": false, "description": "To configure additional properties when using a custom scheduler or any of the Quartz, Spring based scheduler. This i [...] - "startScheduler": { "index": 66, "kind": "parameter", "displayName": "Start Scheduler", "group": "scheduler", "label": "consumer,scheduler", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": true, "description": "Whether the scheduler should be auto started." }, - "timeUnit": { "index": 67, "kind": "parameter", "displayName": "Time Unit", "group": "scheduler", "label": "consumer,scheduler", "required": false, "type": "object", "javaType": "java.util.concurrent.TimeUnit", "enum": [ "NANOSECONDS", "MICROSECONDS", "MILLISECONDS", "SECONDS", "MINUTES", "HOURS", "DAYS" ], "deprecated": false, "autowired": false, "secret": false, "defaultValue": "MILLISECONDS", "description": "Time unit for initialDelay and delay options." }, - "useFixedDelay": { "index": 68, "kind": "parameter", "displayName": "Use Fixed Delay", "group": "scheduler", "label": "consumer,scheduler", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": true, "description": "Controls if fixed delay or fixed rate is used. See ScheduledExecutorService in JDK for details." } + "criticalTags": { "index": 5, "kind": "parameter", "displayName": "Critical Tags", "group": "common", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.robotframework.RobotFrameworkCamelConfiguration", "configurationField": "configuration", "description": "Tests that have the given tags are considered critical. List" }, + "debugFile": { "index": 6, "kind": "parameter", "displayName": "Debug File", "group": "common", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.robotframework.RobotFrameworkCamelConfiguration", "configurationField": "configuration", "description": "A debug String that is written during execution." }, + "document": { "index": 7, "kind": "parameter", "displayName": "Document", "group": "common", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.robotframework.RobotFrameworkCamelConfiguration", "configurationField": "configuration", "description": "Sets the documentation of the top-level tests suites." }, + "dryrun": { "index": 8, "kind": "parameter", "displayName": "Dryrun", "group": "common", "label": "", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.robotframework.RobotFrameworkCamelConfiguration", "configurationField": "configuration", "description": "Sets dryrun mode on use. In the dry run mode tests are run without executing keywords ori [...] + "excludes": { "index": 9, "kind": "parameter", "displayName": "Excludes", "group": "common", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.robotframework.RobotFrameworkCamelConfiguration", "configurationField": "configuration", "description": "Selects the tests cases by tags. List" }, + "exitOnFailure": { "index": 10, "kind": "parameter", "displayName": "Exit On Failure", "group": "common", "label": "", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.robotframework.RobotFrameworkCamelConfiguration", "configurationField": "configuration", "description": "Sets robot to stop execution immediately if a critical test fails." }, + "includes": { "index": 11, "kind": "parameter", "displayName": "Includes", "group": "common", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.robotframework.RobotFrameworkCamelConfiguration", "configurationField": "configuration", "description": "Selects the tests cases by tags. List" }, + "listener": { "index": 12, "kind": "parameter", "displayName": "Listener", "group": "common", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.robotframework.RobotFrameworkCamelConfiguration", "configurationField": "configuration", "description": "Sets a single listener for monitoring tests execution" }, + "listeners": { "index": 13, "kind": "parameter", "displayName": "Listeners", "group": "common", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.robotframework.RobotFrameworkCamelConfiguration", "configurationField": "configuration", "description": "Sets multiple listeners for monitoring tests execution. Use the format ListenerWithArgs:arg1:arg2 [...] + "log": { "index": 14, "kind": "parameter", "displayName": "Log", "group": "common", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.robotframework.RobotFrameworkCamelConfiguration", "configurationField": "configuration", "description": "Sets the path to the generated log String." }, + "logLevel": { "index": 15, "kind": "parameter", "displayName": "Log Level", "group": "common", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.robotframework.RobotFrameworkCamelConfiguration", "configurationField": "configuration", "description": "Sets the threshold level for logging." }, + "logTitle": { "index": 16, "kind": "parameter", "displayName": "Log Title", "group": "common", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.robotframework.RobotFrameworkCamelConfiguration", "configurationField": "configuration", "description": "Sets a title for the generated tests log." }, + "metadata": { "index": 17, "kind": "parameter", "displayName": "Metadata", "group": "common", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.robotframework.RobotFrameworkCamelConfiguration", "configurationField": "configuration", "description": "Sets free metadata for the top level tests suites. comma seperated list of string resulting as List" }, + "monitorColors": { "index": 18, "kind": "parameter", "displayName": "Monitor Colors", "group": "common", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.robotframework.RobotFrameworkCamelConfiguration", "configurationField": "configuration", "description": "Using ANSI colors in console. Normally colors work in unixes but not in Windows. Default [...] + "monitorWidth": { "index": 19, "kind": "parameter", "displayName": "Monitor Width", "group": "common", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "78", "configurationClass": "org.apache.camel.component.robotframework.RobotFrameworkCamelConfiguration", "configurationField": "configuration", "description": "Width of the monitor output. Default is 78." }, + "name": { "index": 20, "kind": "parameter", "displayName": "Name", "group": "common", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.robotframework.RobotFrameworkCamelConfiguration", "configurationField": "configuration", "description": "Sets the name of the top-level tests suites." }, + "nonCriticalTags": { "index": 21, "kind": "parameter", "displayName": "Non Critical Tags", "group": "common", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.robotframework.RobotFrameworkCamelConfiguration", "configurationField": "configuration", "description": "Tests that have the given tags are not critical. List" }, + "noStatusReturnCode": { "index": 22, "kind": "parameter", "displayName": "No Status Return Code", "group": "common", "label": "", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.robotframework.RobotFrameworkCamelConfiguration", "configurationField": "configuration", "description": "If true, sets the return code to zero regardless of failures [...] + "output": { "index": 23, "kind": "parameter", "displayName": "Output", "group": "common", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.robotframework.RobotFrameworkCamelConfiguration", "configurationField": "configuration", "description": "Sets the path to the generated output String." }, + "outputDirectory": { "index": 24, "kind": "parameter", "displayName": "Output Directory", "group": "common", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.robotframework.RobotFrameworkCamelConfiguration", "configurationField": "configuration", "description": "Configures where generated reports are to be placed." }, + "randomize": { "index": 25, "kind": "parameter", "displayName": "Randomize", "group": "common", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.robotframework.RobotFrameworkCamelConfiguration", "configurationField": "configuration", "description": "Sets the test execution order to be randomized. Valid values are all, suite, and test" }, + "report": { "index": 26, "kind": "parameter", "displayName": "Report", "group": "common", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.robotframework.RobotFrameworkCamelConfiguration", "configurationField": "configuration", "description": "Sets the path to the generated report String." }, + "reportBackground": { "index": 27, "kind": "parameter", "displayName": "Report Background", "group": "common", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.robotframework.RobotFrameworkCamelConfiguration", "configurationField": "configuration", "description": "Sets background colors for the generated report and summary." }, + "reportTitle": { "index": 28, "kind": "parameter", "displayName": "Report Title", "group": "common", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.robotframework.RobotFrameworkCamelConfiguration", "configurationField": "configuration", "description": "Sets a title for the generated tests report." }, + "runEmptySuite": { "index": 29, "kind": "parameter", "displayName": "Run Empty Suite", "group": "common", "label": "", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.robotframework.RobotFrameworkCamelConfiguration", "configurationField": "configuration", "description": "Executes tests also if the top level test suite is empty. Useful e.g. wi [...] + "runFailed": { "index": 30, "kind": "parameter", "displayName": "Run Failed", "group": "common", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.robotframework.RobotFrameworkCamelConfiguration", "configurationField": "configuration", "description": "Re-run failed tests, based on output.xml String." }, + "runMode": { "index": 31, "kind": "parameter", "displayName": "Run Mode", "group": "common", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.robotframework.RobotFrameworkCamelConfiguration", "configurationField": "configuration", "description": "Sets the execution mode for this tests run. Note that this setting has been deprecated in Robot Fram [...] + "skipTeardownOnExit": { "index": 32, "kind": "parameter", "displayName": "Skip Teardown On Exit", "group": "common", "label": "", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.robotframework.RobotFrameworkCamelConfiguration", "configurationField": "configuration", "description": "Sets whether the teardowns are skipped if the test execution [...] + "splitOutputs": { "index": 33, "kind": "parameter", "displayName": "Split Outputs", "group": "common", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.robotframework.RobotFrameworkCamelConfiguration", "configurationField": "configuration", "description": "Splits output and log files." }, + "suites": { "index": 34, "kind": "parameter", "displayName": "Suites", "group": "common", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.robotframework.RobotFrameworkCamelConfiguration", "configurationField": "configuration", "description": "Selects the tests suites by name. List" }, + "suiteStatLevel": { "index": 35, "kind": "parameter", "displayName": "Suite Stat Level", "group": "common", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.robotframework.RobotFrameworkCamelConfiguration", "configurationField": "configuration", "description": "Defines how many levels to show in the Statistics by Suite table in outputs." }, + "summaryTitle": { "index": 36, "kind": "parameter", "displayName": "Summary Title", "group": "common", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.robotframework.RobotFrameworkCamelConfiguration", "configurationField": "configuration", "description": "Sets a title for the generated summary report." }, + "tagDocs": { "index": 37, "kind": "parameter", "displayName": "Tag Docs", "group": "common", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.robotframework.RobotFrameworkCamelConfiguration", "configurationField": "configuration", "description": "Adds documentation to the specified tags. List" }, + "tags": { "index": 38, "kind": "parameter", "displayName": "Tags", "group": "common", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.robotframework.RobotFrameworkCamelConfiguration", "configurationField": "configuration", "description": "Sets the tags(s) to all executed tests cases. List" }, + "tagStatExcludes": { "index": 39, "kind": "parameter", "displayName": "Tag Stat Excludes", "group": "common", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.robotframework.RobotFrameworkCamelConfiguration", "configurationField": "configuration", "description": "Excludes these tags from the Statistics by Tag and Test Details by Tag tables in ou [...] + "tagStatIncludes": { "index": 40, "kind": "parameter", "displayName": "Tag Stat Includes", "group": "common", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.robotframework.RobotFrameworkCamelConfiguration", "configurationField": "configuration", "description": "Includes only these tags in the Statistics by Tag and Test Details by Tag tables in [...] + "tagStatLinks": { "index": 41, "kind": "parameter", "displayName": "Tag Stat Links", "group": "common", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.robotframework.RobotFrameworkCamelConfiguration", "configurationField": "configuration", "description": "Adds external links to the Statistics by Tag table in outputs. Use the format pattern:lin [...] + "tests": { "index": 42, "kind": "parameter", "displayName": "Tests", "group": "common", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.robotframework.RobotFrameworkCamelConfiguration", "configurationField": "configuration", "description": "Selects the tests cases by name. List" }, + "timestampOutputs": { "index": 43, "kind": "parameter", "displayName": "Timestamp Outputs", "group": "common", "label": "", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.robotframework.RobotFrameworkCamelConfiguration", "configurationField": "configuration", "description": "Adds a timestamp to all output files." }, + "variableFiles": { "index": 44, "kind": "parameter", "displayName": "Variable Files", "group": "common", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.robotframework.RobotFrameworkCamelConfiguration", "configurationField": "configuration", "description": "Sets variables using variables files. Use the format path:args List" }, + "variables": { "index": 45, "kind": "parameter", "displayName": "Variables", "group": "common", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.robotframework.RobotFrameworkCamelConfiguration", "configurationField": "configuration", "description": "Sets individual variables. Use the format name:value List" }, + "warnOnSkippedFiles": { "index": 46, "kind": "parameter", "displayName": "Warn On Skipped Files", "group": "common", "label": "", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.robotframework.RobotFrameworkCamelConfiguration", "configurationField": "configuration", "description": "Show a warning when an invalid String is skipped." }, + "xunitFile": { "index": 47, "kind": "parameter", "displayName": "Xunit File", "group": "common", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.robotframework.RobotFrameworkCamelConfiguration", "configurationField": "configuration", "description": "Sets the path to the generated XUnit compatible result String, relative to outputDirectory. The [...] + "sendEmptyMessageWhenIdle": { "index": 48, "kind": "parameter", "displayName": "Send Empty Message When Idle", "group": "consumer", "label": "consumer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "If the polling consumer did not poll any files, you can enable this option to send an empty message (no body) instead." }, + "bridgeErrorHandler": { "index": 49, "kind": "parameter", "displayName": "Bridge Error Handler", "group": "consumer (advanced)", "label": "consumer,advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Allows for bridging the consumer to the Camel routing Error Handler, which mean any exceptions (if possible) occurred while the Camel consumer is trying to pickup incoming [...] + "exceptionHandler": { "index": 50, "kind": "parameter", "displayName": "Exception Handler", "group": "consumer (advanced)", "label": "consumer,advanced", "required": false, "type": "object", "javaType": "org.apache.camel.spi.ExceptionHandler", "optionalPrefix": "consumer.", "deprecated": false, "autowired": false, "secret": false, "description": "To let the consumer use a custom ExceptionHandler. Notice if the option bridgeErrorHandler is enabled then this option is not in use. By de [...] + "exchangePattern": { "index": 51, "kind": "parameter", "displayName": "Exchange Pattern", "group": "consumer (advanced)", "label": "consumer,advanced", "required": false, "type": "object", "javaType": "org.apache.camel.ExchangePattern", "enum": [ "InOnly", "InOut" ], "deprecated": false, "autowired": false, "secret": false, "description": "Sets the exchange pattern when the consumer creates an exchange." }, + "pollStrategy": { "index": 52, "kind": "parameter", "displayName": "Poll Strategy", "group": "consumer (advanced)", "label": "consumer,advanced", "required": false, "type": "object", "javaType": "org.apache.camel.spi.PollingConsumerPollStrategy", "deprecated": false, "autowired": false, "secret": false, "description": "A pluggable org.apache.camel.PollingConsumerPollingStrategy allowing you to provide your custom implementation to control error handling usually occurred during the po [...] + "lazyStartProducer": { "index": 53, "kind": "parameter", "displayName": "Lazy Start Producer", "group": "producer (advanced)", "label": "producer,advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a produ [...] + "backoffErrorThreshold": { "index": 54, "kind": "parameter", "displayName": "Backoff Error Threshold", "group": "scheduler", "label": "consumer,scheduler", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "autowired": false, "secret": false, "description": "The number of subsequent error polls (failed due some error) that should happen before the backoffMultipler should kick-in." }, + "backoffIdleThreshold": { "index": 55, "kind": "parameter", "displayName": "Backoff Idle Threshold", "group": "scheduler", "label": "consumer,scheduler", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "autowired": false, "secret": false, "description": "The number of subsequent idle polls that should happen before the backoffMultipler should kick-in." }, + "backoffMultiplier": { "index": 56, "kind": "parameter", "displayName": "Backoff Multiplier", "group": "scheduler", "label": "consumer,scheduler", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "autowired": false, "secret": false, "description": "To let the scheduled polling consumer backoff if there has been a number of subsequent idles\/errors in a row. The multiplier is then the number of polls that will be skipped before the next actual attempt is h [...] + "delay": { "index": 57, "kind": "parameter", "displayName": "Delay", "group": "scheduler", "label": "consumer,scheduler", "required": false, "type": "integer", "javaType": "long", "deprecated": false, "autowired": false, "secret": false, "defaultValue": 500, "description": "Milliseconds before the next poll." }, + "greedy": { "index": 58, "kind": "parameter", "displayName": "Greedy", "group": "scheduler", "label": "consumer,scheduler", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "If greedy is enabled, then the ScheduledPollConsumer will run immediately again, if the previous run polled 1 or more messages." }, + "initialDelay": { "index": 59, "kind": "parameter", "displayName": "Initial Delay", "group": "scheduler", "label": "consumer,scheduler", "required": false, "type": "integer", "javaType": "long", "deprecated": false, "autowired": false, "secret": false, "defaultValue": 1000, "description": "Milliseconds before the first poll starts." }, + "repeatCount": { "index": 60, "kind": "parameter", "displayName": "Repeat Count", "group": "scheduler", "label": "consumer,scheduler", "required": false, "type": "integer", "javaType": "long", "deprecated": false, "autowired": false, "secret": false, "defaultValue": 0, "description": "Specifies a maximum limit of number of fires. So if you set it to 1, the scheduler will only fire once. If you set it to 5, it will only fire five times. A value of zero or negative means fire forever." }, + "runLoggingLevel": { "index": 61, "kind": "parameter", "displayName": "Run Logging Level", "group": "scheduler", "label": "consumer,scheduler", "required": false, "type": "object", "javaType": "org.apache.camel.LoggingLevel", "enum": [ "TRACE", "DEBUG", "INFO", "WARN", "ERROR", "OFF" ], "deprecated": false, "autowired": false, "secret": false, "defaultValue": "TRACE", "description": "The consumer logs a start\/complete log line when it polls. This option allows you to configure the l [...] + "scheduledExecutorService": { "index": 62, "kind": "parameter", "displayName": "Scheduled Executor Service", "group": "scheduler", "label": "consumer,scheduler", "required": false, "type": "object", "javaType": "java.util.concurrent.ScheduledExecutorService", "deprecated": false, "autowired": false, "secret": false, "description": "Allows for configuring a custom\/shared thread pool to use for the consumer. By default each consumer has its own single threaded thread pool." }, + "scheduler": { "index": 63, "kind": "parameter", "displayName": "Scheduler", "group": "scheduler", "label": "consumer,scheduler", "required": false, "type": "object", "javaType": "java.lang.Object", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "none", "description": "To use a cron scheduler from either camel-spring or camel-quartz component. Use value spring or quartz for built in scheduler" }, + "schedulerProperties": { "index": 64, "kind": "parameter", "displayName": "Scheduler Properties", "group": "scheduler", "label": "consumer,scheduler", "required": false, "type": "object", "javaType": "java.util.Map<java.lang.String, java.lang.Object>", "prefix": "scheduler.", "multiValue": true, "deprecated": false, "autowired": false, "secret": false, "description": "To configure additional properties when using a custom scheduler or any of the Quartz, Spring based scheduler. This i [...] + "startScheduler": { "index": 65, "kind": "parameter", "displayName": "Start Scheduler", "group": "scheduler", "label": "consumer,scheduler", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": true, "description": "Whether the scheduler should be auto started." }, + "timeUnit": { "index": 66, "kind": "parameter", "displayName": "Time Unit", "group": "scheduler", "label": "consumer,scheduler", "required": false, "type": "object", "javaType": "java.util.concurrent.TimeUnit", "enum": [ "NANOSECONDS", "MICROSECONDS", "MILLISECONDS", "SECONDS", "MINUTES", "HOURS", "DAYS" ], "deprecated": false, "autowired": false, "secret": false, "defaultValue": "MILLISECONDS", "description": "Time unit for initialDelay and delay options." }, + "useFixedDelay": { "index": 67, "kind": "parameter", "displayName": "Use Fixed Delay", "group": "scheduler", "label": "consumer,scheduler", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": true, "description": "Controls if fixed delay or fixed rate is used. See ScheduledExecutorService in JDK for details." } } } diff --git a/components/camel-robotframework/src/main/java/org/apache/camel/component/robotframework/RobotFrameworkCamelConfiguration.java b/components/camel-robotframework/src/main/java/org/apache/camel/component/robotframework/RobotFrameworkCamelConfiguration.java index 388ea52b1c4..aa06c952983 100644 --- a/components/camel-robotframework/src/main/java/org/apache/camel/component/robotframework/RobotFrameworkCamelConfiguration.java +++ b/components/camel-robotframework/src/main/java/org/apache/camel/component/robotframework/RobotFrameworkCamelConfiguration.java @@ -87,50 +87,35 @@ public class RobotFrameworkCamelConfiguration implements Cloneable { private String suiteStatLevel; @UriParam private String tagStatIncludes; - @UriParam private String tagStatExcludes; - @UriParam private String combinedTagStats; - @UriParam private String tagDocs; - @UriParam private String tagStatLinks; - @UriParam private String listeners; - @UriParam private String listener; - @UriParam private boolean warnOnSkippedFiles; - @UriParam(defaultValue = "78") private String monitorWidth; - @UriParam private String monitorColors; - @UriParam private String argumentFiles; - - @UriParam(defaultValue = "false") + @UriParam private boolean runEmptySuite; - @UriParam private String runFailed; - - @UriParam(defaultValue = "false") + @UriParam private boolean noStatusReturnCode; - - @UriParam(defaultValue = "false") + @UriParam private boolean allowTemplateFromHeader; - - @UriParam(defaultValue = "false") + @UriParam private boolean allowContextMapAll; public String getName() { diff --git a/components/camel-robotframework/src/main/java/org/apache/camel/component/robotframework/RobotFrameworkComponent.java b/components/camel-robotframework/src/main/java/org/apache/camel/component/robotframework/RobotFrameworkComponent.java index 924b7bf1feb..615efb2fbd6 100644 --- a/components/camel-robotframework/src/main/java/org/apache/camel/component/robotframework/RobotFrameworkComponent.java +++ b/components/camel-robotframework/src/main/java/org/apache/camel/component/robotframework/RobotFrameworkComponent.java @@ -23,6 +23,7 @@ import org.apache.camel.Endpoint; import org.apache.camel.spi.Metadata; import org.apache.camel.spi.annotations.Component; import org.apache.camel.support.DefaultComponent; +import org.apache.camel.support.ResourceHelper; @Component("robotframework") public class RobotFrameworkComponent extends DefaultComponent { @@ -78,8 +79,10 @@ public class RobotFrameworkComponent extends DefaultComponent { } protected Endpoint createEndpoint(String uri, String remaining, Map<String, Object> parameters) throws Exception { + if (ResourceHelper.hasScheme(remaining)) { + throw new IllegalArgumentException("Resources can only be load from file system. Remove scheme"); + } final RobotFrameworkCamelConfiguration configuration = this.configuration.copy(); - RobotFrameworkEndpoint endpoint = new RobotFrameworkEndpoint(uri, this, remaining, configuration); setProperties(endpoint, parameters); return endpoint; diff --git a/components/camel-robotframework/src/main/java/org/apache/camel/component/robotframework/RobotFrameworkEndpoint.java b/components/camel-robotframework/src/main/java/org/apache/camel/component/robotframework/RobotFrameworkEndpoint.java index 145ac145243..cfbe594fad1 100644 --- a/components/camel-robotframework/src/main/java/org/apache/camel/component/robotframework/RobotFrameworkEndpoint.java +++ b/components/camel-robotframework/src/main/java/org/apache/camel/component/robotframework/RobotFrameworkEndpoint.java @@ -23,6 +23,7 @@ import org.apache.camel.Category; import org.apache.camel.Exchange; import org.apache.camel.ExchangePattern; import org.apache.camel.component.ResourceEndpoint; +import org.apache.camel.spi.Metadata; import org.apache.camel.spi.UriEndpoint; import org.apache.camel.spi.UriParam; import org.apache.camel.util.ObjectHelper; @@ -34,6 +35,7 @@ import org.robotframework.RobotFramework; @UriEndpoint(firstVersion = "3.0.0", scheme = "robotframework", title = "Robot Framework", syntax = "robotframework:resourceUri", category = { Category.TESTING }, remote = false, headersClass = RobotFrameworkCamelConstants.class) +@Metadata(excludeProperties = "contentCache") public class RobotFrameworkEndpoint extends ResourceEndpoint { @UriParam
