This is an automated email from the ASF dual-hosted git repository. davsclaus pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/camel.git
The following commit(s) were added to refs/heads/master by this push: new 3380f7f CAMEL-14622: Component options use @Metadata to markup the options 3380f7f is described below commit 3380f7f616b08976627c13a5c232bfc105ace3ae Author: Claus Ibsen <claus.ib...@gmail.com> AuthorDate: Tue Jun 16 16:52:02 2020 +0200 CAMEL-14622: Component options use @Metadata to markup the options --- .../org/apache/camel/component/scp/scp.json | 2 +- .../apache/camel/component/scp/ScpComponent.java | 14 ++++--------- .../org/apache/camel/component/slack/slack.json | 4 ++-- .../camel-slack/src/main/docs/slack-component.adoc | 2 +- .../camel/component/slack/SlackComponent.java | 11 ++-------- .../org/apache/camel/component/spark/spark.json | 4 ++-- .../camel/component/spark/SparkComponent.java | 10 ++++++++- .../camel/component/spring/batch/spring-batch.json | 4 ++-- .../spring/batch/SpringBatchComponent.java | 3 +++ .../camel/component/sql/stored/sql-stored.json | 2 +- .../apache/camel/component/sql/SqlComponent.java | 2 +- .../component/sql/stored/SqlStoredComponent.java | 4 +++- .../dsl/SlackComponentBuilderFactory.java | 24 +++++++++++----------- 13 files changed, 43 insertions(+), 43 deletions(-) diff --git a/components/camel-jsch/src/generated/resources/org/apache/camel/component/scp/scp.json b/components/camel-jsch/src/generated/resources/org/apache/camel/component/scp/scp.json index ffdbf58..134c914 100644 --- a/components/camel-jsch/src/generated/resources/org/apache/camel/component/scp/scp.json +++ b/components/camel-jsch/src/generated/resources/org/apache/camel/component/scp/scp.json @@ -23,7 +23,7 @@ }, "componentProperties": { "lazyStartProducer": { "kind": "property", "displayName": "Lazy Start Producer", "group": "producer", "label": "producer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": 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 during starting and cause the r [...] - "verboseLogging": { "kind": "property", "displayName": "Verbose Logging", "group": "producer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "secret": false, "defaultValue": false, "description": "JSCH is verbose logging out of the box. Therefore we turn the logging down to DEBUG logging by default. But setting this option to true turns on the verbose logging again." }, + "verboseLogging": { "kind": "property", "displayName": "Verbose Logging", "group": "producer", "label": "", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "secret": false, "defaultValue": false, "description": "JSCH is verbose logging out of the box. Therefore we turn the logging down to DEBUG logging by default. But setting this option to true turns on the verbose logging again." }, "basicPropertyBinding": { "kind": "property", "displayName": "Basic Property Binding", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "secret": false, "defaultValue": false, "description": "Whether the component should use basic property binding (Camel 2.x) or the newer property binding with additional capabilities" } }, "properties": { diff --git a/components/camel-jsch/src/main/java/org/apache/camel/component/scp/ScpComponent.java b/components/camel-jsch/src/main/java/org/apache/camel/component/scp/ScpComponent.java index b84269b..20b0b22 100644 --- a/components/camel-jsch/src/main/java/org/apache/camel/component/scp/ScpComponent.java +++ b/components/camel-jsch/src/main/java/org/apache/camel/component/scp/ScpComponent.java @@ -23,6 +23,7 @@ import com.jcraft.jsch.JSch; import org.apache.camel.CamelContext; import org.apache.camel.component.file.GenericFileEndpoint; import org.apache.camel.component.file.remote.RemoteFileComponent; +import org.apache.camel.spi.Metadata; import org.apache.camel.spi.annotations.Component; /** @@ -31,6 +32,7 @@ import org.apache.camel.spi.annotations.Component; @Component("scp") public class ScpComponent extends RemoteFileComponent<ScpFile> { + @Metadata private boolean verboseLogging; public ScpComponent() { @@ -52,19 +54,11 @@ public class ScpComponent extends RemoteFileComponent<ScpFile> { } @Override - protected void doStart() throws Exception { - super.doStart(); - + protected void doInit() throws Exception { + super.doInit(); initJsch(); } - @Override - protected void doStop() throws Exception { - super.doStop(); - - // noop - } - public boolean isVerboseLogging() { return verboseLogging; } diff --git a/components/camel-slack/src/generated/resources/org/apache/camel/component/slack/slack.json b/components/camel-slack/src/generated/resources/org/apache/camel/component/slack/slack.json index 080fe11..5192fde 100644 --- a/components/camel-slack/src/generated/resources/org/apache/camel/component/slack/slack.json +++ b/components/camel-slack/src/generated/resources/org/apache/camel/component/slack/slack.json @@ -21,10 +21,10 @@ "lenientProperties": false }, "componentProperties": { - "webhookUrl": { "kind": "property", "displayName": "Webhook Url", "group": "common", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "description": "The incoming webhook URL" }, "bridgeErrorHandler": { "kind": "property", "displayName": "Bridge Error Handler", "group": "consumer", "label": "consumer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "secret": false, "defaultValue": false, "description": "Allows for bridging the consumer to the Camel routing Error Handler, which mean any exceptions occurred while the consumer is trying to pickup incoming messages, or the likes, will now be processed as a message and handled by [...] "lazyStartProducer": { "kind": "property", "displayName": "Lazy Start Producer", "group": "producer", "label": "producer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": 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 during starting and cause the r [...] - "basicPropertyBinding": { "kind": "property", "displayName": "Basic Property Binding", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "secret": false, "defaultValue": false, "description": "Whether the component should use basic property binding (Camel 2.x) or the newer property binding with additional capabilities" } + "basicPropertyBinding": { "kind": "property", "displayName": "Basic Property Binding", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "secret": false, "defaultValue": false, "description": "Whether the component should use basic property binding (Camel 2.x) or the newer property binding with additional capabilities" }, + "webhookUrl": { "kind": "property", "displayName": "Webhook Url", "group": "webhook", "label": "webhook", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "description": "The incoming webhook URL" } }, "properties": { "channel": { "kind": "path", "displayName": "Channel", "group": "common", "label": "", "required": true, "type": "string", "javaType": "java.lang.String", "deprecated": false, "deprecationNote": "", "secret": false, "description": "The channel name (syntax #name) or slackuser (syntax userName) to send a message directly to an user." }, diff --git a/components/camel-slack/src/main/docs/slack-component.adoc b/components/camel-slack/src/main/docs/slack-component.adoc index c79b189..5664d15 100644 --- a/components/camel-slack/src/main/docs/slack-component.adoc +++ b/components/camel-slack/src/main/docs/slack-component.adoc @@ -58,10 +58,10 @@ The Slack component supports 4 options, which are listed below. [width="100%",cols="2,5,^1,2",options="header"] |=== | Name | Description | Default | Type -| *webhookUrl* (common) | The incoming webhook URL | | String | *bridgeErrorHandler* (consumer) | Allows for bridging the consumer to the Camel routing Error Handler, which mean any exceptions occurred while the consumer is trying to pickup incoming messages, or the likes, will now be processed as a message and handled by the routing Error Handler. By default the consumer will use the org.apache.camel.spi.ExceptionHandler to deal with exceptions, that will be logged at WARN or ERROR level and ignored. | false | boolean | *lazyStartProducer* (producer) | 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 during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and [...] | *basicPropertyBinding* (advanced) | Whether the component should use basic property binding (Camel 2.x) or the newer property binding with additional capabilities | false | boolean +| *webhookUrl* (webhook) | The incoming webhook URL | | String |=== // component options: END diff --git a/components/camel-slack/src/main/java/org/apache/camel/component/slack/SlackComponent.java b/components/camel-slack/src/main/java/org/apache/camel/component/slack/SlackComponent.java index 1792402..4264e02 100644 --- a/components/camel-slack/src/main/java/org/apache/camel/component/slack/SlackComponent.java +++ b/components/camel-slack/src/main/java/org/apache/camel/component/slack/SlackComponent.java @@ -20,12 +20,14 @@ import java.util.Map; import org.apache.camel.CamelContext; import org.apache.camel.Endpoint; +import org.apache.camel.spi.Metadata; import org.apache.camel.spi.annotations.Component; import org.apache.camel.support.DefaultComponent; @Component("slack") public class SlackComponent extends DefaultComponent { + @Metadata(label = "webhook") private String webhookUrl; public SlackComponent() { @@ -34,18 +36,9 @@ public class SlackComponent extends DefaultComponent { public SlackComponent(CamelContext context) { super(context); - registerExtension(new SlackComponentVerifierExtension()); } - /** - * Create a slack endpoint - * - * @param uri the full URI of the endpoint - * @param channelName the channel or username that the message should be sent to - * @param parameters the optional parameters passed in - * @return the camel endpoint - */ @Override protected Endpoint createEndpoint(String uri, String channelName, Map<String, Object> parameters) throws Exception { Endpoint endpoint = new SlackEndpoint(uri, channelName, this); diff --git a/components/camel-spark/src/generated/resources/org/apache/camel/component/spark/spark.json b/components/camel-spark/src/generated/resources/org/apache/camel/component/spark/spark.json index 35c4392..a222e63 100644 --- a/components/camel-spark/src/generated/resources/org/apache/camel/component/spark/spark.json +++ b/components/camel-spark/src/generated/resources/org/apache/camel/component/spark/spark.json @@ -22,8 +22,8 @@ }, "componentProperties": { "lazyStartProducer": { "kind": "property", "displayName": "Lazy Start Producer", "group": "producer", "label": "producer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": 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 during starting and cause the r [...] - "rdd": { "kind": "property", "displayName": "Rdd", "group": "producer", "required": false, "type": "object", "javaType": "org.apache.spark.api.java.JavaRDDLike", "deprecated": false, "secret": false, "description": "RDD to compute against." }, - "rddCallback": { "kind": "property", "displayName": "Rdd Callback", "group": "producer", "required": false, "type": "object", "javaType": "org.apache.camel.component.spark.RddCallback", "deprecated": false, "secret": false, "description": "Function performing action against an RDD." }, + "rdd": { "kind": "property", "displayName": "Rdd", "group": "producer", "label": "", "required": false, "type": "object", "javaType": "org.apache.spark.api.java.JavaRDDLike", "deprecated": false, "secret": false, "description": "RDD to compute against." }, + "rddCallback": { "kind": "property", "displayName": "Rdd Callback", "group": "producer", "label": "", "required": false, "type": "object", "javaType": "org.apache.camel.component.spark.RddCallback", "deprecated": false, "secret": false, "description": "Function performing action against an RDD." }, "basicPropertyBinding": { "kind": "property", "displayName": "Basic Property Binding", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "secret": false, "defaultValue": false, "description": "Whether the component should use basic property binding (Camel 2.x) or the newer property binding with additional capabilities" } }, "properties": { diff --git a/components/camel-spark/src/main/java/org/apache/camel/component/spark/SparkComponent.java b/components/camel-spark/src/main/java/org/apache/camel/component/spark/SparkComponent.java index e62854e..73b34eb 100644 --- a/components/camel-spark/src/main/java/org/apache/camel/component/spark/SparkComponent.java +++ b/components/camel-spark/src/main/java/org/apache/camel/component/spark/SparkComponent.java @@ -19,6 +19,7 @@ package org.apache.camel.component.spark; import java.util.Map; 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.spark.api.java.JavaRDDLike; @@ -26,7 +27,9 @@ import org.apache.spark.api.java.JavaRDDLike; @Component("spark") public class SparkComponent extends DefaultComponent { + @Metadata private JavaRDDLike rdd; + @Metadata private RddCallback rddCallback; public SparkComponent() { @@ -35,7 +38,12 @@ public class SparkComponent extends DefaultComponent { @Override protected Endpoint createEndpoint(String uri, String remaining, Map<String, Object> parameters) throws Exception { EndpointType type = getCamelContext().getTypeConverter().mandatoryConvertTo(EndpointType.class, remaining); - return new SparkEndpoint(uri, this, type); + + SparkEndpoint answer = new SparkEndpoint(uri, this, type); + answer.setRdd(rdd); + answer.setRddCallback(rddCallback); + setProperties(answer, parameters); + return answer; } public JavaRDDLike getRdd() { diff --git a/components/camel-spring-batch/src/generated/resources/org/apache/camel/component/spring/batch/spring-batch.json b/components/camel-spring-batch/src/generated/resources/org/apache/camel/component/spring/batch/spring-batch.json index 2fbd30b..f7624c9 100644 --- a/components/camel-spring-batch/src/generated/resources/org/apache/camel/component/spring/batch/spring-batch.json +++ b/components/camel-spring-batch/src/generated/resources/org/apache/camel/component/spring/batch/spring-batch.json @@ -21,8 +21,8 @@ "lenientProperties": false }, "componentProperties": { - "jobLauncher": { "kind": "property", "displayName": "Job Launcher", "group": "producer", "required": false, "type": "object", "javaType": "org.springframework.batch.core.launch.JobLauncher", "deprecated": false, "secret": false, "description": "Explicitly specifies a JobLauncher to be used." }, - "jobRegistry": { "kind": "property", "displayName": "Job Registry", "group": "producer", "required": false, "type": "object", "javaType": "org.springframework.batch.core.configuration.JobRegistry", "deprecated": false, "secret": false, "description": "Explicitly specifies a JobRegistry to be used." }, + "jobLauncher": { "kind": "property", "displayName": "Job Launcher", "group": "producer", "label": "", "required": false, "type": "object", "javaType": "org.springframework.batch.core.launch.JobLauncher", "deprecated": false, "secret": false, "description": "Explicitly specifies a JobLauncher to be used." }, + "jobRegistry": { "kind": "property", "displayName": "Job Registry", "group": "producer", "label": "", "required": false, "type": "object", "javaType": "org.springframework.batch.core.configuration.JobRegistry", "deprecated": false, "secret": false, "description": "Explicitly specifies a JobRegistry to be used." }, "lazyStartProducer": { "kind": "property", "displayName": "Lazy Start Producer", "group": "producer", "label": "producer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": 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 during starting and cause the r [...] "basicPropertyBinding": { "kind": "property", "displayName": "Basic Property Binding", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "secret": false, "defaultValue": false, "description": "Whether the component should use basic property binding (Camel 2.x) or the newer property binding with additional capabilities" } }, diff --git a/components/camel-spring-batch/src/main/java/org/apache/camel/component/spring/batch/SpringBatchComponent.java b/components/camel-spring-batch/src/main/java/org/apache/camel/component/spring/batch/SpringBatchComponent.java index 3238607..ba1614f 100644 --- a/components/camel-spring-batch/src/main/java/org/apache/camel/component/spring/batch/SpringBatchComponent.java +++ b/components/camel-spring-batch/src/main/java/org/apache/camel/component/spring/batch/SpringBatchComponent.java @@ -19,6 +19,7 @@ package org.apache.camel.component.spring.batch; import java.util.Map; 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.springframework.batch.core.configuration.JobRegistry; @@ -32,7 +33,9 @@ public class SpringBatchComponent extends DefaultComponent { private JobLauncher defaultResolvedJobLauncher; private Map<String, JobLauncher> allResolvedJobLaunchers; + @Metadata private JobLauncher jobLauncher; + @Metadata private JobRegistry jobRegistry; public SpringBatchComponent() { diff --git a/components/camel-sql/src/generated/resources/org/apache/camel/component/sql/stored/sql-stored.json b/components/camel-sql/src/generated/resources/org/apache/camel/component/sql/stored/sql-stored.json index de7cb49..2de3ec5 100644 --- a/components/camel-sql/src/generated/resources/org/apache/camel/component/sql/stored/sql-stored.json +++ b/components/camel-sql/src/generated/resources/org/apache/camel/component/sql/stored/sql-stored.json @@ -21,7 +21,7 @@ "lenientProperties": false }, "componentProperties": { - "dataSource": { "kind": "property", "displayName": "Data Source", "group": "producer", "required": false, "type": "object", "javaType": "javax.sql.DataSource", "deprecated": false, "secret": false, "description": "Sets the DataSource to use to communicate with the database." }, + "dataSource": { "kind": "property", "displayName": "Data Source", "group": "producer", "label": "", "required": false, "type": "object", "javaType": "javax.sql.DataSource", "deprecated": false, "secret": false, "description": "Sets the DataSource to use to communicate with the database." }, "lazyStartProducer": { "kind": "property", "displayName": "Lazy Start Producer", "group": "producer", "label": "producer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": 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 during starting and cause the r [...] "basicPropertyBinding": { "kind": "property", "displayName": "Basic Property Binding", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "secret": false, "defaultValue": false, "description": "Whether the component should use basic property binding (Camel 2.x) or the newer property binding with additional capabilities" } }, diff --git a/components/camel-sql/src/main/java/org/apache/camel/component/sql/SqlComponent.java b/components/camel-sql/src/main/java/org/apache/camel/component/sql/SqlComponent.java index 9ad520a..6c279b4 100644 --- a/components/camel-sql/src/main/java/org/apache/camel/component/sql/SqlComponent.java +++ b/components/camel-sql/src/main/java/org/apache/camel/component/sql/SqlComponent.java @@ -83,7 +83,7 @@ public class SqlComponent extends DefaultComponent { if (dataSources.size() > 1) { throw new IllegalArgumentException("Multiple DataSources found in the registry and no explicit configuration provided"); } else if (dataSources.size() == 1) { - target = dataSources.stream().findFirst().orElse(null); + target = dataSources.iterator().next(); } } if (target == null) { diff --git a/components/camel-sql/src/main/java/org/apache/camel/component/sql/stored/SqlStoredComponent.java b/components/camel-sql/src/main/java/org/apache/camel/component/sql/stored/SqlStoredComponent.java index caab2d9..8d87377 100644 --- a/components/camel-sql/src/main/java/org/apache/camel/component/sql/stored/SqlStoredComponent.java +++ b/components/camel-sql/src/main/java/org/apache/camel/component/sql/stored/SqlStoredComponent.java @@ -22,6 +22,7 @@ import java.util.Set; import javax.sql.DataSource; 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.springframework.jdbc.core.JdbcTemplate; @@ -29,6 +30,7 @@ import org.springframework.jdbc.core.JdbcTemplate; @Component("sql-stored") public class SqlStoredComponent extends DefaultComponent { + @Metadata private DataSource dataSource; @Override @@ -50,7 +52,7 @@ public class SqlStoredComponent extends DefaultComponent { if (dataSources.size() > 1) { throw new IllegalArgumentException("Multiple DataSources found in the registry and no explicit configuration provided"); } else if (dataSources.size() == 1) { - target = dataSources.stream().findFirst().orElse(null); + target = dataSources.iterator().next(); } } if (target == null) { diff --git a/core/camel-componentdsl/src/generated/java/org/apache/camel/builder/component/dsl/SlackComponentBuilderFactory.java b/core/camel-componentdsl/src/generated/java/org/apache/camel/builder/component/dsl/SlackComponentBuilderFactory.java index c24db47..b167c9c 100644 --- a/core/camel-componentdsl/src/generated/java/org/apache/camel/builder/component/dsl/SlackComponentBuilderFactory.java +++ b/core/camel-componentdsl/src/generated/java/org/apache/camel/builder/component/dsl/SlackComponentBuilderFactory.java @@ -47,17 +47,6 @@ public interface SlackComponentBuilderFactory { */ interface SlackComponentBuilder extends ComponentBuilder<SlackComponent> { /** - * The incoming webhook URL. - * - * The option is a: <code>java.lang.String</code> type. - * - * Group: common - */ - default SlackComponentBuilder webhookUrl(java.lang.String webhookUrl) { - doSetProperty("webhookUrl", webhookUrl); - return this; - } - /** * Allows for bridging the consumer to the Camel routing Error Handler, * which mean any exceptions occurred while the consumer is trying to * pickup incoming messages, or the likes, will now be processed as a @@ -111,6 +100,17 @@ public interface SlackComponentBuilderFactory { doSetProperty("basicPropertyBinding", basicPropertyBinding); return this; } + /** + * The incoming webhook URL. + * + * The option is a: <code>java.lang.String</code> type. + * + * Group: webhook + */ + default SlackComponentBuilder webhookUrl(java.lang.String webhookUrl) { + doSetProperty("webhookUrl", webhookUrl); + return this; + } } class SlackComponentBuilderImpl @@ -128,10 +128,10 @@ public interface SlackComponentBuilderFactory { String name, Object value) { switch (name) { - case "webhookUrl": ((SlackComponent) component).setWebhookUrl((java.lang.String) value); return true; case "bridgeErrorHandler": ((SlackComponent) component).setBridgeErrorHandler((boolean) value); return true; case "lazyStartProducer": ((SlackComponent) component).setLazyStartProducer((boolean) value); return true; case "basicPropertyBinding": ((SlackComponent) component).setBasicPropertyBinding((boolean) value); return true; + case "webhookUrl": ((SlackComponent) component).setWebhookUrl((java.lang.String) value); return true; default: return false; } }