You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by da...@apache.org on 2021/09/27 07:11:36 UTC

[camel] branch main updated: CAMEL-17005: xml dsl - Avoid having in the XSD

This is an automated email from the ASF dual-hosted git repository.

davsclaus pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/camel.git


The following commit(s) were added to refs/heads/main by this push:
     new 24bd92e  CAMEL-17005: xml dsl - Avoid having <whenSkipSendToEndpoint> in the XSD
24bd92e is described below

commit 24bd92e994941152412592f38613e6b394142ce3
Author: Claus Ibsen <cl...@gmail.com>
AuthorDate: Mon Sep 27 08:47:11 2021 +0200

    CAMEL-17005: xml dsl - Avoid having <whenSkipSendToEndpoint> in the XSD
---
 .../src/generated/resources/org/apache/camel/model/jaxb.index  |  1 -
 .../apache/camel/model/WhenSkipSendToEndpointDefinition.java   |  2 ++
 .../generated/java/org/apache/camel/xml/in/ModelParser.java    | 10 ++--------
 .../camel/maven/packaging/ModelXmlParserGeneratorMojo.java     |  5 ++++-
 .../java/org/apache/camel/maven/packaging/PackageJaxbMojo.java |  9 +++++++--
 5 files changed, 15 insertions(+), 12 deletions(-)

diff --git a/core/camel-core-model/src/generated/resources/org/apache/camel/model/jaxb.index b/core/camel-core-model/src/generated/resources/org/apache/camel/model/jaxb.index
index 45b5e93..c9a58d7 100644
--- a/core/camel-core-model/src/generated/resources/org/apache/camel/model/jaxb.index
+++ b/core/camel-core-model/src/generated/resources/org/apache/camel/model/jaxb.index
@@ -100,5 +100,4 @@ TryDefinition
 UnmarshalDefinition
 ValidateDefinition
 WhenDefinition
-WhenSkipSendToEndpointDefinition
 WireTapDefinition
diff --git a/core/camel-core-model/src/main/java/org/apache/camel/model/WhenSkipSendToEndpointDefinition.java b/core/camel-core-model/src/main/java/org/apache/camel/model/WhenSkipSendToEndpointDefinition.java
index a2e612f..6e242e9 100644
--- a/core/camel-core-model/src/main/java/org/apache/camel/model/WhenSkipSendToEndpointDefinition.java
+++ b/core/camel-core-model/src/main/java/org/apache/camel/model/WhenSkipSendToEndpointDefinition.java
@@ -17,6 +17,7 @@
 package org.apache.camel.model;
 
 import javax.xml.bind.annotation.XmlRootElement;
+import javax.xml.bind.annotation.XmlTransient;
 
 import org.apache.camel.model.language.ExpressionDefinition;
 import org.apache.camel.spi.AsPredicate;
@@ -28,6 +29,7 @@ import org.apache.camel.spi.Metadata;
 @Metadata(label = "configuration")
 @AsPredicate
 @XmlRootElement(name = "whenSkipSendToEndpoint")
+@XmlTransient // do not output in XSD as this is only used in a special "hack" for intercept
 public class WhenSkipSendToEndpointDefinition extends WhenDefinition {
     @Override
     public String getShortName() {
diff --git a/core/camel-xml-io/src/generated/java/org/apache/camel/xml/in/ModelParser.java b/core/camel-xml-io/src/generated/java/org/apache/camel/xml/in/ModelParser.java
index dda2380..25e848a 100644
--- a/core/camel-xml-io/src/generated/java/org/apache/camel/xml/in/ModelParser.java
+++ b/core/camel-xml-io/src/generated/java/org/apache/camel/xml/in/ModelParser.java
@@ -204,15 +204,14 @@ public class ModelParser extends BaseParser {
         }, noValueHandler());
     }
     protected WhenDefinition doParseWhenDefinition() throws IOException, XmlPullParserException {
-        return doParse(new WhenDefinition(), 
-            processorDefinitionAttributeHandler(),  outputExpressionNodeElementHandler(), noValueHandler());
+        return doParse(new WhenDefinition(),
+            processorDefinitionAttributeHandler(), outputExpressionNodeElementHandler(), noValueHandler());
     }
     protected ChoiceDefinition doParseChoiceDefinition() throws IOException, XmlPullParserException {
         return doParse(new ChoiceDefinition(),
             processorDefinitionAttributeHandler(), (def, key) -> {
             switch (key) {
                 case "when": doAdd(doParseWhenDefinition(), def.getWhenClauses(), def::setWhenClauses); break;
-                case "whenSkipSendToEndpoint": doAdd(doParseWhenSkipSendToEndpointDefinition(), def.getWhenClauses(), def::setWhenClauses); break;
                 case "otherwise": def.setOtherwise(doParseOtherwiseDefinition()); break;
                 default: return optionalIdentifiedDefinitionElementHandler().accept(def, key);
             }
@@ -1452,10 +1451,6 @@ public class ModelParser extends BaseParser {
         return doParse(new ValidateDefinition(),
             processorDefinitionAttributeHandler(), expressionNodeElementHandler(), noValueHandler());
     }
-    protected WhenSkipSendToEndpointDefinition doParseWhenSkipSendToEndpointDefinition() throws IOException, XmlPullParserException {
-        return doParse(new WhenSkipSendToEndpointDefinition(),
-            processorDefinitionAttributeHandler(), outputExpressionNodeElementHandler(), noValueHandler());
-    }
     protected WireTapDefinition doParseWireTapDefinition() throws IOException, XmlPullParserException {
         return doParse(new WireTapDefinition(), (def, key, val) -> {
             switch (key) {
@@ -3206,7 +3201,6 @@ public class ModelParser extends BaseParser {
             case "doTry": return doParseTryDefinition();
             case "unmarshal": return doParseUnmarshalDefinition();
             case "validate": return doParseValidateDefinition();
-            case "whenSkipSendToEndpoint": return doParseWhenSkipSendToEndpointDefinition();
             case "wireTap": return doParseWireTapDefinition();
             case "serviceCall": return doParseServiceCallDefinition();
             default: return null;
diff --git a/tooling/maven/camel-package-maven-plugin/src/main/java/org/apache/camel/maven/packaging/ModelXmlParserGeneratorMojo.java b/tooling/maven/camel-package-maven-plugin/src/main/java/org/apache/camel/maven/packaging/ModelXmlParserGeneratorMojo.java
index 601dbf3..e593627 100644
--- a/tooling/maven/camel-package-maven-plugin/src/main/java/org/apache/camel/maven/packaging/ModelXmlParserGeneratorMojo.java
+++ b/tooling/maven/camel-package-maven-plugin/src/main/java/org/apache/camel/maven/packaging/ModelXmlParserGeneratorMojo.java
@@ -154,7 +154,10 @@ public class ModelXmlParserGeneratorMojo extends AbstractGeneratorMojo {
                 .map(DotName::createSimple).map(index::getAnnotations)
                 .flatMap(Collection::stream).map(AnnotationInstance::target).map(AnnotationTarget::asClass).map(ClassInfo::name)
                 .map(DotName::toString).sorted().distinct()
-                .map(name -> loadClass(classLoader, name)).flatMap(this::references).flatMap(this::fieldReferences).distinct()
+                // we should skip this model as we do not want this in the JAXB model
+                .filter(n -> !n.equals("org.apache.camel.model.WhenSkipSendToEndpointDefinition"))
+                .map(name -> loadClass(classLoader, name))
+                .flatMap(this::references).flatMap(this::fieldReferences).distinct()
                 .collect(Collectors.toList());
 
         JavaClass parser = generateParser(model, classLoader);
diff --git a/tooling/maven/camel-package-maven-plugin/src/main/java/org/apache/camel/maven/packaging/PackageJaxbMojo.java b/tooling/maven/camel-package-maven-plugin/src/main/java/org/apache/camel/maven/packaging/PackageJaxbMojo.java
index 83f3919..c3c749d 100644
--- a/tooling/maven/camel-package-maven-plugin/src/main/java/org/apache/camel/maven/packaging/PackageJaxbMojo.java
+++ b/tooling/maven/camel-package-maven-plugin/src/main/java/org/apache/camel/maven/packaging/PackageJaxbMojo.java
@@ -99,14 +99,19 @@ public class PackageJaxbMojo extends AbstractGeneratorMojo {
     private void processClasses(IndexView index) {
         Map<String, Set<String>> byPackage = new HashMap<>();
 
-        Stream.of(XmlRootElement.class, XmlEnum.class, XmlType.class).map(Class::getName).map(DotName::createSimple)
+        Stream.of(XmlRootElement.class, XmlEnum.class, XmlType.class)
+                .map(Class::getName).map(DotName::createSimple)
                 .map(index::getAnnotations).flatMap(Collection::stream)
                 .map(AnnotationInstance::target).map(AnnotationTarget::asClass).map(ClassInfo::name).map(DotName::toString)
                 .forEach(name -> {
                     int idx = name.lastIndexOf('.');
                     String p = name.substring(0, idx);
                     String c = name.substring(idx + 1);
-                    byPackage.computeIfAbsent(p, s -> new TreeSet<>()).add(c);
+                    // we should skip this model as we do not want this in the JAXB model
+                    boolean skip = "WhenSkipSendToEndpointDefinition".equals(c);
+                    if (!skip) {
+                        byPackage.computeIfAbsent(p, s -> new TreeSet<>()).add(c);
+                    }
                 });
 
         Path jaxbIndexDir = jaxbIndexOutDir.toPath();