This is an automated email from the ASF dual-hosted git repository. acosentino pushed a commit to branch fix-component-exclusion in repository https://gitbox.apache.org/repos/asf/camel-kafka-connector.git
commit 0f957db0e22345ed85694ca717b290b4912a8e3d Author: Andrea Cosentino <anco...@gmail.com> AuthorDate: Wed Jun 17 19:07:30 2020 +0200 Fixed component exclusion in combination with filter --- connectors/pom.xml | 1 + docs/modules/ROOT/pages/connectors.adoc | 3 ++- .../maven/GenerateCamelKafkaConnectorsMojo.java | 30 +++++++++++++++++----- 3 files changed, 27 insertions(+), 7 deletions(-) diff --git a/connectors/pom.xml b/connectors/pom.xml index ea5283f..f1e9672 100644 --- a/connectors/pom.xml +++ b/connectors/pom.xml @@ -219,6 +219,7 @@ <module>camel-bean-kafka-connector</module> <module>camel-bean-validator-kafka-connector</module> <module>camel-beanstalk-kafka-connector</module> + <module>camel-bonita-kafka-connector</module> <module>camel-box-kafka-connector</module> <module>camel-braintree-kafka-connector</module> <module>camel-browse-kafka-connector</module> diff --git a/docs/modules/ROOT/pages/connectors.adoc b/docs/modules/ROOT/pages/connectors.adoc index 18e7582..1ce3727 100644 --- a/docs/modules/ROOT/pages/connectors.adoc +++ b/docs/modules/ROOT/pages/connectors.adoc @@ -2,7 +2,7 @@ = Supported connectors and documentation // kafka-connectors list: START -Number of Camel Kafka connectors: 349 +Number of Camel Kafka connectors: 350 [width="100%",cols="4,1,1,1,1,1,1",options="header"] |=== @@ -70,6 +70,7 @@ Number of Camel Kafka connectors: 349 | *camel-bean-kafka-connector* | true | false | xref:connectors/camel-bean-kafka-sink-connector.adoc[Sink Docs] | | https://repo.maven.apache.org/maven2/org/apache/camel/kafkaconnector/camel-bean-kafka-connector/0.2.0/camel-bean-kafka-connector-0.2.0-package.zip[Download Zip] | https://repo.maven.apache.org/maven2/org/apache/camel/kafkaconnector/camel-bean-kafka-connector/0.2.0/camel-bean-kafka-connector-0.2.0-package.tar.gz[Download Tar.gz] | *camel-bean-validator-kafka-connector* | true | false | xref:connectors/camel-bean-validator-kafka-sink-connector.adoc[Sink Docs] | | https://repo.maven.apache.org/maven2/org/apache/camel/kafkaconnector/camel-bean-validator-kafka-connector/0.2.0/camel-bean-validator-kafka-connector-0.2.0-package.zip[Download Zip] | https://repo.maven.apache.org/maven2/org/apache/camel/kafkaconnector/camel-bean-validator-kafka-connector/0.2.0/camel-bean-validator-kafka-connector-0.2.0-package.tar.gz[Do [...] | *camel-beanstalk-kafka-connector* | true | true | xref:connectors/camel-beanstalk-kafka-sink-connector.adoc[Sink Docs] | xref:connectors/camel-beanstalk-kafka-source-connector.adoc[Source Docs] | https://repo.maven.apache.org/maven2/org/apache/camel/kafkaconnector/camel-beanstalk-kafka-connector/0.2.0/camel-beanstalk-kafka-connector-0.2.0-package.zip[Download Zip] | https://repo.maven.apache.org/maven2/org/apache/camel/kafkaconnector/camel-beanstalk-kafka-connector/0.2.0/camel-beanstal [...] +| *camel-bonita-kafka-connector* | true | false | xref:connectors/camel-bonita-kafka-sink-connector.adoc[Sink Docs] | | https://repo.maven.apache.org/maven2/org/apache/camel/kafkaconnector/camel-bonita-kafka-connector/0.2.0/camel-bonita-kafka-connector-0.2.0-package.zip[Download Zip] | https://repo.maven.apache.org/maven2/org/apache/camel/kafkaconnector/camel-bonita-kafka-connector/0.2.0/camel-bonita-kafka-connector-0.2.0-package.tar.gz[Download Tar.gz] | *camel-box-kafka-connector* | true | true | xref:connectors/camel-box-kafka-sink-connector.adoc[Sink Docs] | xref:connectors/camel-box-kafka-source-connector.adoc[Source Docs] | https://repo.maven.apache.org/maven2/org/apache/camel/kafkaconnector/camel-box-kafka-connector/0.2.0/camel-box-kafka-connector-0.2.0-package.zip[Download Zip] | https://repo.maven.apache.org/maven2/org/apache/camel/kafkaconnector/camel-box-kafka-connector/0.2.0/camel-box-kafka-connector-0.2.0-package.tar.gz[Dow [...] | *camel-braintree-kafka-connector* | true | true | xref:connectors/camel-braintree-kafka-sink-connector.adoc[Sink Docs] | xref:connectors/camel-braintree-kafka-source-connector.adoc[Source Docs] | https://repo.maven.apache.org/maven2/org/apache/camel/kafkaconnector/camel-braintree-kafka-connector/0.2.0/camel-braintree-kafka-connector-0.2.0-package.zip[Download Zip] | https://repo.maven.apache.org/maven2/org/apache/camel/kafkaconnector/camel-braintree-kafka-connector/0.2.0/camel-braintre [...] | *camel-browse-kafka-connector* | true | true | xref:connectors/camel-browse-kafka-sink-connector.adoc[Sink Docs] | xref:connectors/camel-browse-kafka-source-connector.adoc[Source Docs] | https://repo.maven.apache.org/maven2/org/apache/camel/kafkaconnector/camel-browse-kafka-connector/0.2.0/camel-browse-kafka-connector-0.2.0-package.zip[Download Zip] | https://repo.maven.apache.org/maven2/org/apache/camel/kafkaconnector/camel-browse-kafka-connector/0.2.0/camel-browse-kafka-connector-0.2 [...] diff --git a/tooling/camel-kafka-connector-generator-maven-plugin/src/main/java/org/apache/camel/kafkaconnector/maven/GenerateCamelKafkaConnectorsMojo.java b/tooling/camel-kafka-connector-generator-maven-plugin/src/main/java/org/apache/camel/kafkaconnector/maven/GenerateCamelKafkaConnectorsMojo.java index 9ad226c..de3d998 100644 --- a/tooling/camel-kafka-connector-generator-maven-plugin/src/main/java/org/apache/camel/kafkaconnector/maven/GenerateCamelKafkaConnectorsMojo.java +++ b/tooling/camel-kafka-connector-generator-maven-plugin/src/main/java/org/apache/camel/kafkaconnector/maven/GenerateCamelKafkaConnectorsMojo.java @@ -18,9 +18,12 @@ package org.apache.camel.kafkaconnector.maven; import java.io.FileInputStream; import java.io.IOException; +import java.util.Arrays; import java.util.Collections; +import java.util.HashSet; import java.util.List; import java.util.Properties; +import java.util.Set; import java.util.stream.Collectors; import org.apache.camel.catalog.CamelCatalog; @@ -76,11 +79,17 @@ public class GenerateCamelKafkaConnectorsMojo extends AbstractCamelKafkaConnecto @Component private BuildPluginManager pluginManager; - + /** * The Camel Component Filter to select for which components generate the corresponding camel kafka connector. */ @Parameter(defaultValue = "", readonly = true) + private String filter; + + /** + * The Camel Component Exclusion List to select for which components must be skipped while generating kafka connector. + */ + @Parameter(defaultValue = "", readonly = true) private List excludedComponents = Collections.EMPTY_LIST; @Component @@ -98,16 +107,25 @@ public class GenerateCamelKafkaConnectorsMojo extends AbstractCamelKafkaConnecto protected void executeAll() throws MojoExecutionException, IOException, ResourceNotFoundException, FileResourceCreationException { CamelCatalog cc = new DefaultCamelCatalog(); List<String> components; - //TODO: implement an exclusion mechanism - if (excludedComponents == null || excludedComponents.isEmpty()) { + List<String> filteredComponents; + if (filter == null || filter.isEmpty()) { components = cc.findComponentNames(); } else { - components = cc.findComponentNames().stream().filter(componentName -> !excludedComponents.contains(componentName)).collect(Collectors.toList()); + Set<String> filterComponentNames = new HashSet<>(Arrays.asList(filter.split(","))); + components = cc.findComponentNames().stream().filter(componentName -> filterComponentNames.contains(componentName)).collect(Collectors.toList()); + } + if (excludedComponents == null || excludedComponents.isEmpty()) { + filteredComponents = components; + } else { + filteredComponents = components.stream().filter(componentName -> !excludedComponents.contains(componentName)).collect(Collectors.toList()); + } + if (filter != null && !filter.isEmpty()) { + getLog().info("Filtered Components that will be generated: " + filter); } - if (!excludedComponents.isEmpty()) { + if (excludedComponents != null && !excludedComponents.isEmpty()) { getLog().info("Excluded Components that won't be generated: " + excludedComponents); } - getLog().info("Components found to be generated/updated: " + components); + getLog().info("Components found to be generated/updated: " + filteredComponents); //TODO: evaluate dataformats to include in each camel kafka connector generated placing them as a comma separated GAV in: String additionalDependencies = "";