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;