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 2014/12/30 14:53:54 UTC

camel git commit: CAMEL-7999: apt compiler to generate json schema documentation for the model, whcih we later use to enrich the xml xsd to include documentation. Work in progress.

Repository: camel
Updated Branches:
  refs/heads/master c971733d8 -> c230ccef8


CAMEL-7999: apt compiler to generate json schema documentation for the model, whcih we later use to enrich the xml xsd to include documentation. Work in progress.


Project: http://git-wip-us.apache.org/repos/asf/camel/repo
Commit: http://git-wip-us.apache.org/repos/asf/camel/commit/c230ccef
Tree: http://git-wip-us.apache.org/repos/asf/camel/tree/c230ccef
Diff: http://git-wip-us.apache.org/repos/asf/camel/diff/c230ccef

Branch: refs/heads/master
Commit: c230ccef81216989c087b3b9826d60adb1d50677
Parents: c971733
Author: Claus Ibsen <da...@apache.org>
Authored: Tue Dec 30 14:53:45 2014 +0100
Committer: Claus Ibsen <da...@apache.org>
Committed: Tue Dec 30 14:53:45 2014 +0100

----------------------------------------------------------------------
 .../java/org/apache/camel/CamelContext.java     |  1 -
 .../model/ExpressionSubElementDefinition.java   |  2 +-
 .../model/language/ExpressionDefinition.java    |  2 +-
 .../ModelDocumentationAnnotationProcessor.java  | 23 +++++++++++++++++---
 4 files changed, 22 insertions(+), 6 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/camel/blob/c230ccef/camel-core/src/main/java/org/apache/camel/CamelContext.java
----------------------------------------------------------------------
diff --git a/camel-core/src/main/java/org/apache/camel/CamelContext.java b/camel-core/src/main/java/org/apache/camel/CamelContext.java
index 050ff05..830a625 100644
--- a/camel-core/src/main/java/org/apache/camel/CamelContext.java
+++ b/camel-core/src/main/java/org/apache/camel/CamelContext.java
@@ -1365,7 +1365,6 @@ public interface CamelContext extends SuspendableService, RuntimeConfiguration {
      */
     void setUseBreadcrumb(Boolean useBreadcrumb);
 
-
     /**
      * Resolves a component's default name from its java type.
      * <p/>

http://git-wip-us.apache.org/repos/asf/camel/blob/c230ccef/camel-core/src/main/java/org/apache/camel/model/ExpressionSubElementDefinition.java
----------------------------------------------------------------------
diff --git a/camel-core/src/main/java/org/apache/camel/model/ExpressionSubElementDefinition.java b/camel-core/src/main/java/org/apache/camel/model/ExpressionSubElementDefinition.java
index c0037e9..c870a12 100644
--- a/camel-core/src/main/java/org/apache/camel/model/ExpressionSubElementDefinition.java
+++ b/camel-core/src/main/java/org/apache/camel/model/ExpressionSubElementDefinition.java
@@ -30,7 +30,7 @@ import org.apache.camel.spi.RouteContext;
 /**
  * Represents an expression sub element
  */
-@XmlRootElement(name = "expression")
+@XmlRootElement(name = "expression") // must be named expression
 @XmlAccessorType(XmlAccessType.FIELD)
 public class ExpressionSubElementDefinition {
     @XmlElementRef

http://git-wip-us.apache.org/repos/asf/camel/blob/c230ccef/camel-core/src/main/java/org/apache/camel/model/language/ExpressionDefinition.java
----------------------------------------------------------------------
diff --git a/camel-core/src/main/java/org/apache/camel/model/language/ExpressionDefinition.java b/camel-core/src/main/java/org/apache/camel/model/language/ExpressionDefinition.java
index b09b00d..80e2dbd 100644
--- a/camel-core/src/main/java/org/apache/camel/model/language/ExpressionDefinition.java
+++ b/camel-core/src/main/java/org/apache/camel/model/language/ExpressionDefinition.java
@@ -49,7 +49,7 @@ import org.apache.camel.util.ObjectHelper;
  */
 @Label("language")
 @XmlRootElement
-@XmlType(name = "expression")
+@XmlType(name = "expression") // must be named expression
 @XmlAccessorType(XmlAccessType.FIELD)
 public class ExpressionDefinition implements Expression, Predicate {
     @XmlAttribute

http://git-wip-us.apache.org/repos/asf/camel/blob/c230ccef/tooling/apt/src/main/java/org/apache/camel/tools/apt/ModelDocumentationAnnotationProcessor.java
----------------------------------------------------------------------
diff --git a/tooling/apt/src/main/java/org/apache/camel/tools/apt/ModelDocumentationAnnotationProcessor.java b/tooling/apt/src/main/java/org/apache/camel/tools/apt/ModelDocumentationAnnotationProcessor.java
index 84dcc78..8490a4d 100644
--- a/tooling/apt/src/main/java/org/apache/camel/tools/apt/ModelDocumentationAnnotationProcessor.java
+++ b/tooling/apt/src/main/java/org/apache/camel/tools/apt/ModelDocumentationAnnotationProcessor.java
@@ -27,6 +27,7 @@ import javax.annotation.processing.SupportedSourceVersion;
 import javax.lang.model.SourceVersion;
 import javax.lang.model.element.Element;
 import javax.lang.model.element.ElementKind;
+import javax.lang.model.element.Modifier;
 import javax.lang.model.element.TypeElement;
 import javax.lang.model.element.VariableElement;
 import javax.lang.model.type.TypeMirror;
@@ -36,6 +37,7 @@ import javax.xml.bind.annotation.XmlAttribute;
 import javax.xml.bind.annotation.XmlElement;
 import javax.xml.bind.annotation.XmlElementRef;
 import javax.xml.bind.annotation.XmlRootElement;
+import javax.xml.bind.annotation.XmlType;
 
 import org.apache.camel.spi.Label;
 
@@ -44,8 +46,6 @@ import static org.apache.camel.tools.apt.Strings.canonicalClassName;
 import static org.apache.camel.tools.apt.Strings.isNullOrEmpty;
 import static org.apache.camel.tools.apt.Strings.safeNull;
 
-// TODO: skip abstract model classes
-
 /**
  * Process all camel-core's model classes (EIPs and DSL) and generate json schema documentation
  */
@@ -93,8 +93,25 @@ public class ModelDocumentationAnnotationProcessor extends AbstractAnnotationPro
             return;
         }
 
+        // skip abstract classes
+        if (classElement.getModifiers().contains(Modifier.ABSTRACT)) {
+            return;
+        }
+
+        // skip unwanted classes which are "abstract" holders
+        if (skipUnwanted) {
+            if (classElement.getQualifiedName().toString().equals(ONE_OF_TYPE_NAME)) {
+                return;
+            }
+        }
+
         final XmlRootElement rootElement = classElement.getAnnotation(XmlRootElement.class);
-        final String name = rootElement.name();
+        String aName = rootElement.name();
+        if (isNullOrEmpty(aName) || "##default".equals(aName)) {
+            XmlType typeElement = classElement.getAnnotation(XmlType.class);
+            aName = typeElement.name();
+        }
+        final String name = aName;
 
         // lets use the xsd name as the file name
         String fileName;