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/08/23 07:30:53 UTC

[camel] 01/06: CAMEL-13870: Fast property configuration of Camel endpoints. Work in progress.

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

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

commit cf5b088c02f774e7fa73d2c0421ccdff4da30f0a
Author: Claus Ibsen <cl...@gmail.com>
AuthorDate: Fri Aug 23 05:09:26 2019 +0200

    CAMEL-13870: Fast property configuration of Camel endpoints. Work in progress.
---
 components/camel-milo/src/main/docs/milo-client-component.adoc |  2 +-
 docs/components/modules/ROOT/pages/log-component.adoc          |  3 ++-
 docs/components/modules/ROOT/pages/milo-client-component.adoc  |  4 ++--
 docs/components/modules/ROOT/pages/rabbitmq-component.adoc     |  2 +-
 docs/components/modules/ROOT/pages/spring-boot.adoc            |  4 +++-
 .../java/org/apache/camel/maven/DocumentGeneratorMojo.java     | 10 +++++-----
 6 files changed, 14 insertions(+), 11 deletions(-)

diff --git a/components/camel-milo/src/main/docs/milo-client-component.adoc b/components/camel-milo/src/main/docs/milo-client-component.adoc
index f0ddf32..8cfe8c1 100644
--- a/components/camel-milo/src/main/docs/milo-client-component.adoc
+++ b/components/camel-milo/src/main/docs/milo-client-component.adoc
@@ -171,7 +171,7 @@ The component supports 25 options, which are listed below.
 | *camel.component.milo-client.default-configuration.key-password* | The key password |  | String
 | *camel.component.milo-client.default-configuration.key-store-password* | The keystore password |  | String
 | *camel.component.milo-client.default-configuration.key-store-type* | The key store type |  | String
-| *camel.component.milo-client.default-configuration.key-store-url* | The URL where the key should be loaded from |  | URL
+| *camel.component.milo-client.default-configuration.key-store-url* | The URL where the key should be loaded from |  | String
 | *camel.component.milo-client.default-configuration.max-pending-publish-requests* | The maximum number of pending publish requests |  | Long
 | *camel.component.milo-client.default-configuration.max-response-message-size* | The maximum number of bytes a response message may have |  | Long
 | *camel.component.milo-client.default-configuration.override-host* | Override the server reported endpoint host with the host from the endpoint URI. | false | Boolean
diff --git a/docs/components/modules/ROOT/pages/log-component.adoc b/docs/components/modules/ROOT/pages/log-component.adoc
index 23a7668..3682f2f 100644
--- a/docs/components/modules/ROOT/pages/log-component.adoc
+++ b/docs/components/modules/ROOT/pages/log-component.adoc
@@ -93,7 +93,7 @@ with the following path and query parameters:
 |===
 
 
-=== Query Parameters (27 parameters):
+=== Query Parameters (28 parameters):
 
 
 [width="100%",cols="2,5,^1,2",options="header"]
@@ -108,6 +108,7 @@ with the following path and query parameters:
 | *logMask* (producer) | If true, mask sensitive information like password or passphrase in the log. |  | Boolean
 | *marker* (producer) | An optional Marker name to use. |  | String
 | *basicPropertyBinding* (advanced) | Whether the endpoint should use basic property binding (Camel 2.x) or the newer property binding with additional capabilities | false | boolean
+| *exchangeFormatter* (advanced) | To use a custom exchange formatter |  | ExchangeFormatter
 | *synchronous* (advanced) | Sets whether synchronous processing should be strictly used, or Camel is allowed to use asynchronous processing (if supported). | false | boolean
 | *maxChars* (formatting) | Limits the number of characters logged per line. | 10000 | int
 | *multiline* (formatting) | If enabled then each information is outputted on a newline. | false | boolean
diff --git a/docs/components/modules/ROOT/pages/milo-client-component.adoc b/docs/components/modules/ROOT/pages/milo-client-component.adoc
index 354b964..8cfe8c1 100644
--- a/docs/components/modules/ROOT/pages/milo-client-component.adoc
+++ b/docs/components/modules/ROOT/pages/milo-client-component.adoc
@@ -124,7 +124,7 @@ with the following path and query parameters:
 | *keyPassword* (client) | The key password |  | String
 | *keyStorePassword* (client) | The keystore password |  | String
 | *keyStoreType* (client) | The key store type |  | String
-| *keyStoreUrl* (client) | The URL where the key should be loaded from |  | URL
+| *keyStoreUrl* (client) | The URL where the key should be loaded from |  | String
 | *maxPendingPublishRequests* (client) | The maximum number of pending publish requests |  | Long
 | *maxResponseMessageSize* (client) | The maximum number of bytes a response message may have |  | Long
 | *overrideHost* (client) | Override the server reported endpoint host with the host from the endpoint URI. | false | boolean
@@ -171,7 +171,7 @@ The component supports 25 options, which are listed below.
 | *camel.component.milo-client.default-configuration.key-password* | The key password |  | String
 | *camel.component.milo-client.default-configuration.key-store-password* | The keystore password |  | String
 | *camel.component.milo-client.default-configuration.key-store-type* | The key store type |  | String
-| *camel.component.milo-client.default-configuration.key-store-url* | The URL where the key should be loaded from |  | URL
+| *camel.component.milo-client.default-configuration.key-store-url* | The URL where the key should be loaded from |  | String
 | *camel.component.milo-client.default-configuration.max-pending-publish-requests* | The maximum number of pending publish requests |  | Long
 | *camel.component.milo-client.default-configuration.max-response-message-size* | The maximum number of bytes a response message may have |  | Long
 | *camel.component.milo-client.default-configuration.override-host* | Override the server reported endpoint host with the host from the endpoint URI. | false | Boolean
diff --git a/docs/components/modules/ROOT/pages/rabbitmq-component.adoc b/docs/components/modules/ROOT/pages/rabbitmq-component.adoc
index 36f18ff..d5a5310 100644
--- a/docs/components/modules/ROOT/pages/rabbitmq-component.adoc
+++ b/docs/components/modules/ROOT/pages/rabbitmq-component.adoc
@@ -133,7 +133,7 @@ with the following path and query parameters:
 [width="100%",cols="2,5,^1,2",options="header"]
 |===
 | Name | Description | Default | Type
-| *addresses* (common) | If this option is set, camel-rabbitmq will try to create connection based on the setting of option addresses. The addresses value is a string which looks like server1:12345, server2:12345 |  | Address[]
+| *addresses* (common) | If this option is set, camel-rabbitmq will try to create connection based on the setting of option addresses. The addresses value is a string which looks like server1:12345, server2:12345 |  | String
 | *autoDelete* (common) | If it is true, the exchange will be deleted when it is no longer in use | true | boolean
 | *automaticRecoveryEnabled* (common) | Enables connection automatic recovery (uses connection implementation that performs automatic recovery when existing connection has failures) | true | Boolean
 | *connectionFactory* (common) | To use a custom RabbitMQ connection factory. When this option is set, all connection options (connectionTimeout, requestedChannelMax...) set on URI are not used |  | ConnectionFactory
diff --git a/docs/components/modules/ROOT/pages/spring-boot.adoc b/docs/components/modules/ROOT/pages/spring-boot.adoc
index 155da7f..6715705 100644
--- a/docs/components/modules/ROOT/pages/spring-boot.adoc
+++ b/docs/components/modules/ROOT/pages/spring-boot.adoc
@@ -89,7 +89,7 @@ When using Spring Boot make sure to use the following Maven dependency to have s
 ----
 
 
-The component supports 127 options, which are listed below.
+The component supports 129 options, which are listed below.
 
 
 
@@ -146,6 +146,8 @@ The component supports 127 options, which are listed below.
 | *camel.springboot.allow-use-original-message* | Sets whether to allow access to the original message from Camel's error handler, or from org.apache.camel.spi.UnitOfWork.getOriginalInMessage(). Turning this off can optimize performance, as defensive copy of the original message is not needed. Default is false. | false | Boolean
 | *camel.springboot.auto-startup* | Sets whether the object should automatically start when Camel starts. Important: Currently only routes can be disabled, as CamelContext's are always started. Note: When setting auto startup false on CamelContext then that takes precedence and no routes is started. You would need to start CamelContext explicit using the org.apache.camel.CamelContext.start() method, to start the context, and then you would need to start the routes manually using Camelcon [...]
 | *camel.springboot.backlog-tracing* | Sets whether backlog tracing is enabled or not. Default is false. | false | Boolean
+| *camel.springboot.bean-introspection-extended-statistics* | Sets whether bean introspection uses extended statistics. The default is false. | false | Boolean
+| *camel.springboot.bean-introspection-logging-level* | Sets the logging level used by bean introspection, logging activity of its usage. The default is TRACE. |  | LoggingLevel
 | *camel.springboot.consumer-template-cache-size* | Consumer template endpoints cache size. | 1000 | Integer
 | *camel.springboot.duration-max-idle-seconds* | To specify for how long time in seconds Camel can be idle before automatic terminating the JVM. You can use this to run Spring Boot for a short while. | 0 | Integer
 | *camel.springboot.duration-max-messages* | To specify how many messages to process by Camel before automatic terminating the JVM. You can use this to run Spring Boot for a short while. | 0 | Integer
diff --git a/tooling/maven/camel-api-component-maven-plugin/src/main/java/org/apache/camel/maven/DocumentGeneratorMojo.java b/tooling/maven/camel-api-component-maven-plugin/src/main/java/org/apache/camel/maven/DocumentGeneratorMojo.java
index 2f17312..427c4eb 100644
--- a/tooling/maven/camel-api-component-maven-plugin/src/main/java/org/apache/camel/maven/DocumentGeneratorMojo.java
+++ b/tooling/maven/camel-api-component-maven-plugin/src/main/java/org/apache/camel/maven/DocumentGeneratorMojo.java
@@ -32,7 +32,8 @@ import java.util.Set;
 import java.util.TreeMap;
 import java.util.TreeSet;
 
-import org.apache.camel.support.IntrospectionSupport;
+import org.apache.camel.impl.engine.DefaultBeanIntrospection;
+import org.apache.camel.spi.BeanIntrospection;
 import org.apache.camel.support.component.ApiCollection;
 import org.apache.camel.support.component.ApiMethod;
 import org.apache.camel.support.component.ApiMethodHelper;
@@ -41,7 +42,6 @@ import org.apache.commons.lang.ClassUtils;
 import org.apache.maven.doxia.siterenderer.RenderingContext;
 import org.apache.maven.doxia.siterenderer.sink.SiteRendererSink;
 import org.apache.maven.plugin.MojoExecutionException;
-import org.apache.maven.plugin.MojoFailureException;
 import org.apache.maven.plugins.annotations.LifecyclePhase;
 import org.apache.maven.plugins.annotations.Mojo;
 import org.apache.maven.plugins.annotations.Parameter;
@@ -118,7 +118,7 @@ public class DocumentGeneratorMojo extends AbstractGeneratorMojo implements Mave
         final Set<String> apiNames = new TreeSet<String>(collection.getApiNames());
         context.put("apiNames", apiNames);
         String suffix;
-        if (apiNames.size() == 1 && ((Set) apiNames).contains("")) {
+        if (apiNames.size() == 1 && apiNames.contains("")) {
             suffix = "://endpoint?[options]";
         } else {
             suffix = "://endpoint-prefix/endpoint?[options]";
@@ -170,8 +170,8 @@ public class DocumentGeneratorMojo extends AbstractGeneratorMojo implements Mave
         // so getDeclaredFields() won't work, like it does for generated endpoint config classes!!!
         final Map<String, String> configFields = new TreeMap<>();
         do {
-            IntrospectionSupport.ClassInfo classInfo = IntrospectionSupport.cacheClass(configClass);
-            for (IntrospectionSupport.MethodInfo method : classInfo.methods) {
+            BeanIntrospection.ClassInfo classInfo = new DefaultBeanIntrospection().cacheClass(configClass);
+            for (BeanIntrospection.MethodInfo method : classInfo.methods) {
                 if (method.isSetter) {
                     configFields.put(method.getterOrSetterShorthandName, getCanonicalName(method.method.getParameterTypes()[0]));
                 }