This is an automated email from the ASF dual-hosted git repository. lburgazzoli pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/camel-k-runtime.git
commit b866293e5cffad8e10999f713af33b310ca5cfc9 Author: lburgazzoli <[email protected]> AuthorDate: Thu May 7 16:40:53 2020 +0200 yaml-loader: allow to blacklist definitions --- camel-k-loader-yaml/camel-k-loader-yaml/pom.xml | 14 +++++++++ .../maven/GenerateYamlLoaderSupportClasses.java | 35 +++++++++------------- 2 files changed, 28 insertions(+), 21 deletions(-) diff --git a/camel-k-loader-yaml/camel-k-loader-yaml/pom.xml b/camel-k-loader-yaml/camel-k-loader-yaml/pom.xml index 1f8d67f..199a2d7 100644 --- a/camel-k-loader-yaml/camel-k-loader-yaml/pom.xml +++ b/camel-k-loader-yaml/camel-k-loader-yaml/pom.xml @@ -145,6 +145,20 @@ <goals> <goal>generate-yaml-loader-support-classes</goal> </goals> + <configuration> + <blacklistedDefinitions> + <blacklistedDefinition>org.apache.camel.model.Resilience4jConfigurationDefinition</blacklistedDefinition> + <blacklistedDefinition>org.apache.camel.model.HystrixConfigurationDefinition</blacklistedDefinition> + <blacklistedDefinition>org.apache.camel.model.OnFallbackDefinition</blacklistedDefinition> + <blacklistedDefinition>org.apache.camel.model.InOnlyDefinition</blacklistedDefinition> + <blacklistedDefinition>org.apache.camel.model.InOutDefinition</blacklistedDefinition> + <blacklistedDefinition>org.apache.camel.model.OtherwiseDefinition</blacklistedDefinition> + <blacklistedDefinition>org.apache.camel.model.WhenDefinition</blacklistedDefinition> + <blacklistedDefinition>org.apache.camel.model.config.StreamResequencerConfig</blacklistedDefinition> + <blacklistedDefinition>org.apache.camel.model.config.BatchResequencerConfig</blacklistedDefinition> + <blacklistedDefinition>org.apache.camel.model.loadbalancer/**</blacklistedDefinition> + </blacklistedDefinitions> + </configuration> </execution> </executions> </plugin> diff --git a/tooling/camel-k-maven-plugin/src/main/java/org/apache/camel/k/tooling/maven/GenerateYamlLoaderSupportClasses.java b/tooling/camel-k-maven-plugin/src/main/java/org/apache/camel/k/tooling/maven/GenerateYamlLoaderSupportClasses.java index 3982257..91d7cc5 100644 --- a/tooling/camel-k-maven-plugin/src/main/java/org/apache/camel/k/tooling/maven/GenerateYamlLoaderSupportClasses.java +++ b/tooling/camel-k-maven-plugin/src/main/java/org/apache/camel/k/tooling/maven/GenerateYamlLoaderSupportClasses.java @@ -21,6 +21,7 @@ import java.io.IOException; import java.nio.file.Paths; import java.util.Comparator; import java.util.HashSet; +import java.util.List; import java.util.Set; import javax.lang.model.element.Modifier; @@ -33,9 +34,11 @@ import com.squareup.javapoet.CodeBlock; import com.squareup.javapoet.JavaFile; import com.squareup.javapoet.MethodSpec; import com.squareup.javapoet.TypeSpec; +import org.apache.camel.util.AntPathMatcher; import org.apache.maven.plugin.MojoFailureException; import org.apache.maven.plugins.annotations.LifecyclePhase; import org.apache.maven.plugins.annotations.Mojo; +import org.apache.maven.plugins.annotations.Parameter; import org.apache.maven.plugins.annotations.ResolutionScope; import org.jboss.jandex.AnnotationInstance; import org.jboss.jandex.AnnotationValue; @@ -49,6 +52,9 @@ import org.jboss.jandex.ClassInfo; threadSafe = true, requiresProject = false) public class GenerateYamlLoaderSupportClasses extends GenerateYamlSupport { + @Parameter + protected List<String> blacklistedDefinitions; + @Override public void execute() throws MojoFailureException { try { @@ -195,27 +201,14 @@ public class GenerateYamlLoaderSupportClasses extends GenerateYamlSupport { AnnotationValue label = meta.value("label"); if (name != null && label != null) { - // skip known definitions for which there is a custom - // implementation - switch (i.name().toString()) { - case "org.apache.camel.model.Resilience4jConfigurationDefinition": - case "org.apache.camel.model.HystrixConfigurationDefinition": - case "org.apache.camel.model.config.StreamResequencerConfig": - case "org.apache.camel.model.config.BatchResequencerConfig": - case "org.apache.camel.model.OnFallbackDefinition": - case "org.apache.camel.model.InOnlyDefinition": - case "org.apache.camel.model.InOutDefinition": - case "org.apache.camel.model.OtherwiseDefinition": - case "org.apache.camel.model.WhenDefinition": - return; - default: - break; - } - switch (i.name().prefix().toString()) { - case "org.apache.camel.model.loadbalancer": - return; - default: - break; + + if (blacklistedDefinitions != null) { + for (String blacklistedDefinition: blacklistedDefinitions) { + if (AntPathMatcher.INSTANCE.match(blacklistedDefinition.replace('.', '/'), i.name().toString('/'))) { + getLog().debug("Skipping definition: " + i.name().toString()); + return; + } + } } Set<String> labels = Set.of(label.asString().split(",", -1));
