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));

Reply via email to