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);