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/f2fa8026 Tree: http://git-wip-us.apache.org/repos/asf/camel/tree/f2fa8026 Diff: http://git-wip-us.apache.org/repos/asf/camel/diff/f2fa8026 Branch: refs/heads/master Commit: f2fa8026808948e594c57ab2124e12e06484b8f5 Parents: d42ba1f Author: Claus Ibsen <davscl...@apache.org> Authored: Wed Dec 31 11:11:20 2014 +0100 Committer: Claus Ibsen <davscl...@apache.org> Committed: Wed Dec 31 11:35:41 2014 +0100 ---------------------------------------------------------------------- .../management/mbean/CamelOpenMBeanTypes.java | 12 ++++---- .../apache/camel/impl/DefaultCamelContext.java | 30 ++++++++++++++------ .../camel/management/mbean/ManagedEndpoint.java | 5 ++-- .../management/mbean/ManagedProcessor.java | 5 ++-- .../management/ManagedCamelContextTest.java | 6 ++-- ...ponentConfigurationAndDocumentationTest.java | 2 +- .../camel/commands/EipExplainCommand.java | 5 ++++ .../camel/commands/EndpointExplainCommand.java | 5 ++++ 8 files changed, 47 insertions(+), 23 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/camel/blob/f2fa8026/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 df14e88..bfb346d 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 @@ -72,9 +72,9 @@ public final class CamelOpenMBeanTypes { } public static CompositeType explainEndpointsCompositeType() throws OpenDataException { - return new CompositeType("endpoints", "Endpoints", new String[]{"option", "kind", "type", "java type", "value", "default value", "description"}, - new String[]{"Option", "Kind", "Type", "Java Type", "Value", "Default Value", "Description"}, - new OpenType[]{SimpleType.STRING, SimpleType.STRING, SimpleType.STRING, SimpleType.STRING, SimpleType.STRING, SimpleType.STRING, SimpleType.STRING}); + return new CompositeType("endpoints", "Endpoints", new String[]{"option", "kind", "type", "java type", "deprecated", "value", "default value", "description"}, + new String[]{"Option", "Kind", "Type", "Java Type", "Deprecated", "Value", "Default Value", "Description"}, + new OpenType[]{SimpleType.STRING, SimpleType.STRING, SimpleType.STRING, SimpleType.STRING, SimpleType.STRING, SimpleType.STRING, SimpleType.STRING, SimpleType.STRING}); } public static TabularType explainEipTabularType() throws OpenDataException { @@ -83,9 +83,9 @@ public final class CamelOpenMBeanTypes { } public static CompositeType explainEipsCompositeType() throws OpenDataException { - return new CompositeType("eips", "EIPs", new String[]{"option", "kind", "type", "java type", "value", "default value", "description"}, - new String[]{"Option", "Kind", "Type", "Java Type", "Value", "Default Value", "Description"}, - new OpenType[]{SimpleType.STRING, SimpleType.STRING, SimpleType.STRING, SimpleType.STRING, SimpleType.STRING, SimpleType.STRING, SimpleType.STRING}); + return new CompositeType("eips", "EIPs", new String[]{"option", "kind", "type", "java type", "deprecated", "value", "default value", "description"}, + new String[]{"Option", "Kind", "Type", "Java Type", "Deprecated", "Value", "Default Value", "Description"}, + new OpenType[]{SimpleType.STRING, SimpleType.STRING, SimpleType.STRING, SimpleType.STRING, SimpleType.STRING, SimpleType.STRING, SimpleType.STRING, SimpleType.STRING}); } public static TabularType listComponentsTabularType() throws OpenDataException { http://git-wip-us.apache.org/repos/asf/camel/blob/f2fa8026/camel-core/src/main/java/org/apache/camel/impl/DefaultCamelContext.java ---------------------------------------------------------------------- diff --git a/camel-core/src/main/java/org/apache/camel/impl/DefaultCamelContext.java b/camel-core/src/main/java/org/apache/camel/impl/DefaultCamelContext.java index 6a41243..f9c8bca 100644 --- a/camel-core/src/main/java/org/apache/camel/impl/DefaultCamelContext.java +++ b/camel-core/src/main/java/org/apache/camel/impl/DefaultCamelContext.java @@ -1241,6 +1241,7 @@ public class DefaultCamelContext extends ServiceSupport implements ModelCamelCon String defaultValue = row.get("defaultValue"); String type = row.get("type"); String javaType = row.get("javaType"); + String deprecated = row.get("javaType"); String description = row.get("description"); // find the configured option @@ -1254,7 +1255,7 @@ public class DefaultCamelContext extends ServiceSupport implements ModelCamelCon if (includeAllOptions || o != null) { // add as selected row if (!selected.containsKey(name)) { - selected.put(name, new String[]{name, kind, type, javaType, value, defaultValue, description}); + selected.put(name, new String[]{name, kind, type, javaType, deprecated, value, defaultValue, description}); } } } @@ -1274,9 +1275,10 @@ public class DefaultCamelContext extends ServiceSupport implements ModelCamelCon String kind = row[1]; String type = row[2]; String javaType = row[3]; - String value = row[4]; - String defaultValue = row[5]; - String description = row[6]; + String deprecated = row[4]; + String value = row[5]; + String defaultValue = row[6]; + String description = row[7]; // add json of the option buffer.append(doubleQuote(name)).append(": { "); @@ -1290,6 +1292,9 @@ public class DefaultCamelContext extends ServiceSupport implements ModelCamelCon if (javaType != null) { csb.append("\"javaType\": \"" + javaType + "\""); } + if (deprecated != null) { + csb.append("\"deprecated\": \"" + deprecated + "\""); + } if (value != null) { csb.append("\"value\": \"" + value + "\""); } @@ -1381,6 +1386,7 @@ public class DefaultCamelContext extends ServiceSupport implements ModelCamelCon String type = null; String kind = null; String javaType = null; + String deprecated = null; String defaultValue = null; String description = null; for (Map<String, String> row : rows) { @@ -1388,6 +1394,7 @@ public class DefaultCamelContext extends ServiceSupport implements ModelCamelCon type = row.get("type"); kind = row.get("kind"); javaType = row.get("javaType"); + deprecated = row.get("deprecated"); defaultValue = row.get("defaultValue"); description = row.get("description"); break; @@ -1395,7 +1402,7 @@ public class DefaultCamelContext extends ServiceSupport implements ModelCamelCon } // add as selected row - selected.put(name, new String[]{name, kind, type, javaType, value, defaultValue, description}); + selected.put(name, new String[]{name, kind, type, javaType, deprecated, value, defaultValue, description}); } // include other rows @@ -1406,6 +1413,7 @@ public class DefaultCamelContext extends ServiceSupport implements ModelCamelCon String defaultValue = row.get("defaultValue"); String type = row.get("type"); String javaType = row.get("javaType"); + String deprecated = row.get("deprecated"); value = URISupport.sanitizePath(value); String description = row.get("description"); @@ -1419,7 +1427,7 @@ public class DefaultCamelContext extends ServiceSupport implements ModelCamelCon if (includeAllOptions || "path".equals(kind)) { // add as selected row if (!selected.containsKey(name)) { - selected.put(name, new String[]{name, kind, type, javaType, value, defaultValue, description}); + selected.put(name, new String[]{name, kind, type, javaType, deprecated, value, defaultValue, description}); } } } @@ -1439,9 +1447,10 @@ public class DefaultCamelContext extends ServiceSupport implements ModelCamelCon String kind = row[1]; String type = row[2]; String javaType = row[3]; - String value = row[4]; - String defaultValue = row[5]; - String description = row[6]; + String deprecated = row[4]; + String value = row[5]; + String defaultValue = row[6]; + String description = row[7]; // add json of the option buffer.append(doubleQuote(name)).append(": { "); @@ -1455,6 +1464,9 @@ public class DefaultCamelContext extends ServiceSupport implements ModelCamelCon if (javaType != null) { csb.append("\"javaType\": \"" + javaType + "\""); } + if (deprecated != null) { + csb.append("\"deprecated\": \"" + deprecated + "\""); + } if (value != null) { csb.append("\"value\": \"" + value + "\""); } http://git-wip-us.apache.org/repos/asf/camel/blob/f2fa8026/camel-core/src/main/java/org/apache/camel/management/mbean/ManagedEndpoint.java ---------------------------------------------------------------------- diff --git a/camel-core/src/main/java/org/apache/camel/management/mbean/ManagedEndpoint.java b/camel-core/src/main/java/org/apache/camel/management/mbean/ManagedEndpoint.java index 4871206..9ad6574 100644 --- a/camel-core/src/main/java/org/apache/camel/management/mbean/ManagedEndpoint.java +++ b/camel-core/src/main/java/org/apache/camel/management/mbean/ManagedEndpoint.java @@ -96,14 +96,15 @@ public class ManagedEndpoint implements ManagedInstance, ManagedEndpointMBean { String kind = row.get("kind"); String type = row.get("type"); String javaType = row.get("javaType"); + String deprecated = row.get("deprecated") != null ? row.get("deprecated") : ""; String value = row.get("value") != null ? row.get("value") : ""; String defaultValue = row.get("defaultValue") != null ? row.get("defaultValue") : ""; String description = row.get("description") != null ? row.get("description") : ""; CompositeType ct = CamelOpenMBeanTypes.explainEndpointsCompositeType(); CompositeData data = new CompositeDataSupport(ct, - new String[]{"option", "kind", "type", "java type", "value", "default value", "description"}, - new Object[]{name, kind, type, javaType, value, defaultValue, description}); + new String[]{"option", "kind", "type", "java type", "deprecated", "value", "default value", "description"}, + new Object[]{name, kind, type, javaType, deprecated, value, defaultValue, description}); answer.put(data); } http://git-wip-us.apache.org/repos/asf/camel/blob/f2fa8026/camel-core/src/main/java/org/apache/camel/management/mbean/ManagedProcessor.java ---------------------------------------------------------------------- diff --git a/camel-core/src/main/java/org/apache/camel/management/mbean/ManagedProcessor.java b/camel-core/src/main/java/org/apache/camel/management/mbean/ManagedProcessor.java index f2d8804..f644c86 100644 --- a/camel-core/src/main/java/org/apache/camel/management/mbean/ManagedProcessor.java +++ b/camel-core/src/main/java/org/apache/camel/management/mbean/ManagedProcessor.java @@ -149,14 +149,15 @@ public class ManagedProcessor extends ManagedPerformanceCounter implements Manag String kind = row.get("kind"); String type = row.get("type"); String javaType = row.get("javaType"); + String deprecated = row.get("deprecated") != null ? row.get("deprecated") : ""; String value = row.get("value") != null ? row.get("value") : ""; String defaultValue = row.get("defaultValue") != null ? row.get("defaultValue") : ""; String description = row.get("description") != null ? row.get("description") : ""; CompositeType ct = CamelOpenMBeanTypes.explainEipsCompositeType(); CompositeData data = new CompositeDataSupport(ct, - new String[]{"option", "kind", "type", "java type", "value", "default value", "description"}, - new Object[]{name, kind, type, javaType, value, defaultValue, description}); + new String[]{"option", "kind", "type", "java type", "deprecated", "value", "default value", "description"}, + new Object[]{name, kind, type, javaType, deprecated, value, defaultValue, description}); answer.put(data); } http://git-wip-us.apache.org/repos/asf/camel/blob/f2fa8026/camel-core/src/test/java/org/apache/camel/management/ManagedCamelContextTest.java ---------------------------------------------------------------------- diff --git a/camel-core/src/test/java/org/apache/camel/management/ManagedCamelContextTest.java b/camel-core/src/test/java/org/apache/camel/management/ManagedCamelContextTest.java index 9e7fb1b..57c444e 100644 --- a/camel-core/src/test/java/org/apache/camel/management/ManagedCamelContextTest.java +++ b/camel-core/src/test/java/org/apache/camel/management/ManagedCamelContextTest.java @@ -243,11 +243,11 @@ public class ManagedCamelContextTest extends ManagementTestSupport { assertEquals(5, StringHelper.countChar(json, '{')); assertEquals(5, StringHelper.countChar(json, '}')); - assertTrue(json.contains("\"groupDelay\": { \"kind\": \"parameter\", \"type\": \"integer\", \"javaType\": \"java.lang.Long\", \"value\": \"2000\"," + assertTrue(json.contains("\"groupDelay\": { \"kind\": \"parameter\", \"type\": \"integer\", \"javaType\": \"java.lang.Long\", \"deprecated\": \"false\", \"value\": \"2000\"," + " \"description\": \"Set the initial delay for stats (in millis)\" },")); - assertTrue(json.contains("\"groupSize\": { \"kind\": \"parameter\", \"type\": \"integer\", \"javaType\": \"java.lang.Integer\", \"value\": \"5\"," + assertTrue(json.contains("\"groupSize\": { \"kind\": \"parameter\", \"type\": \"integer\", \"javaType\": \"java.lang.Integer\", \"deprecated\": \"false\", \"value\": \"5\"," + " \"description\": \"An integer that specifies a group size for throughput logging.\" }")); - assertTrue(json.contains("\"loggerName\": { \"kind\": \"path\", \"type\": \"string\", \"javaType\": \"java.lang.String\"," + assertTrue(json.contains("\"loggerName\": { \"kind\": \"path\", \"type\": \"string\", \"javaType\": \"java.lang.String\", \"deprecated\": \"false\"," + " \"value\": \"foo\", \"description\": \"The logger name to use\" }")); } http://git-wip-us.apache.org/repos/asf/camel/blob/f2fa8026/components/camel-jdbc/src/test/java/org/apache/camel/component/jdbc/JdbcComponentConfigurationAndDocumentationTest.java ---------------------------------------------------------------------- diff --git a/components/camel-jdbc/src/test/java/org/apache/camel/component/jdbc/JdbcComponentConfigurationAndDocumentationTest.java b/components/camel-jdbc/src/test/java/org/apache/camel/component/jdbc/JdbcComponentConfigurationAndDocumentationTest.java index 4be4197..ab7effb 100644 --- a/components/camel-jdbc/src/test/java/org/apache/camel/component/jdbc/JdbcComponentConfigurationAndDocumentationTest.java +++ b/components/camel-jdbc/src/test/java/org/apache/camel/component/jdbc/JdbcComponentConfigurationAndDocumentationTest.java @@ -44,7 +44,7 @@ public class JdbcComponentConfigurationAndDocumentationTest extends CamelTestSup assertTrue(json.contains("\"outputClass\": { \"kind\": \"parameter\", \"type\": \"string\"")); assertTrue(json.contains("\"allowNamedParameters\": { \"kind\": \"parameter\", \"type\": \"boolean\"")); - assertTrue(json.contains("\"beanRowMapper\": { \"kind\": \"parameter\", \"type\": \"object\", \"javaType\": \"org.apache.camel.component.jdbc.BeanRowMapper\" }")); + assertTrue(json.contains("\"beanRowMapper\": { \"kind\": \"parameter\", \"type\": \"object\", \"javaType\": \"org.apache.camel.component.jdbc.BeanRowMapper\", \"deprecated\": \"false\" },")); } @Test http://git-wip-us.apache.org/repos/asf/camel/blob/f2fa8026/platforms/commands/commands-core/src/main/java/org/apache/camel/commands/EipExplainCommand.java ---------------------------------------------------------------------- diff --git a/platforms/commands/commands-core/src/main/java/org/apache/camel/commands/EipExplainCommand.java b/platforms/commands/commands-core/src/main/java/org/apache/camel/commands/EipExplainCommand.java index b94002c..fac0012 100644 --- a/platforms/commands/commands-core/src/main/java/org/apache/camel/commands/EipExplainCommand.java +++ b/platforms/commands/commands-core/src/main/java/org/apache/camel/commands/EipExplainCommand.java @@ -86,6 +86,11 @@ public class EipExplainCommand extends AbstractContextCommand { out.print("Java Type: "); out.println(javaType); } + String deprecated = option.get("deprecated"); + if (deprecated != null) { + out.print("Deprecated: "); + out.println(deprecated); + } String value = option.get("value"); if (value != null) { out.print("Value: "); http://git-wip-us.apache.org/repos/asf/camel/blob/f2fa8026/platforms/commands/commands-core/src/main/java/org/apache/camel/commands/EndpointExplainCommand.java ---------------------------------------------------------------------- diff --git a/platforms/commands/commands-core/src/main/java/org/apache/camel/commands/EndpointExplainCommand.java b/platforms/commands/commands-core/src/main/java/org/apache/camel/commands/EndpointExplainCommand.java index f1e4787..f61e845 100644 --- a/platforms/commands/commands-core/src/main/java/org/apache/camel/commands/EndpointExplainCommand.java +++ b/platforms/commands/commands-core/src/main/java/org/apache/camel/commands/EndpointExplainCommand.java @@ -116,6 +116,11 @@ public class EndpointExplainCommand extends AbstractContextCommand { out.print("Java Type: "); out.println(javaType); } + String deprecated = option.get("deprecated"); + if (deprecated != null) { + out.print("Deprecated: "); + out.println(deprecated); + } String value = option.get("value"); if (value != null) { out.print("Value: ");