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;