Repository: camel
Updated Branches:
  refs/heads/master 78dba26ee -> edeb983b1


CAMEL-9456: Component docs - Add information if a component is deprecated


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

Branch: refs/heads/master
Commit: edeb983b12b617567996cf7a3f10582b0b9f5dbc
Parents: 78dba26
Author: Claus Ibsen <davscl...@apache.org>
Authored: Mon Dec 28 15:39:26 2015 +0100
Committer: Claus Ibsen <davscl...@apache.org>
Committed: Mon Dec 28 15:39:26 2015 +0100

----------------------------------------------------------------------
 .../management/mbean/CamelOpenMBeanTypes.java   |  8 +++----
 .../management/mbean/ManagedCamelContext.java   | 10 ++++++--
 .../commands/CatalogComponentListCommand.java   | 24 ++++++++++----------
 .../tools/apt/EndpointAnnotationProcessor.java  | 14 +++++++++++-
 .../camel/tools/apt/model/ComponentModel.java   |  9 ++++++++
 5 files changed, 46 insertions(+), 19 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/camel/blob/edeb983b/camel-core/src/main/java/org/apache/camel/api/management/mbean/CamelOpenMBeanTypes.java
----------------------------------------------------------------------
diff --git 
a/camel-core/src/main/java/org/apache/camel/api/management/mbean/CamelOpenMBeanTypes.java
 
b/camel-core/src/main/java/org/apache/camel/api/management/mbean/CamelOpenMBeanTypes.java
index 72babc8..596b2d4 100644
--- 
a/camel-core/src/main/java/org/apache/camel/api/management/mbean/CamelOpenMBeanTypes.java
+++ 
b/camel-core/src/main/java/org/apache/camel/api/management/mbean/CamelOpenMBeanTypes.java
@@ -132,10 +132,10 @@ public final class CamelOpenMBeanTypes {
     }
 
     public static CompositeType listComponentsCompositeType() throws 
OpenDataException {
-        return new CompositeType("components", "Components", new 
String[]{"name", "title", "description", "label", "status", "type", "groupId", 
"artifactId", "version"},
-                new String[]{"Name", "Title", "Description", "Label", 
"Status", "Type", "GroupId", "ArtifactId", "Version"},
-                new OpenType[]{SimpleType.STRING, SimpleType.STRING, 
SimpleType.STRING, SimpleType.STRING, SimpleType.STRING,
-                               SimpleType.STRING, SimpleType.STRING, 
SimpleType.STRING, SimpleType.STRING});
+        return new CompositeType("components", "Components", new 
String[]{"name", "title", "syntax", "description", "label", "deprecated", 
"status", "type", "groupId", "artifactId", "version"},
+                new String[]{"Name", "Title", "Syntax", "Description", 
"Label", "Deprecated", "Status", "Type", "GroupId", "ArtifactId", "Version"},
+                new OpenType[]{SimpleType.STRING, SimpleType.STRING, 
SimpleType.STRING, SimpleType.STRING, SimpleType.STRING, SimpleType.STRING,
+                               SimpleType.STRING, SimpleType.STRING, 
SimpleType.STRING, SimpleType.STRING, SimpleType.STRING});
     }
 
     public static TabularType listAwaitThreadsTabularType() throws 
OpenDataException {

http://git-wip-us.apache.org/repos/asf/camel/blob/edeb983b/camel-core/src/main/java/org/apache/camel/management/mbean/ManagedCamelContext.java
----------------------------------------------------------------------
diff --git 
a/camel-core/src/main/java/org/apache/camel/management/mbean/ManagedCamelContext.java
 
b/camel-core/src/main/java/org/apache/camel/management/mbean/ManagedCamelContext.java
index 91ffac0..a694bb8 100644
--- 
a/camel-core/src/main/java/org/apache/camel/management/mbean/ManagedCamelContext.java
+++ 
b/camel-core/src/main/java/org/apache/camel/management/mbean/ManagedCamelContext.java
@@ -584,8 +584,10 @@ public class ManagedCamelContext extends 
ManagedPerformanceCounter implements Ti
             for (Map.Entry<String, Properties> entry : components.entrySet()) {
                 String name = entry.getKey();
                 String title = null;
+                String syntax = null;
                 String description = null;
                 String label = null;
+                String deprecated = null;
                 String status = context.hasComponent(name) != null ? "in use" 
: "on classpath";
                 String type = (String) entry.getValue().get("class");
                 String groupId = null;
@@ -603,10 +605,14 @@ public class ManagedCamelContext extends 
ManagedPerformanceCounter implements Ti
                 for (Map<String, String> row : rows) {
                     if (row.containsKey("title")) {
                         title = row.get("title");
+                    } else if (row.containsKey("syntax")) {
+                        syntax = row.get("syntax");
                     } else if (row.containsKey("description")) {
                         description = row.get("description");
                     } else if (row.containsKey("label")) {
                         label = row.get("label");
+                    } else if (row.containsKey("deprecated")) {
+                        deprecated = row.get("deprecated");
                     } else if (row.containsKey("javaType")) {
                         type = row.get("javaType");
                     } else if (row.containsKey("groupId")) {
@@ -619,8 +625,8 @@ public class ManagedCamelContext extends 
ManagedPerformanceCounter implements Ti
                 }
 
                 CompositeType ct = 
CamelOpenMBeanTypes.listComponentsCompositeType();
-                CompositeData data = new CompositeDataSupport(ct, new 
String[]{"name", "title", "description", "label", "status", "type", "groupId", 
"artifactId", "version"},
-                        new Object[]{name, title, description, label, status, 
type, groupId, artifactId, version});
+                CompositeData data = new CompositeDataSupport(ct, new 
String[]{"name", "title", "syntax", "description", "label", "deprecated", 
"status", "type", "groupId", "artifactId", "version"},
+                        new Object[]{name, title, syntax, description, label, 
deprecated, status, type, groupId, artifactId, version});
                 answer.put(data);
             }
             return answer;

http://git-wip-us.apache.org/repos/asf/camel/blob/edeb983b/platforms/commands/commands-core/src/main/java/org/apache/camel/commands/CatalogComponentListCommand.java
----------------------------------------------------------------------
diff --git 
a/platforms/commands/commands-core/src/main/java/org/apache/camel/commands/CatalogComponentListCommand.java
 
b/platforms/commands/commands-core/src/main/java/org/apache/camel/commands/CatalogComponentListCommand.java
index 59fe9da..2146369 100644
--- 
a/platforms/commands/commands-core/src/main/java/org/apache/camel/commands/CatalogComponentListCommand.java
+++ 
b/platforms/commands/commands-core/src/main/java/org/apache/camel/commands/CatalogComponentListCommand.java
@@ -27,7 +27,7 @@ import java.util.Map;
 public class CatalogComponentListCommand extends AbstractCamelCommand {
 
     private static final String TITLE_COLUMN_LABEL = "Title";
-    private static final String SCHEME_COLUMN_LABEL = "Scheme";
+    private static final String SYNTAX_COLUMN_LABEL = "Syntax";
     private static final String LABEL_COLUMN_LABEL = "Label";
     private static final String MAVEN_COLUMN_LABEL = "Maven Coordinate";
     private static final String DESCRIPTION_COLUMN_LABEL = "Description";
@@ -63,7 +63,7 @@ public class CatalogComponentListCommand extends 
AbstractCamelCommand {
         final String rowFormat = buildFormatString(columnWidths, false);
 
         if (verbose) {
-            out.println(String.format(headerFormat, TITLE_COLUMN_LABEL, 
SCHEME_COLUMN_LABEL, LABEL_COLUMN_LABEL, MAVEN_COLUMN_LABEL));
+            out.println(String.format(headerFormat, TITLE_COLUMN_LABEL, 
SYNTAX_COLUMN_LABEL, LABEL_COLUMN_LABEL, MAVEN_COLUMN_LABEL));
             out.println(String.format(headerFormat, "-----", "------", 
"-----", "----------------"));
         } else {
             out.println(String.format(headerFormat, TITLE_COLUMN_LABEL, 
DESCRIPTION_COLUMN_LABEL));
@@ -72,13 +72,13 @@ public class CatalogComponentListCommand extends 
AbstractCamelCommand {
         for (final Map<String, String> component : components) {
             if (verbose) {
                 String title = safeNull(component.get("title"));
-                String scheme = safeNull(component.get("name"));
+                String syntax = safeNull(component.get("syntax"));
                 String label = safeNull(component.get("label"));
                 String maven = "";
                 if (component.containsKey("groupId") && 
component.containsKey("artifactId") && component.containsKey("version")) {
                     maven = component.get("groupId") + "/" + 
component.get("artifactId") + "/" + component.get("version");
                 }
-                out.println(String.format(rowFormat, title, scheme, label, 
maven));
+                out.println(String.format(rowFormat, title, syntax, label, 
maven));
             } else {
                 String title = safeNull(component.get("title"));
                 String description = safeNull(component.get("description"));
@@ -95,7 +95,7 @@ public class CatalogComponentListCommand extends 
AbstractCamelCommand {
         } else {
             // some of the options is optional so we need to start from 1
             int maxTitleLen = TITLE_COLUMN_LABEL.length();
-            int maxSchemeLen = SCHEME_COLUMN_LABEL.length();
+            int maxSyntaxLen = SYNTAX_COLUMN_LABEL.length();
             int maxLabelLen = LABEL_COLUMN_LABEL.length();
             int maxMavenLen = MAVEN_COLUMN_LABEL.length();
             int maxDescriptionLen = DESCRIPTION_COLUMN_LABEL.length();
@@ -103,9 +103,9 @@ public class CatalogComponentListCommand extends 
AbstractCamelCommand {
             for (final Map<String, String> component : components) {
 
                 // grab the information and compute max len
-                String name = component.get("name");
-                if (name != null) {
-                    maxSchemeLen = Math.max(maxSchemeLen, name.length());
+                String syntax = component.get("syntax");
+                if (syntax != null) {
+                    maxSyntaxLen = Math.max(maxSyntaxLen, syntax.length());
                 }
                 String title = component.get("title");
                 if (title != null) {
@@ -127,7 +127,7 @@ public class CatalogComponentListCommand extends 
AbstractCamelCommand {
 
             final Map<String, Integer> retval = new Hashtable<String, 
Integer>();
             retval.put(TITLE_COLUMN_LABEL, maxTitleLen);
-            retval.put(SCHEME_COLUMN_LABEL, maxSchemeLen);
+            retval.put(SYNTAX_COLUMN_LABEL, maxSyntaxLen);
             retval.put(LABEL_COLUMN_LABEL, maxLabelLen);
             retval.put(MAVEN_COLUMN_LABEL, maxMavenLen);
             retval.put(DESCRIPTION_COLUMN_LABEL, maxDescriptionLen);
@@ -152,18 +152,18 @@ public class CatalogComponentListCommand extends 
AbstractCamelCommand {
 
         if (verbose) {
             int titleLen = Math.min(columnWidths.get(TITLE_COLUMN_LABEL) + 
columnWidthIncrement, getMaxColumnWidth());
-            int schemeLen = Math.min(columnWidths.get(SCHEME_COLUMN_LABEL) + 
columnWidthIncrement, getMaxColumnWidth());
+            int syntaxLen = Math.min(columnWidths.get(SYNTAX_COLUMN_LABEL) + 
columnWidthIncrement, getMaxColumnWidth());
             int labelLen = Math.min(columnWidths.get(LABEL_COLUMN_LABEL) + 
columnWidthIncrement, getMaxColumnWidth());
             int mavenLen = Math.min(columnWidths.get(MAVEN_COLUMN_LABEL) + 
columnWidthIncrement, getMaxColumnWidth());
 
             titleLen = Math.max(MIN_COLUMN_WIDTH, titleLen);
-            schemeLen = Math.max(MIN_COLUMN_WIDTH, schemeLen);
+            syntaxLen = Math.max(MIN_COLUMN_WIDTH, syntaxLen);
             labelLen = Math.max(MIN_COLUMN_WIDTH, labelLen);
             mavenLen = Math.max(MIN_COLUMN_WIDTH, mavenLen);
 
             final StringBuilder retval = new 
StringBuilder(DEFAULT_FORMAT_BUFFER_LENGTH);
             
retval.append(fieldPreamble).append("%-").append(titleLen).append('.').append(titleLen).append('s').append(fieldPostamble).append('
 ');
-            
retval.append(fieldPreamble).append("%-").append(schemeLen).append('.').append(schemeLen).append('s').append(fieldPostamble).append('
 ');
+            
retval.append(fieldPreamble).append("%-").append(syntaxLen).append('.').append(syntaxLen).append('s').append(fieldPostamble).append('
 ');
             
retval.append(fieldPreamble).append("%-").append(labelLen).append('.').append(labelLen).append('s').append(fieldPostamble).append('
 ');
             
retval.append(fieldPreamble).append("%-").append(mavenLen).append('.').append(mavenLen).append('s').append(fieldPostamble).append('
 ');
             return retval.toString();

http://git-wip-us.apache.org/repos/asf/camel/blob/edeb983b/tooling/apt/src/main/java/org/apache/camel/tools/apt/EndpointAnnotationProcessor.java
----------------------------------------------------------------------
diff --git 
a/tooling/apt/src/main/java/org/apache/camel/tools/apt/EndpointAnnotationProcessor.java
 
b/tooling/apt/src/main/java/org/apache/camel/tools/apt/EndpointAnnotationProcessor.java
index 61e5dbc..1f4025a 100644
--- 
a/tooling/apt/src/main/java/org/apache/camel/tools/apt/EndpointAnnotationProcessor.java
+++ 
b/tooling/apt/src/main/java/org/apache/camel/tools/apt/EndpointAnnotationProcessor.java
@@ -143,9 +143,10 @@ public class EndpointAnnotationProcessor extends 
AbstractAnnotationProcessor {
         writer.println("</header>");
         writer.println("<body>");
         writer.println("<h1>" + title + "</h1>");
-        writer.println("<b>Description:</b> " + description + "<br/>");
         writer.println("<b>Scheme:</b> " + scheme + "<br/>");
         writer.println("<b>Syntax:</b> " + syntax + "<br/>");
+        writer.println("<b>Description:</b> " + description + "<br/>");
+        writer.println("<b>Deprecated:</b>" + componentModel.isDeprecated() + 
"<br/>");
         writer.println("<b>Maven:</b> " + componentModel.getGroupId() + "/" + 
componentModel.getArtifactId() + "/" + componentModel.getVersionId() + "<br/>");
 
         writeHtmlDocumentationAndFieldInjections(writer, roundEnv, 
componentModel, classElement, "");
@@ -212,6 +213,7 @@ public class EndpointAnnotationProcessor extends 
AbstractAnnotationProcessor {
         buffer.append("\n    \"title\": 
\"").append(componentModel.getTitle()).append("\",");
         buffer.append("\n    \"description\": 
\"").append(componentModel.getDescription()).append("\",");
         buffer.append("\n    \"label\": 
\"").append(getOrElse(componentModel.getLabel(), "")).append("\",");
+        buffer.append("\n    \"deprecated\": 
\"").append(componentModel.isDeprecated()).append("\",");
         if (componentModel.isConsumerOnly()) {
             buffer.append("\n    \"consumerOnly\": 
\"").append("true").append("\",");
         } else if (componentModel.isProducerOnly()) {
@@ -439,6 +441,16 @@ public class EndpointAnnotationProcessor extends 
AbstractAnnotationProcessor {
             } else {
                 model.setDescription("");
             }
+
+            // we can mark a component as deprecated by using the annotation 
or in the pom.xml
+            boolean deprecated = 
endpointClassElement.getAnnotation(Deprecated.class) != null;
+            if (!deprecated) {
+                String name = map.get("projectName");
+                // we may have marked a component as deprecated in the project 
name
+                deprecated = name != null && name.contains("(deprecated)");
+            }
+            model.setDeprecated(deprecated);
+
             if (map.containsKey("groupId")) {
                 model.setGroupId(map.get("groupId"));
             } else {

http://git-wip-us.apache.org/repos/asf/camel/blob/edeb983b/tooling/apt/src/main/java/org/apache/camel/tools/apt/model/ComponentModel.java
----------------------------------------------------------------------
diff --git 
a/tooling/apt/src/main/java/org/apache/camel/tools/apt/model/ComponentModel.java
 
b/tooling/apt/src/main/java/org/apache/camel/tools/apt/model/ComponentModel.java
index 56810ec..9de77f4 100644
--- 
a/tooling/apt/src/main/java/org/apache/camel/tools/apt/model/ComponentModel.java
+++ 
b/tooling/apt/src/main/java/org/apache/camel/tools/apt/model/ComponentModel.java
@@ -30,6 +30,7 @@ public final class ComponentModel {
     private String label;
     private boolean consumerOnly;
     private boolean producerOnly;
+    private boolean deprecated;
 
     public ComponentModel(String scheme) {
         this.scheme = scheme;
@@ -126,4 +127,12 @@ public final class ComponentModel {
     public void setProducerOnly(boolean producerOnly) {
         this.producerOnly = producerOnly;
     }
+
+    public boolean isDeprecated() {
+        return deprecated;
+    }
+
+    public void setDeprecated(boolean deprecated) {
+        this.deprecated = deprecated;
+    }
 }

Reply via email to