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 <davscl...@apache.org>
Authored: Fri Jun 2 11:00:17 2017 +0200
Committer: Claus Ibsen <davscl...@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;

Reply via email to