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 235012402c43e9e62b131d2197e468a5d258ead8 Author: Andrea Cosentino <anco...@gmail.com> AuthorDate: Wed Jun 17 19:07:30 2020 +0200 Fixed component exclusion in combination with filter --- .../maven/GenerateCamelKafkaConnectorsMojo.java | 32 +++++++++++++++++----- 1 file changed, 25 insertions(+), 7 deletions(-) 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..2535165 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,23 +107,32 @@ 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(component -> !excludedComponents.contains(component)).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 = ""; final Properties properties = new Properties(); properties.load(new FileInputStream(rm.getResourceAsFile("project.properties"))); - for (String component : components) { + for (String component : filteredComponents) { String cJson = cc.componentJSonSchema(component); ComponentModel cm = JsonMapper.generateComponentModel(cJson);