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 2017/06/02 10:55:52 UTC

[1/4] camel git commit: Optimise - No need to evalulate bean parameter arguments if the method has no parameters.

Repository: camel
Updated Branches:
  refs/heads/master e5cbba043 -> 7a8314212


Optimise - No need to evalulate bean parameter arguments if the method has no parameters.


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

Branch: refs/heads/master
Commit: 40db0a7a6aa4a3f5eef19f04982d60b85787f657
Parents: e5cbba0
Author: Claus Ibsen <da...@apache.org>
Authored: Fri Jun 2 11:00:17 2017 +0200
Committer: Claus Ibsen <da...@apache.org>
Committed: Fri Jun 2 11:00:17 2017 +0200

----------------------------------------------------------------------
 .../java/org/apache/camel/component/bean/BeanInfo.java   |  4 ++--
 .../java/org/apache/camel/component/bean/MethodInfo.java | 11 +++++++++--
 2 files changed, 11 insertions(+), 4 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/camel/blob/40db0a7a/camel-core/src/main/java/org/apache/camel/component/bean/BeanInfo.java
----------------------------------------------------------------------
diff --git a/camel-core/src/main/java/org/apache/camel/component/bean/BeanInfo.java b/camel-core/src/main/java/org/apache/camel/component/bean/BeanInfo.java
index 43ddb9b..00f6557 100644
--- a/camel-core/src/main/java/org/apache/camel/component/bean/BeanInfo.java
+++ b/camel-core/src/main/java/org/apache/camel/component/bean/BeanInfo.java
@@ -198,7 +198,7 @@ public class BeanInfo {
             for (List<MethodInfo> infos : operations.values()) {
                 for (MethodInfo info : infos) {
                     if (explicitMethod.equals(info.getMethod())) {
-                        return info.createMethodInvocation(pojo, exchange);
+                        return info.createMethodInvocation(pojo, info.hasParameters(), exchange);
                     }
                 }
             }
@@ -293,7 +293,7 @@ public class BeanInfo {
         }
         if (methodInfo != null) {
             LOG.trace("Chosen method to invoke: {} on bean: {}", methodInfo, pojo);
-            return methodInfo.createMethodInvocation(pojo, exchange);
+            return methodInfo.createMethodInvocation(pojo, methodInfo.hasParameters(), exchange);
         }
 
         LOG.debug("Cannot find suitable method to invoke on bean: {}", pojo);

http://git-wip-us.apache.org/repos/asf/camel/blob/40db0a7a/camel-core/src/main/java/org/apache/camel/component/bean/MethodInfo.java
----------------------------------------------------------------------
diff --git a/camel-core/src/main/java/org/apache/camel/component/bean/MethodInfo.java b/camel-core/src/main/java/org/apache/camel/component/bean/MethodInfo.java
index f3b7a4e..fa04efc 100644
--- a/camel-core/src/main/java/org/apache/camel/component/bean/MethodInfo.java
+++ b/camel-core/src/main/java/org/apache/camel/component/bean/MethodInfo.java
@@ -24,6 +24,7 @@ import java.lang.reflect.Method;
 import java.lang.reflect.Modifier;
 import java.util.ArrayList;
 import java.util.Arrays;
+import java.util.Collections;
 import java.util.HashMap;
 import java.util.Iterator;
 import java.util.List;
@@ -243,8 +244,14 @@ public class MethodInfo {
         return method.toString();
     }
 
-    public MethodInvocation createMethodInvocation(final Object pojo, final Exchange exchange) {
-        final Object[] arguments = parametersExpression.evaluate(exchange, Object[].class);
+    public MethodInvocation createMethodInvocation(final Object pojo, boolean hasParameters, final Exchange exchange) {
+        final Object[] arguments;
+        if (hasParameters) {
+             arguments = parametersExpression.evaluate(exchange, Object[].class);
+        } else {
+            arguments = null;
+        }
+
         return new MethodInvocation() {
             public Method getMethod() {
                 return method;


[3/4] camel git commit: Optimise - Bean component - Dont remove non existing header

Posted by da...@apache.org.
Optimise - Bean component - Dont remove non existing header


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

Branch: refs/heads/master
Commit: b646977baa6421c55e2019fbdc1e2759beef0bae
Parents: cec467f
Author: Claus Ibsen <da...@apache.org>
Authored: Fri Jun 2 11:28:34 2017 +0200
Committer: Claus Ibsen <da...@apache.org>
Committed: Fri Jun 2 11:28:34 2017 +0200

----------------------------------------------------------------------
 .../main/java/org/apache/camel/component/bean/MethodInfo.java  | 6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/camel/blob/b646977b/camel-core/src/main/java/org/apache/camel/component/bean/MethodInfo.java
----------------------------------------------------------------------
diff --git a/camel-core/src/main/java/org/apache/camel/component/bean/MethodInfo.java b/camel-core/src/main/java/org/apache/camel/component/bean/MethodInfo.java
index f2aedb9..e384247 100644
--- a/camel-core/src/main/java/org/apache/camel/component/bean/MethodInfo.java
+++ b/camel-core/src/main/java/org/apache/camel/component/bean/MethodInfo.java
@@ -649,7 +649,7 @@ public class MethodInfo {
 
             // if there was an explicit method name to invoke, then we should support using
             // any provided parameter values in the method name
-            String methodName = exchange.getIn().getHeader(Exchange.BEAN_METHOD_NAME, "", String.class);
+            String methodName = exchange.getIn().getHeader(Exchange.BEAN_METHOD_NAME, String.class);
             // the parameter values is between the parenthesis
             String methodParameters = StringHelper.betweenOuterPair(methodName, '(', ')');
             // use an iterator to walk the parameter values
@@ -668,7 +668,9 @@ public class MethodInfo {
             if (multiParameterArray) {
                 exchange.getIn().removeHeader(Exchange.BEAN_MULTI_PARAMETER_ARRAY);
             }
-            exchange.getIn().removeHeader(Exchange.BEAN_METHOD_NAME);
+            if (methodName != null) {
+                exchange.getIn().removeHeader(Exchange.BEAN_METHOD_NAME);
+            }
 
             Object[] answer = evaluateParameterExpressions(exchange, body, multiParameterArray, it);
             return (T) answer;


[4/4] camel git commit: camel-spring-boot - Allow to configure if breadcrumb is in use or not.

Posted by da...@apache.org.
camel-spring-boot - Allow to configure if breadcrumb is in use or not.


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

Branch: refs/heads/master
Commit: 7a8314212d4a273685e93ae401b805a42736e46f
Parents: b646977
Author: Claus Ibsen <da...@apache.org>
Authored: Fri Jun 2 11:39:15 2017 +0200
Committer: Claus Ibsen <da...@apache.org>
Committed: Fri Jun 2 11:39:15 2017 +0200

----------------------------------------------------------------------
 .../camel/spring/boot/CamelAutoConfiguration.java      |  1 +
 .../spring/boot/CamelConfigurationProperties.java      | 13 +++++++++++++
 2 files changed, 14 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/camel/blob/7a831421/components/camel-spring-boot/src/main/java/org/apache/camel/spring/boot/CamelAutoConfiguration.java
----------------------------------------------------------------------
diff --git a/components/camel-spring-boot/src/main/java/org/apache/camel/spring/boot/CamelAutoConfiguration.java b/components/camel-spring-boot/src/main/java/org/apache/camel/spring/boot/CamelAutoConfiguration.java
index c05b66d..6b8ab26 100644
--- a/components/camel-spring-boot/src/main/java/org/apache/camel/spring/boot/CamelAutoConfiguration.java
+++ b/components/camel-spring-boot/src/main/java/org/apache/camel/spring/boot/CamelAutoConfiguration.java
@@ -156,6 +156,7 @@ public class CamelAutoConfiguration {
         camelContext.setHandleFault(config.isHandleFault());
         camelContext.setAutoStartup(config.isAutoStartup());
         camelContext.setAllowUseOriginalMessage(config.isAllowUseOriginalMessage());
+        camelContext.setUseBreadcrumb(config.isUseBreadcrumb());
 
         if (camelContext.getManagementStrategy().getManagementAgent() != null) {
             camelContext.getManagementStrategy().getManagementAgent().setEndpointRuntimeStatisticsEnabled(config.isEndpointRuntimeStatisticsEnabled());

http://git-wip-us.apache.org/repos/asf/camel/blob/7a831421/components/camel-spring-boot/src/main/java/org/apache/camel/spring/boot/CamelConfigurationProperties.java
----------------------------------------------------------------------
diff --git a/components/camel-spring-boot/src/main/java/org/apache/camel/spring/boot/CamelConfigurationProperties.java b/components/camel-spring-boot/src/main/java/org/apache/camel/spring/boot/CamelConfigurationProperties.java
index 6d6aa29..6393682 100644
--- a/components/camel-spring-boot/src/main/java/org/apache/camel/spring/boot/CamelConfigurationProperties.java
+++ b/components/camel-spring-boot/src/main/java/org/apache/camel/spring/boot/CamelConfigurationProperties.java
@@ -301,6 +301,11 @@ public class CamelConfigurationProperties {
     private boolean endpointRuntimeStatisticsEnabled;
 
     /**
+     * Set whether breadcrumb is enabled.
+     */
+    private boolean useBreadcrumb = true;
+
+    /**
      * Sets the JMX statistics level
      * The level can be set to Extended to gather additional information
      *
@@ -692,6 +697,14 @@ public class CamelConfigurationProperties {
         this.endpointRuntimeStatisticsEnabled = endpointRuntimeStatisticsEnabled;
     }
 
+    public boolean isUseBreadcrumb() {
+        return useBreadcrumb;
+    }
+
+    public void setUseBreadcrumb(boolean useBreadcrumb) {
+        this.useBreadcrumb = useBreadcrumb;
+    }
+
     public ManagementStatisticsLevel getJmxManagementStatisticsLevel() {
         return jmxManagementStatisticsLevel;
     }


[2/4] camel git commit: Optimise - Bean component - Dont set multi parameter header if not really needed. Also it should be deprecated as its some old cruft.

Posted by da...@apache.org.
Optimise - Bean component - Dont set multi parameter header if not really needed. Also it should be deprecated as its some old cruft.


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

Branch: refs/heads/master
Commit: cec467ff7c512e9b04e05448273aa6938dc406a8
Parents: 40db0a7
Author: Claus Ibsen <da...@apache.org>
Authored: Fri Jun 2 11:14:08 2017 +0200
Committer: Claus Ibsen <da...@apache.org>
Committed: Fri Jun 2 11:16:09 2017 +0200

----------------------------------------------------------------------
 .../src/main/java/org/apache/camel/Exchange.java   |  1 +
 .../component/bean/AbstractBeanProcessor.java      | 16 ++++++++++------
 .../apache/camel/component/bean/MethodInfo.java    | 17 ++++++++---------
 3 files changed, 19 insertions(+), 15 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/camel/blob/cec467ff/camel-core/src/main/java/org/apache/camel/Exchange.java
----------------------------------------------------------------------
diff --git a/camel-core/src/main/java/org/apache/camel/Exchange.java b/camel-core/src/main/java/org/apache/camel/Exchange.java
index 87fcf13..56e0780 100644
--- a/camel-core/src/main/java/org/apache/camel/Exchange.java
+++ b/camel-core/src/main/java/org/apache/camel/Exchange.java
@@ -89,6 +89,7 @@ public interface Exchange {
     String BATCH_SIZE                 = "CamelBatchSize";
     String BATCH_COMPLETE             = "CamelBatchComplete";
     String BEAN_METHOD_NAME           = "CamelBeanMethodName";
+    @Deprecated
     String BEAN_MULTI_PARAMETER_ARRAY = "CamelBeanMultiParameterArray";
     String BINDING                    = "CamelBinding";
     // do not prefix with Camel and use lower-case starting letter as its a shared key

http://git-wip-us.apache.org/repos/asf/camel/blob/cec467ff/camel-core/src/main/java/org/apache/camel/component/bean/AbstractBeanProcessor.java
----------------------------------------------------------------------
diff --git a/camel-core/src/main/java/org/apache/camel/component/bean/AbstractBeanProcessor.java b/camel-core/src/main/java/org/apache/camel/component/bean/AbstractBeanProcessor.java
index 858253e..88d78c7 100644
--- a/camel-core/src/main/java/org/apache/camel/component/bean/AbstractBeanProcessor.java
+++ b/camel-core/src/main/java/org/apache/camel/component/bean/AbstractBeanProcessor.java
@@ -146,15 +146,15 @@ public abstract class AbstractBeanProcessor implements AsyncProcessor {
         }
 
         // set temporary header which is a hint for the bean info that introspect the bean
-        if (in.getHeader(Exchange.BEAN_MULTI_PARAMETER_ARRAY) == null) {
-            in.setHeader(Exchange.BEAN_MULTI_PARAMETER_ARRAY, isMultiParameterArray());
+        if (isMultiParameterArray()) {
+            in.setHeader(Exchange.BEAN_MULTI_PARAMETER_ARRAY, Boolean.TRUE);
         }
-
-        MethodInvocation invocation;
         // set explicit method name to invoke as a header, which is how BeanInfo can detect it
         if (explicitMethodName != null) {
             in.setHeader(Exchange.BEAN_METHOD_NAME, explicitMethodName);
         }
+
+        MethodInvocation invocation;
         try {
             invocation = beanInfo.createInvocation(bean, exchange);
         } catch (Throwable e) {
@@ -163,8 +163,12 @@ public abstract class AbstractBeanProcessor implements AsyncProcessor {
             return true;
         } finally {
             // must remove headers as they were provisional
-            in.removeHeader(Exchange.BEAN_MULTI_PARAMETER_ARRAY);
-            in.removeHeader(Exchange.BEAN_METHOD_NAME);
+            if (isMultiParameterArray()) {
+                in.removeHeader(Exchange.BEAN_MULTI_PARAMETER_ARRAY);
+            }
+            if (explicitMethodName != null) {
+                in.removeHeader(Exchange.BEAN_METHOD_NAME);
+            }
         }
 
         if (invocation == null) {

http://git-wip-us.apache.org/repos/asf/camel/blob/cec467ff/camel-core/src/main/java/org/apache/camel/component/bean/MethodInfo.java
----------------------------------------------------------------------
diff --git a/camel-core/src/main/java/org/apache/camel/component/bean/MethodInfo.java b/camel-core/src/main/java/org/apache/camel/component/bean/MethodInfo.java
index fa04efc..f2aedb9 100644
--- a/camel-core/src/main/java/org/apache/camel/component/bean/MethodInfo.java
+++ b/camel-core/src/main/java/org/apache/camel/component/bean/MethodInfo.java
@@ -639,14 +639,11 @@ public class MethodInfo {
         @SuppressWarnings("unchecked")
         public <T> T evaluate(Exchange exchange, Class<T> type) {
             Object body = exchange.getIn().getBody();
-            boolean multiParameterArray = false;
-            if (exchange.getIn().getHeader(Exchange.BEAN_MULTI_PARAMETER_ARRAY) != null) {
-                multiParameterArray = exchange.getIn().getHeader(Exchange.BEAN_MULTI_PARAMETER_ARRAY, Boolean.class);
-                if (multiParameterArray) {
-                    // Just change the message body to an Object array
-                    if (!(body instanceof Object[])) {
-                        body = exchange.getIn().getBody(Object[].class);
-                    }
+            boolean multiParameterArray = exchange.getIn().getHeader(Exchange.BEAN_MULTI_PARAMETER_ARRAY, false, boolean.class);
+            if (multiParameterArray) {
+                // Just change the message body to an Object array
+                if (!(body instanceof Object[])) {
+                    body = exchange.getIn().getBody(Object[].class);
                 }
             }
 
@@ -668,7 +665,9 @@ public class MethodInfo {
             // we need to do this before the expressions gets evaluated as it may contain
             // a @Bean expression which would by mistake read these headers. So the headers
             // must be removed at this point of time
-            exchange.getIn().removeHeader(Exchange.BEAN_MULTI_PARAMETER_ARRAY);
+            if (multiParameterArray) {
+                exchange.getIn().removeHeader(Exchange.BEAN_MULTI_PARAMETER_ARRAY);
+            }
             exchange.getIn().removeHeader(Exchange.BEAN_METHOD_NAME);
 
             Object[] answer = evaluateParameterExpressions(exchange, body, multiParameterArray, it);