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 2015/07/22 19:47:26 UTC
[3/4] camel git commit: CAMEL-8992: EIP mbeans should output better
expression/preidcate. A bit better when using Java DSL to build
expression/predicate on EIPs to have them not wrapped as ValueBuilders
CAMEL-8992: EIP mbeans should output better expression/preidcate. A bit better when using Java DSL to build expression/predicate on EIPs to have them not wrapped as ValueBuilders
Project: http://git-wip-us.apache.org/repos/asf/camel/repo
Commit: http://git-wip-us.apache.org/repos/asf/camel/commit/2f9d5959
Tree: http://git-wip-us.apache.org/repos/asf/camel/tree/2f9d5959
Diff: http://git-wip-us.apache.org/repos/asf/camel/diff/2f9d5959
Branch: refs/heads/master
Commit: 2f9d595977f9096e66fc940c1bdd434f1b974b36
Parents: 14e018c
Author: Claus Ibsen <da...@apache.org>
Authored: Wed Jul 22 18:14:07 2015 +0200
Committer: Claus Ibsen <da...@apache.org>
Committed: Wed Jul 22 19:54:19 2015 +0200
----------------------------------------------------------------------
.../mbean/ManagedIdempotentConsumerMBean.java | 6 ++++++
.../api/management/mbean/ManagedLoopMBean.java | 3 +++
.../DefaultManagementObjectStrategy.java | 4 ++--
.../mbean/ManagedIdempotentConsumer.java | 19 +++++++++++++++++--
.../camel/management/mbean/ManagedLoop.java | 18 +++++++++++++-----
.../org/apache/camel/model/ExpressionNode.java | 9 ++++++++-
.../apache/camel/model/ProcessorDefinition.java | 18 ++++++------------
.../apache/camel/model/ResequenceDefinition.java | 6 ++++++
.../apache/camel/model/ValidateDefinition.java | 11 ++++++++++-
.../apache/camel/management/ManagedLoopTest.java | 5 ++++-
10 files changed, 75 insertions(+), 24 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/camel/blob/2f9d5959/camel-core/src/main/java/org/apache/camel/api/management/mbean/ManagedIdempotentConsumerMBean.java
----------------------------------------------------------------------
diff --git a/camel-core/src/main/java/org/apache/camel/api/management/mbean/ManagedIdempotentConsumerMBean.java b/camel-core/src/main/java/org/apache/camel/api/management/mbean/ManagedIdempotentConsumerMBean.java
index 4b2cd11..d459b06 100644
--- a/camel-core/src/main/java/org/apache/camel/api/management/mbean/ManagedIdempotentConsumerMBean.java
+++ b/camel-core/src/main/java/org/apache/camel/api/management/mbean/ManagedIdempotentConsumerMBean.java
@@ -21,6 +21,12 @@ import org.apache.camel.api.management.ManagedOperation;
public interface ManagedIdempotentConsumerMBean extends ManagedProcessorMBean {
+ @ManagedAttribute(description = "The language for the expression")
+ String getExpressionLanguage();
+
+ @ManagedAttribute(description = "Expression used to calculate the correlation key to use for duplicate check")
+ String getExpression();
+
@ManagedAttribute(description = "Whether to eagerly add the key to the idempotent repository or wait until the exchange is complete")
Boolean isEager();
http://git-wip-us.apache.org/repos/asf/camel/blob/2f9d5959/camel-core/src/main/java/org/apache/camel/api/management/mbean/ManagedLoopMBean.java
----------------------------------------------------------------------
diff --git a/camel-core/src/main/java/org/apache/camel/api/management/mbean/ManagedLoopMBean.java b/camel-core/src/main/java/org/apache/camel/api/management/mbean/ManagedLoopMBean.java
index 0449bf7..dfa7394 100644
--- a/camel-core/src/main/java/org/apache/camel/api/management/mbean/ManagedLoopMBean.java
+++ b/camel-core/src/main/java/org/apache/camel/api/management/mbean/ManagedLoopMBean.java
@@ -20,6 +20,9 @@ import org.apache.camel.api.management.ManagedAttribute;
public interface ManagedLoopMBean extends ManagedProcessorMBean {
+ @ManagedAttribute(description = "The language for the expression")
+ String getExpressionLanguage();
+
@ManagedAttribute(description = "Expression to define how many times we should loop")
String getExpression();
http://git-wip-us.apache.org/repos/asf/camel/blob/2f9d5959/camel-core/src/main/java/org/apache/camel/management/DefaultManagementObjectStrategy.java
----------------------------------------------------------------------
diff --git a/camel-core/src/main/java/org/apache/camel/management/DefaultManagementObjectStrategy.java b/camel-core/src/main/java/org/apache/camel/management/DefaultManagementObjectStrategy.java
index 97804eb..7b94ff6 100644
--- a/camel-core/src/main/java/org/apache/camel/management/DefaultManagementObjectStrategy.java
+++ b/camel-core/src/main/java/org/apache/camel/management/DefaultManagementObjectStrategy.java
@@ -280,7 +280,7 @@ public class DefaultManagementObjectStrategy implements ManagementObjectStrategy
} else if (target instanceof LogProcessor) {
answer = new ManagedLog(context, (LogProcessor) target, definition);
} else if (target instanceof LoopProcessor) {
- answer = new ManagedLoop(context, (LoopProcessor) target, definition);
+ answer = new ManagedLoop(context, (LoopProcessor) target, (org.apache.camel.model.LoopDefinition) definition);
} else if (target instanceof MarshalProcessor) {
answer = new ManagedMarshal(context, (MarshalProcessor) target, (org.apache.camel.model.MarshalDefinition) definition);
} else if (target instanceof UnmarshalProcessor) {
@@ -348,7 +348,7 @@ public class DefaultManagementObjectStrategy implements ManagementObjectStrategy
} else if (target instanceof BeanProcessor) {
answer = new ManagedBeanProcessor(context, (BeanProcessor) target, definition);
} else if (target instanceof IdempotentConsumer) {
- answer = new ManagedIdempotentConsumer(context, (IdempotentConsumer) target, definition);
+ answer = new ManagedIdempotentConsumer(context, (IdempotentConsumer) target, (org.apache.camel.model.IdempotentConsumerDefinition) definition);
} else if (target instanceof AggregateProcessor) {
answer = new ManagedAggregateProcessor(context, (AggregateProcessor) target, (org.apache.camel.model.AggregateDefinition) definition);
} else if (target instanceof Enricher) {
http://git-wip-us.apache.org/repos/asf/camel/blob/2f9d5959/camel-core/src/main/java/org/apache/camel/management/mbean/ManagedIdempotentConsumer.java
----------------------------------------------------------------------
diff --git a/camel-core/src/main/java/org/apache/camel/management/mbean/ManagedIdempotentConsumer.java b/camel-core/src/main/java/org/apache/camel/management/mbean/ManagedIdempotentConsumer.java
index c74ca08..eb3c3a2 100644
--- a/camel-core/src/main/java/org/apache/camel/management/mbean/ManagedIdempotentConsumer.java
+++ b/camel-core/src/main/java/org/apache/camel/management/mbean/ManagedIdempotentConsumer.java
@@ -19,17 +19,32 @@ package org.apache.camel.management.mbean;
import org.apache.camel.CamelContext;
import org.apache.camel.api.management.ManagedResource;
import org.apache.camel.api.management.mbean.ManagedIdempotentConsumerMBean;
-import org.apache.camel.model.ProcessorDefinition;
+import org.apache.camel.model.IdempotentConsumerDefinition;
import org.apache.camel.processor.idempotent.IdempotentConsumer;
@ManagedResource(description = "Managed Idempotent Consumer")
public class ManagedIdempotentConsumer extends ManagedProcessor implements ManagedIdempotentConsumerMBean {
- public ManagedIdempotentConsumer(CamelContext context, IdempotentConsumer idempotentConsumer, ProcessorDefinition<?> definition) {
+ public ManagedIdempotentConsumer(CamelContext context, IdempotentConsumer idempotentConsumer, IdempotentConsumerDefinition definition) {
super(context, idempotentConsumer, definition);
}
@Override
+ public IdempotentConsumerDefinition getDefinition() {
+ return (IdempotentConsumerDefinition) super.getDefinition();
+ }
+
+ @Override
+ public String getExpressionLanguage() {
+ return getDefinition().getExpression().getLanguage();
+ }
+
+ @Override
+ public String getExpression() {
+ return getDefinition().getExpression().getExpression();
+ }
+
+ @Override
public IdempotentConsumer getProcessor() {
return (IdempotentConsumer) super.getProcessor();
}
http://git-wip-us.apache.org/repos/asf/camel/blob/2f9d5959/camel-core/src/main/java/org/apache/camel/management/mbean/ManagedLoop.java
----------------------------------------------------------------------
diff --git a/camel-core/src/main/java/org/apache/camel/management/mbean/ManagedLoop.java b/camel-core/src/main/java/org/apache/camel/management/mbean/ManagedLoop.java
index 8d791c7..73ee7dd 100644
--- a/camel-core/src/main/java/org/apache/camel/management/mbean/ManagedLoop.java
+++ b/camel-core/src/main/java/org/apache/camel/management/mbean/ManagedLoop.java
@@ -19,7 +19,7 @@ package org.apache.camel.management.mbean;
import org.apache.camel.CamelContext;
import org.apache.camel.api.management.ManagedResource;
import org.apache.camel.api.management.mbean.ManagedLoopMBean;
-import org.apache.camel.model.ProcessorDefinition;
+import org.apache.camel.model.LoopDefinition;
import org.apache.camel.processor.LoopProcessor;
/**
@@ -28,17 +28,25 @@ import org.apache.camel.processor.LoopProcessor;
@ManagedResource(description = "Managed Loop")
public class ManagedLoop extends ManagedProcessor implements ManagedLoopMBean {
private final LoopProcessor processor;
- private final String uri;
- public ManagedLoop(CamelContext context, LoopProcessor processor, ProcessorDefinition<?> definition) {
+ public ManagedLoop(CamelContext context, LoopProcessor processor, LoopDefinition definition) {
super(context, processor, definition);
this.processor = processor;
- this.uri = processor.getExpression().toString();
+ }
+
+ @Override
+ public LoopDefinition getDefinition() {
+ return (LoopDefinition) super.getDefinition();
+ }
+
+ @Override
+ public String getExpressionLanguage() {
+ return getDefinition().getExpression().getLanguage();
}
@Override
public String getExpression() {
- return uri;
+ return getDefinition().getExpression().getExpression();
}
@Override
http://git-wip-us.apache.org/repos/asf/camel/blob/2f9d5959/camel-core/src/main/java/org/apache/camel/model/ExpressionNode.java
----------------------------------------------------------------------
diff --git a/camel-core/src/main/java/org/apache/camel/model/ExpressionNode.java b/camel-core/src/main/java/org/apache/camel/model/ExpressionNode.java
index c8f1616..8b58e07 100644
--- a/camel-core/src/main/java/org/apache/camel/model/ExpressionNode.java
+++ b/camel-core/src/main/java/org/apache/camel/model/ExpressionNode.java
@@ -66,7 +66,14 @@ public abstract class ExpressionNode extends ProcessorDefinition<ExpressionNode>
}
public void setExpression(ExpressionDefinition expression) {
- this.expression = expression;
+ // favour using the helper to set the expression as it can unwrap some unwanted builders when using Java DSL
+ if (expression instanceof Expression) {
+ this.expression = ExpressionNodeHelper.toExpressionDefinition((Expression) expression);
+ } else if (expression instanceof Predicate) {
+ this.expression = ExpressionNodeHelper.toExpressionDefinition((Predicate) expression);
+ } else {
+ this.expression = expression;
+ }
}
@Override
http://git-wip-us.apache.org/repos/asf/camel/blob/2f9d5959/camel-core/src/main/java/org/apache/camel/model/ProcessorDefinition.java
----------------------------------------------------------------------
diff --git a/camel-core/src/main/java/org/apache/camel/model/ProcessorDefinition.java b/camel-core/src/main/java/org/apache/camel/model/ProcessorDefinition.java
index fe6f12b..2ddb383 100644
--- a/camel-core/src/main/java/org/apache/camel/model/ProcessorDefinition.java
+++ b/camel-core/src/main/java/org/apache/camel/model/ProcessorDefinition.java
@@ -1410,8 +1410,7 @@ public abstract class ProcessorDefinition<Type extends ProcessorDefinition<Type>
* @return the builder
*/
public FilterDefinition filter(ExpressionDefinition expression) {
- FilterDefinition filter = new FilterDefinition();
- filter.setExpression(expression);
+ FilterDefinition filter = new FilterDefinition(expression);
addOutput(filter);
return filter;
}
@@ -1438,8 +1437,7 @@ public abstract class ProcessorDefinition<Type extends ProcessorDefinition<Type>
* @return the builder
*/
public ValidateDefinition validate(Expression expression) {
- ValidateDefinition answer = new ValidateDefinition();
- answer.setExpression(ExpressionNodeHelper.toExpressionDefinition(expression));
+ ValidateDefinition answer = new ValidateDefinition(expression);
addOutput(answer);
return answer;
}
@@ -1453,8 +1451,7 @@ public abstract class ProcessorDefinition<Type extends ProcessorDefinition<Type>
* @return the builder
*/
public ValidateDefinition validate(Predicate predicate) {
- ValidateDefinition answer = new ValidateDefinition();
- answer.setExpression(ExpressionNodeHelper.toExpressionDefinition(predicate));
+ ValidateDefinition answer = new ValidateDefinition(predicate);
addOutput(answer);
return answer;
}
@@ -1976,8 +1973,7 @@ public abstract class ProcessorDefinition<Type extends ProcessorDefinition<Type>
* @return the builder
*/
public ResequenceDefinition resequence(Expression expression) {
- ResequenceDefinition answer = new ResequenceDefinition();
- answer.setExpression(ExpressionNodeHelper.toExpressionDefinition(expression));
+ ResequenceDefinition answer = new ResequenceDefinition(expression);
addOutput(answer);
return answer;
}
@@ -2135,8 +2131,7 @@ public abstract class ProcessorDefinition<Type extends ProcessorDefinition<Type>
* @return the builder
*/
public LoopDefinition loop(Expression expression) {
- LoopDefinition loop = new LoopDefinition();
- loop.setExpression(new ExpressionDefinition(expression));
+ LoopDefinition loop = new LoopDefinition(expression);
addOutput(loop);
return loop;
}
@@ -2150,8 +2145,7 @@ public abstract class ProcessorDefinition<Type extends ProcessorDefinition<Type>
* @return the builder
*/
public LoopDefinition loop(int count) {
- LoopDefinition loop = new LoopDefinition();
- loop.setExpression(new ConstantExpression(Integer.toString(count)));
+ LoopDefinition loop = new LoopDefinition(new ConstantExpression(Integer.toString(count)));
addOutput(loop);
return loop;
}
http://git-wip-us.apache.org/repos/asf/camel/blob/2f9d5959/camel-core/src/main/java/org/apache/camel/model/ResequenceDefinition.java
----------------------------------------------------------------------
diff --git a/camel-core/src/main/java/org/apache/camel/model/ResequenceDefinition.java b/camel-core/src/main/java/org/apache/camel/model/ResequenceDefinition.java
index 7f26a4f..ef6a423 100644
--- a/camel-core/src/main/java/org/apache/camel/model/ResequenceDefinition.java
+++ b/camel-core/src/main/java/org/apache/camel/model/ResequenceDefinition.java
@@ -68,6 +68,12 @@ public class ResequenceDefinition extends ProcessorDefinition<ResequenceDefiniti
public ResequenceDefinition() {
}
+ public ResequenceDefinition(Expression expression) {
+ if (expression != null) {
+ setExpression(ExpressionNodeHelper.toExpressionDefinition(expression));
+ }
+ }
+
public List<ProcessorDefinition<?>> getOutputs() {
return outputs;
}
http://git-wip-us.apache.org/repos/asf/camel/blob/2f9d5959/camel-core/src/main/java/org/apache/camel/model/ValidateDefinition.java
----------------------------------------------------------------------
diff --git a/camel-core/src/main/java/org/apache/camel/model/ValidateDefinition.java b/camel-core/src/main/java/org/apache/camel/model/ValidateDefinition.java
index 4126de5..532e9c6 100644
--- a/camel-core/src/main/java/org/apache/camel/model/ValidateDefinition.java
+++ b/camel-core/src/main/java/org/apache/camel/model/ValidateDefinition.java
@@ -20,6 +20,7 @@ import javax.xml.bind.annotation.XmlAccessType;
import javax.xml.bind.annotation.XmlAccessorType;
import javax.xml.bind.annotation.XmlRootElement;
+import org.apache.camel.Expression;
import org.apache.camel.Predicate;
import org.apache.camel.model.language.ExpressionDefinition;
import org.apache.camel.processor.validation.PredicateValidatingProcessor;
@@ -38,7 +39,15 @@ public class ValidateDefinition extends NoOutputExpressionNode {
public ValidateDefinition() {
}
-
+
+ public ValidateDefinition(Expression expression) {
+ super(expression);
+ }
+
+ public ValidateDefinition(Predicate predicate) {
+ super(predicate);
+ }
+
@Override
public String toString() {
return "Validate[" + getExpression() + " -> " + getOutputs() + "]";
http://git-wip-us.apache.org/repos/asf/camel/blob/2f9d5959/camel-core/src/test/java/org/apache/camel/management/ManagedLoopTest.java
----------------------------------------------------------------------
diff --git a/camel-core/src/test/java/org/apache/camel/management/ManagedLoopTest.java b/camel-core/src/test/java/org/apache/camel/management/ManagedLoopTest.java
index bbacb6d..3036248 100644
--- a/camel-core/src/test/java/org/apache/camel/management/ManagedLoopTest.java
+++ b/camel-core/src/test/java/org/apache/camel/management/ManagedLoopTest.java
@@ -58,8 +58,11 @@ public class ManagedLoopTest extends ManagementTestSupport {
String state = (String) mbeanServer.getAttribute(on, "State");
assertEquals(ServiceStatus.Started.name(), state);
+ String lan = (String) mbeanServer.getAttribute(on, "ExpressionLanguage");
+ assertEquals("header", lan);
+
String uri = (String) mbeanServer.getAttribute(on, "Expression");
- assertEquals("header{foo}", uri);
+ assertEquals("foo", uri);
TabularData data = (TabularData) mbeanServer.invoke(on, "explain", new Object[]{false}, new String[]{"boolean"});
assertNotNull(data);