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 2019/06/21 11:38:18 UTC

[camel] 03/03: CAMEL-13663: camel-main-maven-plugin to generte spring-boot tooling metadata to fool Java editors to have code completions for Camel Main application.properties files.

This is an automated email from the ASF dual-hosted git repository.

davsclaus pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/camel.git

commit 8358db18de5ea3d72ec01e937a2a36a0e5aa0243
Author: Claus Ibsen <cl...@gmail.com>
AuthorDate: Fri Jun 21 13:29:27 2019 +0200

    CAMEL-13663: camel-main-maven-plugin to generte spring-boot tooling metadata to fool Java editors to have code completions for Camel Main application.properties files.
---
 .../java/org/apache/camel/maven/GenerateMojo.java  |  43 +++-
 examples/camel-example-main-artemis/pom.xml        |   4 +-
 .../META-INF/spring-configuration-metadata.json    | 254 +++++++++++++++++++--
 .../src/main/resources/application.properties      |   2 -
 4 files changed, 269 insertions(+), 34 deletions(-)

diff --git a/catalog/camel-main-maven-plugin/src/main/java/org/apache/camel/maven/GenerateMojo.java b/catalog/camel-main-maven-plugin/src/main/java/org/apache/camel/maven/GenerateMojo.java
index 158fe84..51b2989 100644
--- a/catalog/camel-main-maven-plugin/src/main/java/org/apache/camel/maven/GenerateMojo.java
+++ b/catalog/camel-main-maven-plugin/src/main/java/org/apache/camel/maven/GenerateMojo.java
@@ -198,9 +198,14 @@ public class GenerateMojo extends AbstractMainMojo {
 
                                     InputStream is = getSourcesClassLoader().getResourceAsStream(path);
                                     if (is != null) {
-                                        String text = IOHelper.loadText(is);
-                                        IOHelper.close(is);
-                                        javaClassSource = (JavaClassSource) Roaster.parse(text);
+                                        try {
+                                            String text = IOHelper.loadText(is);
+                                            IOHelper.close(is);
+                                            javaClassSource = (JavaClassSource) Roaster.parse(text);
+                                        } catch (IOException e) {
+                                            // ignore
+                                            getLog().warn("Cannot load Java source: " + path + " from classpath due " + e.getMessage());
+                                        }
                                     }
                                     getLog().debug("Loaded source code: " + clazz);
                                 }
@@ -215,13 +220,11 @@ public class GenerateMojo extends AbstractMainMojo {
 
                                     // find the setter method and grab the javadoc
                                     String desc = extractJavaDocFromMethod(javaClassSource, m);
-                                    if (desc == null) {
+                                    desc = sanitizeDescription(desc, false);
+                                    if (desc == null || desc.isEmpty()) {
                                         desc = "";
                                     } else {
-                                        desc = sanitizeDescription(desc, false);
-                                        if (!desc.endsWith(".")) {
-                                            desc += ". ";
-                                        }
+                                        desc += ". ";
                                     }
                                     desc += "Auto discovered option from class: " + best.getName() + " to set the option via setter: " + m.getName();
 
@@ -480,7 +483,7 @@ public class GenerateMojo extends AbstractMainMojo {
         }
     }
 
-    private static String extractJavaDocFromMethod(JavaClassSource clazz, Method method) {
+    private String extractJavaDocFromMethod(JavaClassSource clazz, Method method) {
         if (clazz == null) {
             return null;
         }
@@ -488,6 +491,28 @@ public class GenerateMojo extends AbstractMainMojo {
         if (ms != null) {
             return ms.getJavaDoc().getText();
         }
+
+        // maybe its from the super class
+        String st = clazz.getSuperType();
+        if (st != null && !"java.lang.Object".equals(st) && !"Object".equals(st)) {
+            st = clazz.resolveType(st);
+            // find this file cia classloader
+            String path = st.replace('.', '/') + ".java";
+            InputStream is = sourcesClassLoader.getResourceAsStream(path);
+            if (is != null) {
+                String text = null;
+                try {
+                    text = IOHelper.loadText(is);
+                    IOHelper.close(is);
+                    clazz = (JavaClassSource) Roaster.parse(text);
+                    getLog().debug("Loaded source code: " + clazz);
+                    return extractJavaDocFromMethod(clazz, method);
+                } catch (IOException e) {
+                    // ignore
+                    getLog().warn("Cannot load Java source: " + path + " from classpath due " + e.getMessage());
+                }
+            }
+        }
         return null;
     }
 
diff --git a/examples/camel-example-main-artemis/pom.xml b/examples/camel-example-main-artemis/pom.xml
index c918bb2..f1ea8df 100644
--- a/examples/camel-example-main-artemis/pom.xml
+++ b/examples/camel-example-main-artemis/pom.xml
@@ -40,10 +40,12 @@
     <dependencies>
 
         <!-- to have spring boot tooling support in IDEA you need spring-boot JARs on the classpath -->
+<!--
         <dependency>
             <groupId>org.apache.camel</groupId>
             <artifactId>camel-spring-boot-starter</artifactId>
         </dependency>
+-->
 
         <dependency>
             <groupId>org.apache.camel</groupId>
@@ -117,7 +119,7 @@
                     <!-- just include only the jms component -->
                     <!-- <include>jms</include> -->
                     <!-- to use spring caching connection factory instead of the default -->
-                     <mappings>javax.jms.ConnectionFactory=#class:org.springframework.jms.connection.CachingConnectionFactory</mappings>
+                    <!-- <mappings>javax.jms.ConnectionFactory=#class:org.springframework.jms.connection.CachingConnectionFactory</mappings> -->
                 </configuration>
                 <executions>
                     <execution>
diff --git a/examples/camel-example-main-artemis/src/main/resources/META-INF/spring-configuration-metadata.json b/examples/camel-example-main-artemis/src/main/resources/META-INF/spring-configuration-metadata.json
index c771da6..c787468 100644
--- a/examples/camel-example-main-artemis/src/main/resources/META-INF/spring-configuration-metadata.json
+++ b/examples/camel-example-main-artemis/src/main/resources/META-INF/spring-configuration-metadata.json
@@ -784,46 +784,256 @@
       "description": "The connection factory to be use. A connection factory must be configured either on the component or endpoint."
     },
     {
-      "name": "camel.component.jms.connection-factory.cache-consumers",
+      "name": "camel.component.jms.connection-factory.auto-group",
       "type": "java.lang.Boolean",
-      "sourceType": "org.springframework.jms.connection.CachingConnectionFactory",
-      "description": "Specify whether to cache JMS MessageConsumers per JMS Session instance(more specifically: one MessageConsumer per Destination, selector Stringand Session). Note that durable subscribers will only be cached untillogical closing of the Session handle.Default is true. Switch this to false in order to alwaysrecreate MessageConsumers on demand.Auto discovered option from class: org.springframework.jms.connection.CachingConnectionFactory to set the option via setter: setC [...]
+      "sourceType": "org.apache.activemq.artemis.jms.client.ActiveMQJMSConnectionFactory",
+      "description": "Auto discovered option from class: org.apache.activemq.artemis.jms.client.ActiveMQJMSConnectionFactory to set the option via setter: setAutoGroup"
     },
     {
-      "name": "camel.component.jms.connection-factory.cache-producers",
+      "name": "camel.component.jms.connection-factory.block-on-acknowledge",
       "type": "java.lang.Boolean",
-      "sourceType": "org.springframework.jms.connection.CachingConnectionFactory",
-      "description": "Specify whether to cache JMS MessageProducers per JMS Session instance(more specifically: one MessageProducer per Destination and Session).Default is true. Switch this to false in order to alwaysrecreate MessageProducers on demand.Auto discovered option from class: org.springframework.jms.connection.CachingConnectionFactory to set the option via setter: setCacheProducers"
+      "sourceType": "org.apache.activemq.artemis.jms.client.ActiveMQJMSConnectionFactory",
+      "description": "Auto discovered option from class: org.apache.activemq.artemis.jms.client.ActiveMQJMSConnectionFactory to set the option via setter: setBlockOnAcknowledge"
+    },
+    {
+      "name": "camel.component.jms.connection-factory.block-on-durable-send",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.activemq.artemis.jms.client.ActiveMQJMSConnectionFactory",
+      "description": "Auto discovered option from class: org.apache.activemq.artemis.jms.client.ActiveMQJMSConnectionFactory to set the option via setter: setBlockOnDurableSend"
+    },
+    {
+      "name": "camel.component.jms.connection-factory.block-on-non-durable-send",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.activemq.artemis.jms.client.ActiveMQJMSConnectionFactory",
+      "description": "Auto discovered option from class: org.apache.activemq.artemis.jms.client.ActiveMQJMSConnectionFactory to set the option via setter: setBlockOnNonDurableSend"
+    },
+    {
+      "name": "camel.component.jms.connection-factory.cache-destinations",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.activemq.artemis.jms.client.ActiveMQJMSConnectionFactory",
+      "description": "Auto discovered option from class: org.apache.activemq.artemis.jms.client.ActiveMQJMSConnectionFactory to set the option via setter: setCacheDestinations"
+    },
+    {
+      "name": "camel.component.jms.connection-factory.cache-large-messages-client",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.activemq.artemis.jms.client.ActiveMQJMSConnectionFactory",
+      "description": "Auto discovered option from class: org.apache.activemq.artemis.jms.client.ActiveMQJMSConnectionFactory to set the option via setter: setCacheLargeMessagesClient"
+    },
+    {
+      "name": "camel.component.jms.connection-factory.call-failover-timeout",
+      "type": "java.lang.Long",
+      "sourceType": "org.apache.activemq.artemis.jms.client.ActiveMQJMSConnectionFactory",
+      "description": "Auto discovered option from class: org.apache.activemq.artemis.jms.client.ActiveMQJMSConnectionFactory to set the option via setter: setCallFailoverTimeout"
+    },
+    {
+      "name": "camel.component.jms.connection-factory.call-timeout",
+      "type": "java.lang.Long",
+      "sourceType": "org.apache.activemq.artemis.jms.client.ActiveMQJMSConnectionFactory",
+      "description": "Auto discovered option from class: org.apache.activemq.artemis.jms.client.ActiveMQJMSConnectionFactory to set the option via setter: setCallTimeout"
+    },
+    {
+      "name": "camel.component.jms.connection-factory.client-failure-check-period",
+      "type": "java.lang.Long",
+      "sourceType": "org.apache.activemq.artemis.jms.client.ActiveMQJMSConnectionFactory",
+      "description": "Auto discovered option from class: org.apache.activemq.artemis.jms.client.ActiveMQJMSConnectionFactory to set the option via setter: setClientFailureCheckPeriod"
     },
     {
       "name": "camel.component.jms.connection-factory.client-id",
       "type": "java.lang.String",
-      "sourceType": "org.springframework.jms.connection.CachingConnectionFactory",
-      "description": "Auto discovered option from class: org.springframework.jms.connection.CachingConnectionFactory to set the option via setter: setClientId"
+      "sourceType": "org.apache.activemq.artemis.jms.client.ActiveMQJMSConnectionFactory",
+      "description": "Auto discovered option from class: org.apache.activemq.artemis.jms.client.ActiveMQJMSConnectionFactory to set the option via setter: setClientID"
     },
     {
-      "name": "camel.component.jms.connection-factory.exception-listener",
-      "type": "javax.jms.ExceptionListener",
-      "sourceType": "org.springframework.jms.connection.CachingConnectionFactory",
-      "description": "Auto discovered option from class: org.springframework.jms.connection.CachingConnectionFactory to set the option via setter: setExceptionListener"
+      "name": "camel.component.jms.connection-factory.compress-large-message",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.activemq.artemis.jms.client.ActiveMQJMSConnectionFactory",
+      "description": "Auto discovered option from class: org.apache.activemq.artemis.jms.client.ActiveMQJMSConnectionFactory to set the option via setter: setCompressLargeMessage"
+    },
+    {
+      "name": "camel.component.jms.connection-factory.confirmation-window-size",
+      "type": "java.lang.Integer",
+      "sourceType": "org.apache.activemq.artemis.jms.client.ActiveMQJMSConnectionFactory",
+      "description": "Auto discovered option from class: org.apache.activemq.artemis.jms.client.ActiveMQJMSConnectionFactory to set the option via setter: setConfirmationWindowSize"
+    },
+    {
+      "name": "camel.component.jms.connection-factory.connection-load-balancing-policy-class-name",
+      "type": "java.lang.String",
+      "sourceType": "org.apache.activemq.artemis.jms.client.ActiveMQJMSConnectionFactory",
+      "description": "Auto discovered option from class: org.apache.activemq.artemis.jms.client.ActiveMQJMSConnectionFactory to set the option via setter: setConnectionLoadBalancingPolicyClassName"
+    },
+    {
+      "name": "camel.component.jms.connection-factory.connection-ttl",
+      "type": "java.lang.Long",
+      "sourceType": "org.apache.activemq.artemis.jms.client.ActiveMQJMSConnectionFactory",
+      "description": "Auto discovered option from class: org.apache.activemq.artemis.jms.client.ActiveMQJMSConnectionFactory to set the option via setter: setConnectionTTL"
+    },
+    {
+      "name": "camel.component.jms.connection-factory.consumer-max-rate",
+      "type": "java.lang.Integer",
+      "sourceType": "org.apache.activemq.artemis.jms.client.ActiveMQJMSConnectionFactory",
+      "description": "Auto discovered option from class: org.apache.activemq.artemis.jms.client.ActiveMQJMSConnectionFactory to set the option via setter: setConsumerMaxRate"
+    },
+    {
+      "name": "camel.component.jms.connection-factory.consumer-window-size",
+      "type": "java.lang.Integer",
+      "sourceType": "org.apache.activemq.artemis.jms.client.ActiveMQJMSConnectionFactory",
+      "description": "Auto discovered option from class: org.apache.activemq.artemis.jms.client.ActiveMQJMSConnectionFactory to set the option via setter: setConsumerWindowSize"
+    },
+    {
+      "name": "camel.component.jms.connection-factory.deserialization-black-list",
+      "type": "java.lang.String",
+      "sourceType": "org.apache.activemq.artemis.jms.client.ActiveMQJMSConnectionFactory",
+      "description": "Auto discovered option from class: org.apache.activemq.artemis.jms.client.ActiveMQJMSConnectionFactory to set the option via setter: setDeserializationBlackList"
+    },
+    {
+      "name": "camel.component.jms.connection-factory.deserialization-white-list",
+      "type": "java.lang.String",
+      "sourceType": "org.apache.activemq.artemis.jms.client.ActiveMQJMSConnectionFactory",
+      "description": "Auto discovered option from class: org.apache.activemq.artemis.jms.client.ActiveMQJMSConnectionFactory to set the option via setter: setDeserializationWhiteList"
+    },
+    {
+      "name": "camel.component.jms.connection-factory.dups-ok-batch-size",
+      "type": "java.lang.Integer",
+      "sourceType": "org.apache.activemq.artemis.jms.client.ActiveMQJMSConnectionFactory",
+      "description": "Auto discovered option from class: org.apache.activemq.artemis.jms.client.ActiveMQJMSConnectionFactory to set the option via setter: setDupsOKBatchSize"
+    },
+    {
+      "name": "camel.component.jms.connection-factory.enable1x-prefixes",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.activemq.artemis.jms.client.ActiveMQJMSConnectionFactory",
+      "description": "Auto discovered option from class: org.apache.activemq.artemis.jms.client.ActiveMQJMSConnectionFactory to set the option via setter: setEnable1xPrefixes"
+    },
+    {
+      "name": "camel.component.jms.connection-factory.enable-shared-client-id",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.activemq.artemis.jms.client.ActiveMQJMSConnectionFactory",
+      "description": "Auto discovered option from class: org.apache.activemq.artemis.jms.client.ActiveMQJMSConnectionFactory to set the option via setter: setEnableSharedClientID"
+    },
+    {
+      "name": "camel.component.jms.connection-factory.failover-on-initial-connection",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.activemq.artemis.jms.client.ActiveMQJMSConnectionFactory",
+      "description": "Auto discovered option from class: org.apache.activemq.artemis.jms.client.ActiveMQJMSConnectionFactory to set the option via setter: setFailoverOnInitialConnection"
     },
     {
-      "name": "camel.component.jms.connection-factory.reconnect-on-exception",
+      "name": "camel.component.jms.connection-factory.group-id",
+      "type": "java.lang.String",
+      "sourceType": "org.apache.activemq.artemis.jms.client.ActiveMQJMSConnectionFactory",
+      "description": "Auto discovered option from class: org.apache.activemq.artemis.jms.client.ActiveMQJMSConnectionFactory to set the option via setter: setGroupID"
+    },
+    {
+      "name": "camel.component.jms.connection-factory.ignore-jta",
       "type": "java.lang.Boolean",
-      "sourceType": "org.springframework.jms.connection.CachingConnectionFactory",
-      "description": "Auto discovered option from class: org.springframework.jms.connection.CachingConnectionFactory to set the option via setter: setReconnectOnException"
+      "sourceType": "org.apache.activemq.artemis.jms.client.ActiveMQJMSConnectionFactory",
+      "description": "Auto discovered option from class: org.apache.activemq.artemis.jms.client.ActiveMQJMSConnectionFactory to set the option via setter: setIgnoreJTA"
+    },
+    {
+      "name": "camel.component.jms.connection-factory.incoming-interceptor-list",
+      "type": "java.lang.String",
+      "sourceType": "org.apache.activemq.artemis.jms.client.ActiveMQJMSConnectionFactory",
+      "description": "Auto discovered option from class: org.apache.activemq.artemis.jms.client.ActiveMQJMSConnectionFactory to set the option via setter: setIncomingInterceptorList"
     },
     {
-      "name": "camel.component.jms.connection-factory.session-cache-size",
+      "name": "camel.component.jms.connection-factory.initial-connect-attempts",
       "type": "java.lang.Integer",
-      "sourceType": "org.springframework.jms.connection.CachingConnectionFactory",
-      "description": "Specify the desired size for the JMS Session cache (per JMS Session type).This cache size is the maximum limit for the number of cached Sessionsper session acknowledgement type (auto, client, dups_ok, transacted).As a consequence, the actual number of cached Sessions may be up tofour times as high as the specified value - in the unlikely caseof mixing and matching different acknowledgement types.Default is 1: caching a single Session, (re-)creating further ones onde [...]
+      "sourceType": "org.apache.activemq.artemis.jms.client.ActiveMQJMSConnectionFactory",
+      "description": "Auto discovered option from class: org.apache.activemq.artemis.jms.client.ActiveMQJMSConnectionFactory to set the option via setter: setInitialConnectAttempts"
     },
     {
-      "name": "camel.component.jms.connection-factory.target-connection-factory",
-      "type": "javax.jms.ConnectionFactory",
-      "sourceType": "org.springframework.jms.connection.CachingConnectionFactory",
-      "description": "Auto discovered option from class: org.springframework.jms.connection.CachingConnectionFactory to set the option via setter: setTargetConnectionFactory"
+      "name": "camel.component.jms.connection-factory.initial-message-packet-size",
+      "type": "java.lang.Integer",
+      "sourceType": "org.apache.activemq.artemis.jms.client.ActiveMQJMSConnectionFactory",
+      "description": "Auto discovered option from class: org.apache.activemq.artemis.jms.client.ActiveMQJMSConnectionFactory to set the option via setter: setInitialMessagePacketSize"
+    },
+    {
+      "name": "camel.component.jms.connection-factory.max-retry-interval",
+      "type": "java.lang.Long",
+      "sourceType": "org.apache.activemq.artemis.jms.client.ActiveMQJMSConnectionFactory",
+      "description": "Auto discovered option from class: org.apache.activemq.artemis.jms.client.ActiveMQJMSConnectionFactory to set the option via setter: setMaxRetryInterval"
+    },
+    {
+      "name": "camel.component.jms.connection-factory.min-large-message-size",
+      "type": "java.lang.Integer",
+      "sourceType": "org.apache.activemq.artemis.jms.client.ActiveMQJMSConnectionFactory",
+      "description": "Auto discovered option from class: org.apache.activemq.artemis.jms.client.ActiveMQJMSConnectionFactory to set the option via setter: setMinLargeMessageSize"
+    },
+    {
+      "name": "camel.component.jms.connection-factory.outgoing-interceptor-list",
+      "type": "java.lang.String",
+      "sourceType": "org.apache.activemq.artemis.jms.client.ActiveMQJMSConnectionFactory",
+      "description": "Auto discovered option from class: org.apache.activemq.artemis.jms.client.ActiveMQJMSConnectionFactory to set the option via setter: setOutgoingInterceptorList"
+    },
+    {
+      "name": "camel.component.jms.connection-factory.pre-acknowledge",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.activemq.artemis.jms.client.ActiveMQJMSConnectionFactory",
+      "description": "Auto discovered option from class: org.apache.activemq.artemis.jms.client.ActiveMQJMSConnectionFactory to set the option via setter: setPreAcknowledge"
+    },
+    {
+      "name": "camel.component.jms.connection-factory.producer-max-rate",
+      "type": "java.lang.Integer",
+      "sourceType": "org.apache.activemq.artemis.jms.client.ActiveMQJMSConnectionFactory",
+      "description": "Auto discovered option from class: org.apache.activemq.artemis.jms.client.ActiveMQJMSConnectionFactory to set the option via setter: setProducerMaxRate"
+    },
+    {
+      "name": "camel.component.jms.connection-factory.producer-window-size",
+      "type": "java.lang.Integer",
+      "sourceType": "org.apache.activemq.artemis.jms.client.ActiveMQJMSConnectionFactory",
+      "description": "Auto discovered option from class: org.apache.activemq.artemis.jms.client.ActiveMQJMSConnectionFactory to set the option via setter: setProducerWindowSize"
+    },
+    {
+      "name": "camel.component.jms.connection-factory.protocol-manager-factory-str",
+      "type": "java.lang.String",
+      "sourceType": "org.apache.activemq.artemis.jms.client.ActiveMQJMSConnectionFactory",
+      "description": "Auto discovered option from class: org.apache.activemq.artemis.jms.client.ActiveMQJMSConnectionFactory to set the option via setter: setProtocolManagerFactoryStr"
+    },
+    {
+      "name": "camel.component.jms.connection-factory.reconnect-attempts",
+      "type": "java.lang.Integer",
+      "sourceType": "org.apache.activemq.artemis.jms.client.ActiveMQJMSConnectionFactory",
+      "description": "Auto discovered option from class: org.apache.activemq.artemis.jms.client.ActiveMQJMSConnectionFactory to set the option via setter: setReconnectAttempts"
+    },
+    {
+      "name": "camel.component.jms.connection-factory.retry-interval",
+      "type": "java.lang.Long",
+      "sourceType": "org.apache.activemq.artemis.jms.client.ActiveMQJMSConnectionFactory",
+      "description": "Auto discovered option from class: org.apache.activemq.artemis.jms.client.ActiveMQJMSConnectionFactory to set the option via setter: setRetryInterval"
+    },
+    {
+      "name": "camel.component.jms.connection-factory.retry-interval-multiplier",
+      "type": "double",
+      "sourceType": "org.apache.activemq.artemis.jms.client.ActiveMQJMSConnectionFactory",
+      "description": "Auto discovered option from class: org.apache.activemq.artemis.jms.client.ActiveMQJMSConnectionFactory to set the option via setter: setRetryIntervalMultiplier"
+    },
+    {
+      "name": "camel.component.jms.connection-factory.scheduled-thread-pool-max-size",
+      "type": "java.lang.Integer",
+      "sourceType": "org.apache.activemq.artemis.jms.client.ActiveMQJMSConnectionFactory",
+      "description": "Auto discovered option from class: org.apache.activemq.artemis.jms.client.ActiveMQJMSConnectionFactory to set the option via setter: setScheduledThreadPoolMaxSize"
+    },
+    {
+      "name": "camel.component.jms.connection-factory.thread-pool-max-size",
+      "type": "java.lang.Integer",
+      "sourceType": "org.apache.activemq.artemis.jms.client.ActiveMQJMSConnectionFactory",
+      "description": "Auto discovered option from class: org.apache.activemq.artemis.jms.client.ActiveMQJMSConnectionFactory to set the option via setter: setThreadPoolMaxSize"
+    },
+    {
+      "name": "camel.component.jms.connection-factory.transaction-batch-size",
+      "type": "java.lang.Integer",
+      "sourceType": "org.apache.activemq.artemis.jms.client.ActiveMQJMSConnectionFactory",
+      "description": "Auto discovered option from class: org.apache.activemq.artemis.jms.client.ActiveMQJMSConnectionFactory to set the option via setter: setTransactionBatchSize"
+    },
+    {
+      "name": "camel.component.jms.connection-factory.use-global-pools",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.activemq.artemis.jms.client.ActiveMQJMSConnectionFactory",
+      "description": "Auto discovered option from class: org.apache.activemq.artemis.jms.client.ActiveMQJMSConnectionFactory to set the option via setter: setUseGlobalPools"
+    },
+    {
+      "name": "camel.component.jms.connection-factory.use-topology-for-load-balancing",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.activemq.artemis.jms.client.ActiveMQJMSConnectionFactory",
+      "description": "Auto discovered option from class: org.apache.activemq.artemis.jms.client.ActiveMQJMSConnectionFactory to set the option via setter: setUseTopologyForLoadBalancing"
     },
     {
       "name": "camel.component.jms.username",
diff --git a/examples/camel-example-main-artemis/src/main/resources/application.properties b/examples/camel-example-main-artemis/src/main/resources/application.properties
index 14ea669..309db5c 100644
--- a/examples/camel-example-main-artemis/src/main/resources/application.properties
+++ b/examples/camel-example-main-artemis/src/main/resources/application.properties
@@ -29,8 +29,6 @@ camel.main.jmx-enabled = false
 # which contains some additional autowires so we only need here to specify the URL to the broker
 camel.component.jms.connection-factory.brokerURL=tcp://localhost:61616
 
-camel.component.jms.connection-factory.cl
-
 # in case you want to use Spring's CachingConnectionFactory, you can configure it as follows:
 # (then you don't need the camel-main-maven-plugin, as you can explicit configure it all here)
 ### camel.component.jms.connectionFactory=#class:org.springframework.jms.connection.CachingConnectionFactory