CAMEL-9482: Generate json schema model for camel-spring

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

Branch: refs/heads/master
Commit: cb85dc663c4af23ab019a1ed7351dd5fdb407197
Parents: 06e3b15
Author: Claus Ibsen <[email protected]>
Authored: Wed Aug 10 17:13:06 2016 +0200
Committer: Claus Ibsen <[email protected]>
Committed: Wed Aug 10 19:08:13 2016 +0200

----------------------------------------------------------------------
 .../camel/spring/CamelContextFactoryBean.java   | 188 ++++++++++++++++++-
 .../camel/spring/CamelEndpointFactoryBean.java  |   2 +-
 .../apt/CamelContextAnnotationProcessor.java    |   9 +
 3 files changed, 190 insertions(+), 9 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/camel/blob/cb85dc66/components/camel-spring/src/main/java/org/apache/camel/spring/CamelContextFactoryBean.java
----------------------------------------------------------------------
diff --git 
a/components/camel-spring/src/main/java/org/apache/camel/spring/CamelContextFactoryBean.java
 
b/components/camel-spring/src/main/java/org/apache/camel/spring/CamelContextFactoryBean.java
index 652b84c..16233d4 100644
--- 
a/components/camel-spring/src/main/java/org/apache/camel/spring/CamelContextFactoryBean.java
+++ 
b/components/camel-spring/src/main/java/org/apache/camel/spring/CamelContextFactoryBean.java
@@ -83,10 +83,7 @@ import 
org.springframework.context.event.ContextRefreshedEvent;
 import static org.apache.camel.util.ObjectHelper.wrapRuntimeCamelException;
 
 /**
- * A Spring {@link FactoryBean} to create and initialize a
- * {@link SpringCamelContext} and install routes either explicitly configured 
in
- * Spring XML or found by searching the classpath for Java classes which extend
- * {@link RouteBuilder} using the nested {@link #setPackages(String[])}.
+ * CamelContext using XML configuration.
  *
  * @version 
  */
@@ -124,9 +121,9 @@ public class CamelContextFactoryBean extends 
AbstractCamelContextFactoryBean<Spr
     private String allowUseOriginalMessage;
     @XmlAttribute
     private String runtimeEndpointRegistryEnabled;
-    @XmlAttribute
+    @XmlAttribute @Metadata(defaultValue = "#name#")
     private String managementNamePattern;
-    @XmlAttribute
+    @XmlAttribute @Metadata(defaultValue = "Camel (#camelId#) thread 
##counter# - #name#")
     private String threadNamePattern;
     @XmlAttribute @Metadata(defaultValue = "Default")
     private ShutdownRoute shutdownRoute;
@@ -424,6 +421,9 @@ public class CamelContextFactoryBean extends 
AbstractCamelContextFactoryBean<Spr
         return routes;
     }
 
+    /**
+     * Contains the Camel routes
+     */
     public void setRoutes(List<RouteDefinition> routes) {
         this.routes = routes;
     }
@@ -432,6 +432,9 @@ public class CamelContextFactoryBean extends 
AbstractCamelContextFactoryBean<Spr
         return rests;
     }
 
+    /**
+     * Contains the rest services defined using the rest-dsl
+     */
     public void setRests(List<RestDefinition> rests) {
         this.rests = rests;
     }
@@ -440,6 +443,9 @@ public class CamelContextFactoryBean extends 
AbstractCamelContextFactoryBean<Spr
         return restConfiguration;
     }
 
+    /**
+     * Configuration for rest-dsl
+     */
     public void setRestConfiguration(RestConfigurationDefinition 
restConfiguration) {
         this.restConfiguration = restConfiguration;
     }
@@ -448,6 +454,9 @@ public class CamelContextFactoryBean extends 
AbstractCamelContextFactoryBean<Spr
         return endpoints;
     }
 
+    /**
+     * Configuration of endpoints
+     */
     public void setEndpoints(List<CamelEndpointFactoryBean> endpoints) {
         this.endpoints = endpoints;
     }
@@ -460,6 +469,9 @@ public class CamelContextFactoryBean extends 
AbstractCamelContextFactoryBean<Spr
         return intercepts;
     }
 
+    /**
+     * Configuration of interceptors.
+     */
     public void setIntercepts(List<InterceptDefinition> intercepts) {
         this.intercepts = intercepts;
     }
@@ -468,6 +480,9 @@ public class CamelContextFactoryBean extends 
AbstractCamelContextFactoryBean<Spr
         return interceptFroms;
     }
 
+    /**
+     * Configuration of interceptors that triggers from the beginning of 
routes.
+     */
     public void setInterceptFroms(List<InterceptFromDefinition> 
interceptFroms) {
         this.interceptFroms = interceptFroms;
     }
@@ -476,6 +491,9 @@ public class CamelContextFactoryBean extends 
AbstractCamelContextFactoryBean<Spr
         return interceptSendToEndpoints;
     }
 
+    /**
+     * Configuration of interceptors that triggers sending messages to 
endpoints.
+     */
     public void 
setInterceptSendToEndpoints(List<InterceptSendToEndpointDefinition> 
interceptSendToEndpoints) {
         this.interceptSendToEndpoints = interceptSendToEndpoints;
     }
@@ -484,6 +502,9 @@ public class CamelContextFactoryBean extends 
AbstractCamelContextFactoryBean<Spr
         return properties;
     }
 
+    /**
+     * Configuration of CamelContext properties such as limit of debug logging 
and other general options.
+     */
     public void setProperties(PropertiesDefinition properties) {
         this.properties = properties;
     }
@@ -541,6 +562,9 @@ public class CamelContextFactoryBean extends 
AbstractCamelContextFactoryBean<Spr
         return camelPropertyPlaceholder;
     }
 
+    /**
+     * Configuration of property placeholder
+     */
     public void setCamelPropertyPlaceholder(CamelPropertyPlaceholderDefinition 
camelPropertyPlaceholder) {
         this.camelPropertyPlaceholder = camelPropertyPlaceholder;
     }
@@ -549,10 +573,16 @@ public class CamelContextFactoryBean extends 
AbstractCamelContextFactoryBean<Spr
         return camelStreamCachingStrategy;
     }
 
+    /**
+     * Configuration of stream caching.
+     */
     public void 
setCamelStreamCachingStrategy(CamelStreamCachingStrategyDefinition 
camelStreamCachingStrategy) {
         this.camelStreamCachingStrategy = camelStreamCachingStrategy;
     }
 
+    /**
+     * Configuration of JMX.
+     */
     public void setCamelJMXAgent(CamelJMXAgentDefinition agent) {
         camelJMXAgent = agent;
     }
@@ -561,6 +591,9 @@ public class CamelContextFactoryBean extends 
AbstractCamelContextFactoryBean<Spr
         return trace;
     }
 
+    /**
+     * Sets whether tracing is enabled or not.
+     */
     public void setTrace(String trace) {
         this.trace = trace;
     }
@@ -569,6 +602,9 @@ public class CamelContextFactoryBean extends 
AbstractCamelContextFactoryBean<Spr
         return messageHistory;
     }
 
+    /**
+     * Sets whether message history is enabled or not.
+     */
     public void setMessageHistory(String messageHistory) {
         this.messageHistory = messageHistory;
     }
@@ -577,6 +613,9 @@ public class CamelContextFactoryBean extends 
AbstractCamelContextFactoryBean<Spr
         return logExhaustedMessageBody;
     }
 
+    /**
+     * Sets whether to log exhausted message body with message history.
+     */
     public void setLogExhaustedMessageBody(String logExhaustedMessageBody) {
         this.logExhaustedMessageBody = logExhaustedMessageBody;
     }
@@ -585,6 +624,9 @@ public class CamelContextFactoryBean extends 
AbstractCamelContextFactoryBean<Spr
         return streamCache;
     }
 
+    /**
+     * Sets whether stream caching is enabled or not.
+     */
     public void setStreamCache(String streamCache) {
         this.streamCache = streamCache;
     }
@@ -593,6 +635,10 @@ public class CamelContextFactoryBean extends 
AbstractCamelContextFactoryBean<Spr
         return delayer;
     }
 
+    /**
+     * Sets a delay value in millis that a message is delayed at every step it 
takes in the route path,
+     * slowing the process down to better observe what is occurring
+     */
     public void setDelayer(String delayer) {
         this.delayer = delayer;
     }
@@ -601,6 +647,9 @@ public class CamelContextFactoryBean extends 
AbstractCamelContextFactoryBean<Spr
         return handleFault;
     }
 
+    /**
+     * Sets whether fault handling is enabled or not (default is disabled).
+     */
     public void setHandleFault(String handleFault) {
         this.handleFault = handleFault;
     }
@@ -609,6 +658,16 @@ public class CamelContextFactoryBean extends 
AbstractCamelContextFactoryBean<Spr
         return autoStartup;
     }
 
+    /**
+     * Sets whether the object should automatically start when Camel starts.
+     * <p/>
+     * <b>Important:</b> Currently only routes can be disabled, as {@link 
CamelContext}s are always started.
+     * <br/>
+     * <b>Note:</b> When setting auto startup <tt>false</tt> on {@link 
CamelContext} then that takes precedence
+     * and <i>no</i> routes is started. You would need to start {@link 
CamelContext} explicit using
+     * the {@link org.apache.camel.CamelContext#start()} method, to start the 
context, and then
+     * you would need to start the routes manually using {@link 
CamelContext#startRoute(String)}.
+     */
     public void setAutoStartup(String autoStartup) {
         this.autoStartup = autoStartup;
     }
@@ -617,6 +676,11 @@ public class CamelContextFactoryBean extends 
AbstractCamelContextFactoryBean<Spr
         return shutdownEager;
     }
 
+    /**
+     * Whether to shutdown CamelContext eager when Spring is shutting down.
+     * This ensure a cleaner shutdown of Camel, as dependent bean's are not 
shutdown at this moment.
+     * The bean's will then be shutdown after camelContext.
+     */
     public void setShutdownEager(String shutdownEager) {
         this.shutdownEager = shutdownEager;
     }
@@ -625,6 +689,9 @@ public class CamelContextFactoryBean extends 
AbstractCamelContextFactoryBean<Spr
         return useMDCLogging;
     }
 
+    /**
+     * Set whether <a 
href="http://www.slf4j.org/api/org/slf4j/MDC.html";>MDC</a> is enabled.
+     */
     public void setUseMDCLogging(String useMDCLogging) {
         this.useMDCLogging = useMDCLogging;
     }
@@ -633,6 +700,9 @@ public class CamelContextFactoryBean extends 
AbstractCamelContextFactoryBean<Spr
         return useBreadcrumb;
     }
 
+    /**
+     * Set whether breadcrumb is enabled.
+     */
     public void setUseBreadcrumb(String useBreadcrumb) {
         this.useBreadcrumb = useBreadcrumb;
     }
@@ -641,6 +711,12 @@ public class CamelContextFactoryBean extends 
AbstractCamelContextFactoryBean<Spr
         return allowUseOriginalMessage;
     }
 
+    /**
+     * Sets whether to allow access to the original message from Camel's error 
handler,
+     * or from {@link org.apache.camel.spi.UnitOfWork#getOriginalInMessage()}.
+     * <p/>
+     * Turning this off can optimize performance, as defensive copy of the 
original message is not needed.
+     */
     public void setAllowUseOriginalMessage(String allowUseOriginalMessage) {
         this.allowUseOriginalMessage = allowUseOriginalMessage;
     }
@@ -649,6 +725,9 @@ public class CamelContextFactoryBean extends 
AbstractCamelContextFactoryBean<Spr
         return runtimeEndpointRegistryEnabled;
     }
 
+    /**
+     * Sets whether {@link org.apache.camel.spi.RuntimeEndpointRegistry} is 
enabled.
+     */
     public void setRuntimeEndpointRegistryEnabled(String 
runtimeEndpointRegistryEnabled) {
         this.runtimeEndpointRegistryEnabled = runtimeEndpointRegistryEnabled;
     }
@@ -657,6 +736,9 @@ public class CamelContextFactoryBean extends 
AbstractCamelContextFactoryBean<Spr
         return managementNamePattern;
     }
 
+    /**
+     * The naming pattern for creating the CamelContext management name.
+     */
     public void setManagementNamePattern(String managementNamePattern) {
         this.managementNamePattern = managementNamePattern;
     }
@@ -665,6 +747,16 @@ public class CamelContextFactoryBean extends 
AbstractCamelContextFactoryBean<Spr
         return threadNamePattern;
     }
 
+    /**
+     * Sets the thread name pattern used for creating the full thread name.
+     * <p/>
+     * The default pattern is: <tt>Camel (#camelId#) thread ##counter# - 
#name#</tt>
+     * <p/>
+     * Where <tt>#camelId#</tt> is the name of the {@link 
org.apache.camel.CamelContext}
+     * <br/>and <tt>#counter#</tt> is a unique incrementing counter.
+     * <br/>and <tt>#name#</tt> is the regular thread name.
+     * <br/>You can also use <tt>#longName#</tt> is the long thread name which 
can includes endpoint parameters etc.
+     */
     public void setThreadNamePattern(String threadNamePattern) {
         this.threadNamePattern = threadNamePattern;
     }
@@ -674,6 +766,9 @@ public class CamelContextFactoryBean extends 
AbstractCamelContextFactoryBean<Spr
         return lazyLoadTypeConverters;
     }
 
+    /**
+     * Sets whether type converters should be loaded lazy
+     */
     @Deprecated
     public void setLazyLoadTypeConverters(Boolean lazyLoadTypeConverters) {
         this.lazyLoadTypeConverters = lazyLoadTypeConverters;
@@ -683,6 +778,16 @@ public class CamelContextFactoryBean extends 
AbstractCamelContextFactoryBean<Spr
         return typeConverterStatisticsEnabled;
     }
 
+    /**
+     * Sets whether or not type converter statistics is enabled.
+     * <p/>
+     * By default the type converter utilization statistics is disabled.
+     * <b>Notice:</b> If enabled then there is a slight performance impact 
under very heavy load.
+     * <p/>
+     * You can enable/disable the statistics at runtime using the
+     * {@link 
org.apache.camel.spi.TypeConverterRegistry#getStatistics()#setTypeConverterStatisticsEnabled(Boolean)}
 method,
+     * or from JMX on the {@link 
org.apache.camel.api.management.mbean.ManagedTypeConverterRegistryMBean} mbean.
+     */
     public void setTypeConverterStatisticsEnabled(Boolean 
typeConverterStatisticsEnabled) {
         this.typeConverterStatisticsEnabled = typeConverterStatisticsEnabled;
     }
@@ -691,6 +796,11 @@ public class CamelContextFactoryBean extends 
AbstractCamelContextFactoryBean<Spr
         return typeConverterExists;
     }
 
+    /**
+     * What should happen when attempting to add a duplicate type converter.
+     * <p/>
+     * The default behavior is to override the existing.
+     */
     public void setTypeConverterExists(TypeConverterExists 
typeConverterExists) {
         this.typeConverterExists = typeConverterExists;
     }
@@ -699,6 +809,11 @@ public class CamelContextFactoryBean extends 
AbstractCamelContextFactoryBean<Spr
         return typeConverterExistsLoggingLevel;
     }
 
+    /**
+     * The logging level to use when logging that a type converter already 
exists when attempting to add a duplicate type converter.
+     * <p/>
+     * The default logging level is <tt>WARN</tt>
+     */
     public void setTypeConverterExistsLoggingLevel(LoggingLevel 
typeConverterExistsLoggingLevel) {
         this.typeConverterExistsLoggingLevel = typeConverterExistsLoggingLevel;
     }
@@ -711,6 +826,9 @@ public class CamelContextFactoryBean extends 
AbstractCamelContextFactoryBean<Spr
         return builderRefs;
     }
 
+    /**
+     * Refers to Java {@link RouteBuilder} instances to include as routes in 
this CamelContext.
+     */
     public void setBuilderRefs(List<RouteBuilderDefinition> builderRefs) {
         this.builderRefs = builderRefs;
     }
@@ -719,6 +837,9 @@ public class CamelContextFactoryBean extends 
AbstractCamelContextFactoryBean<Spr
         return routeRefs;
     }
 
+    /**
+     * Refers to XML routes to include as routes in this CamelContext.
+     */
     public void setRouteRefs(List<RouteContextRefDefinition> routeRefs) {
         this.routeRefs = routeRefs;
     }
@@ -727,6 +848,9 @@ public class CamelContextFactoryBean extends 
AbstractCamelContextFactoryBean<Spr
         return restRefs;
     }
 
+    /**
+     * Refers to XML rest-dsl to include as REST services in this CamelContext.
+     */
     public void setRestRefs(List<RestContextRefDefinition> restRefs) {
         this.restRefs = restRefs;
     }
@@ -737,13 +861,14 @@ public class CamelContextFactoryBean extends 
AbstractCamelContextFactoryBean<Spr
 
     /**
      * Sets the name of the error handler object used to default the error 
handling strategy
-     *
-     * @param errorHandlerRef the Spring bean ref of the error handler
      */
     public void setErrorHandlerRef(String errorHandlerRef) {
         this.errorHandlerRef = errorHandlerRef;
     }
 
+    /**
+     * Configuration of data formats.
+     */
     public void setDataFormats(DataFormatsDefinition dataFormats) {
         this.dataFormats = dataFormats;
     }
@@ -752,6 +877,27 @@ public class CamelContextFactoryBean extends 
AbstractCamelContextFactoryBean<Spr
         return dataFormats;
     }
 
+    /**
+     * Configuration of redelivery settings.
+     */
+    public void setRedeliveryPolicies(List<CamelRedeliveryPolicyFactoryBean> 
redeliveryPolicies) {
+        this.redeliveryPolicies = redeliveryPolicies;
+    }
+
+    public List<?> getBeans() {
+        return beans;
+    }
+
+    /**
+     * Miscellaneous configurations
+     */
+    public void setBeans(List<?> beans) {
+        this.beans = beans;
+    }
+
+    /**
+     * Configuration of error handlers that triggers on exceptions thrown.
+     */
     public void setOnExceptions(List<OnExceptionDefinition> onExceptions) {
         this.onExceptions = onExceptions;
     }
@@ -764,6 +910,9 @@ public class CamelContextFactoryBean extends 
AbstractCamelContextFactoryBean<Spr
         return onCompletions;
     }
 
+    /**
+     * Configuration of sub routes to run at the completion of routing.
+     */
     public void setOnCompletions(List<OnCompletionDefinition> onCompletions) {
         this.onCompletions = onCompletions;
     }
@@ -772,6 +921,9 @@ public class CamelContextFactoryBean extends 
AbstractCamelContextFactoryBean<Spr
         return shutdownRoute;
     }
 
+    /**
+     * Sets the ShutdownRoute option for routes.
+     */
     public void setShutdownRoute(ShutdownRoute shutdownRoute) {
         this.shutdownRoute = shutdownRoute;
     }
@@ -780,6 +932,9 @@ public class CamelContextFactoryBean extends 
AbstractCamelContextFactoryBean<Spr
         return shutdownRunningTask;
     }
 
+    /**
+     * Sets the ShutdownRunningTask option to use when shutting down a route.
+     */
     public void setShutdownRunningTask(ShutdownRunningTask 
shutdownRunningTask) {
         this.shutdownRunningTask = shutdownRunningTask;
     }
@@ -788,14 +943,31 @@ public class CamelContextFactoryBean extends 
AbstractCamelContextFactoryBean<Spr
         return threadPoolProfiles;
     }
 
+    /**
+     * Configuration of thread pool profiles.
+     */
     public void setThreadPoolProfiles(List<ThreadPoolProfileDefinition> 
threadPoolProfiles) {
         this.threadPoolProfiles = threadPoolProfiles;
     }
 
+    public List<CamelThreadPoolFactoryBean> getThreadPools() {
+        return threadPools;
+    }
+
+    /**
+     * Configuration of thread pool
+     */
+    public void setThreadPools(List<CamelThreadPoolFactoryBean> threadPools) {
+        this.threadPools = threadPools;
+    }
+
     public String getDependsOn() {
         return dependsOn;
     }
 
+    /**
+     * List of other bean id's this CamelContext depends up. Multiple bean 
id's can be separated by comma.
+     */
     public void setDependsOn(String dependsOn) {
         this.dependsOn = dependsOn;
     }

http://git-wip-us.apache.org/repos/asf/camel/blob/cb85dc66/components/camel-spring/src/main/java/org/apache/camel/spring/CamelEndpointFactoryBean.java
----------------------------------------------------------------------
diff --git 
a/components/camel-spring/src/main/java/org/apache/camel/spring/CamelEndpointFactoryBean.java
 
b/components/camel-spring/src/main/java/org/apache/camel/spring/CamelEndpointFactoryBean.java
index e0c28b9..f468da7 100644
--- 
a/components/camel-spring/src/main/java/org/apache/camel/spring/CamelEndpointFactoryBean.java
+++ 
b/components/camel-spring/src/main/java/org/apache/camel/spring/CamelEndpointFactoryBean.java
@@ -31,7 +31,7 @@ import org.springframework.context.ApplicationContext;
 import org.springframework.context.ApplicationContextAware;
 
 /**
- * A {@link FactoryBean} which instantiates {@link Endpoint} objects
+ * Camel endpoint configuration
  *
  * @version 
  */

http://git-wip-us.apache.org/repos/asf/camel/blob/cb85dc66/tooling/apt/src/main/java/org/apache/camel/tools/apt/CamelContextAnnotationProcessor.java
----------------------------------------------------------------------
diff --git 
a/tooling/apt/src/main/java/org/apache/camel/tools/apt/CamelContextAnnotationProcessor.java
 
b/tooling/apt/src/main/java/org/apache/camel/tools/apt/CamelContextAnnotationProcessor.java
index bf0b3b0..9f10d0f 100644
--- 
a/tooling/apt/src/main/java/org/apache/camel/tools/apt/CamelContextAnnotationProcessor.java
+++ 
b/tooling/apt/src/main/java/org/apache/camel/tools/apt/CamelContextAnnotationProcessor.java
@@ -305,6 +305,15 @@ public class CamelContextAnnotationProcessor extends 
AbstractAnnotationProcessor
 
         boolean deprecated = fieldElement.getAnnotation(Deprecated.class) != 
null;
 
+        // special for id as its inherited from camel-core
+        if ("id".equals(name) && isNullOrEmpty(docComment)) {
+            if 
("CamelContextFactoryBean".equals(originalClassType.getSimpleName().toString()))
 {
+                docComment = "Sets the id (name) of this CamelContext";
+            } else {
+                docComment = "Sets the id of this node";
+            }
+        }
+
         EipOption ep = new EipOption(name, "attribute", fieldTypeName, 
required, defaultValue, docComment, deprecated, isEnum, enums, false, null);
         eipOptions.add(ep);
 

Reply via email to