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:25 UTC
[2/4] camel git commit: CAMEL-8992: EIP mbeans should output better
expression/preidcate. Make sure to unwrap when using ValueBuilder so we have
access the to actual easier.
CAMEL-8992: EIP mbeans should output better expression/preidcate. Make sure to unwrap when using ValueBuilder so we have access the to actual easier.
Project: http://git-wip-us.apache.org/repos/asf/camel/repo
Commit: http://git-wip-us.apache.org/repos/asf/camel/commit/7c0cc37b
Tree: http://git-wip-us.apache.org/repos/asf/camel/tree/7c0cc37b
Diff: http://git-wip-us.apache.org/repos/asf/camel/diff/7c0cc37b
Branch: refs/heads/master
Commit: 7c0cc37bd7e5c91cfda68350cbf69aa5755d61d7
Parents: d663114
Author: Claus Ibsen <da...@apache.org>
Authored: Wed Jul 22 17:34:43 2015 +0200
Committer: Claus Ibsen <da...@apache.org>
Committed: Wed Jul 22 19:54:18 2015 +0200
----------------------------------------------------------------------
.../api/management/mbean/ManagedFilterMBean.java | 3 +++
.../java/org/apache/camel/builder/ValueBuilder.java | 1 +
.../management/DefaultManagementObjectStrategy.java | 2 +-
.../apache/camel/management/mbean/ManagedFilter.java | 15 +++++++++++++--
.../org/apache/camel/model/ExpressionNodeHelper.java | 8 ++++++++
.../org/apache/camel/model/FilterDefinition.java | 1 +
.../apache/camel/management/ManagedFilterTest.java | 5 ++++-
7 files changed, 31 insertions(+), 4 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/camel/blob/7c0cc37b/camel-core/src/main/java/org/apache/camel/api/management/mbean/ManagedFilterMBean.java
----------------------------------------------------------------------
diff --git a/camel-core/src/main/java/org/apache/camel/api/management/mbean/ManagedFilterMBean.java b/camel-core/src/main/java/org/apache/camel/api/management/mbean/ManagedFilterMBean.java
index 71218d5..bf3145f 100644
--- a/camel-core/src/main/java/org/apache/camel/api/management/mbean/ManagedFilterMBean.java
+++ b/camel-core/src/main/java/org/apache/camel/api/management/mbean/ManagedFilterMBean.java
@@ -20,6 +20,9 @@ import org.apache.camel.api.management.ManagedAttribute;
public interface ManagedFilterMBean extends ManagedProcessorMBean {
+ @ManagedAttribute(description = "The language used for the predicate to determine if the message should be filtered or not")
+ String getPredicateLanguage();
+
@ManagedAttribute(description = "Predicate to determine if the message should be filtered or not")
String getPredicate();
http://git-wip-us.apache.org/repos/asf/camel/blob/7c0cc37b/camel-core/src/main/java/org/apache/camel/builder/ValueBuilder.java
----------------------------------------------------------------------
diff --git a/camel-core/src/main/java/org/apache/camel/builder/ValueBuilder.java b/camel-core/src/main/java/org/apache/camel/builder/ValueBuilder.java
index a8faf61..e9fca82 100644
--- a/camel-core/src/main/java/org/apache/camel/builder/ValueBuilder.java
+++ b/camel-core/src/main/java/org/apache/camel/builder/ValueBuilder.java
@@ -24,6 +24,7 @@ import org.apache.camel.Exchange;
import org.apache.camel.Expression;
import org.apache.camel.Predicate;
import org.apache.camel.builder.xml.Namespaces;
+import org.apache.camel.model.language.ExpressionDefinition;
import org.apache.camel.spi.NamespaceAware;
import org.apache.camel.util.ExpressionToPredicateAdapter;
http://git-wip-us.apache.org/repos/asf/camel/blob/7c0cc37b/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 983eb7d..b2e55b1 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
@@ -276,7 +276,7 @@ public class DefaultManagementObjectStrategy implements ManagementObjectStrategy
} else if (target instanceof RoutingSlip) {
answer = new ManagedRoutingSlip(context, (RoutingSlip) target, definition);
} else if (target instanceof FilterProcessor) {
- answer = new ManagedFilter(context, (FilterProcessor) target, definition);
+ answer = new ManagedFilter(context, (FilterProcessor) target, (org.apache.camel.model.FilterDefinition) definition);
} else if (target instanceof LogProcessor) {
answer = new ManagedLog(context, (LogProcessor) target, definition);
} else if (target instanceof LoopProcessor) {
http://git-wip-us.apache.org/repos/asf/camel/blob/7c0cc37b/camel-core/src/main/java/org/apache/camel/management/mbean/ManagedFilter.java
----------------------------------------------------------------------
diff --git a/camel-core/src/main/java/org/apache/camel/management/mbean/ManagedFilter.java b/camel-core/src/main/java/org/apache/camel/management/mbean/ManagedFilter.java
index edd89f2..d84b40f 100644
--- a/camel-core/src/main/java/org/apache/camel/management/mbean/ManagedFilter.java
+++ b/camel-core/src/main/java/org/apache/camel/management/mbean/ManagedFilter.java
@@ -19,6 +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.ManagedFilterMBean;
+import org.apache.camel.model.FilterDefinition;
import org.apache.camel.model.ProcessorDefinition;
import org.apache.camel.processor.FilterProcessor;
@@ -29,12 +30,17 @@ import org.apache.camel.processor.FilterProcessor;
public class ManagedFilter extends ManagedProcessor implements ManagedFilterMBean {
private final FilterProcessor processor;
- public ManagedFilter(CamelContext context, FilterProcessor processor, ProcessorDefinition<?> definition) {
+ public ManagedFilter(CamelContext context, FilterProcessor processor, FilterDefinition definition) {
super(context, processor, definition);
this.processor = processor;
}
@Override
+ public FilterDefinition getDefinition() {
+ return (FilterDefinition) super.getDefinition();
+ }
+
+ @Override
public synchronized void reset() {
processor.reset();
super.reset();
@@ -42,7 +48,12 @@ public class ManagedFilter extends ManagedProcessor implements ManagedFilterMBea
@Override
public String getPredicate() {
- return processor.getPredicate().toString();
+ return getDefinition().getExpression().getExpression();
+ }
+
+ @Override
+ public String getPredicateLanguage() {
+ return getDefinition().getExpression().getLanguage();
}
@Override
http://git-wip-us.apache.org/repos/asf/camel/blob/7c0cc37b/camel-core/src/main/java/org/apache/camel/model/ExpressionNodeHelper.java
----------------------------------------------------------------------
diff --git a/camel-core/src/main/java/org/apache/camel/model/ExpressionNodeHelper.java b/camel-core/src/main/java/org/apache/camel/model/ExpressionNodeHelper.java
index a3a3d48..914bc0d 100644
--- a/camel-core/src/main/java/org/apache/camel/model/ExpressionNodeHelper.java
+++ b/camel-core/src/main/java/org/apache/camel/model/ExpressionNodeHelper.java
@@ -58,6 +58,7 @@ public final class ExpressionNodeHelper {
answer.setResultType(builder.getResultType());
return answer;
} else if (expression instanceof ValueBuilder) {
+ // ValueBuilder wraps the actual expression so unwrap
ValueBuilder builder = (ValueBuilder) expression;
expression = builder.getExpression();
}
@@ -90,6 +91,13 @@ public final class ExpressionNodeHelper {
XPathExpression answer = new XPathExpression(builder);
answer.setExpression(builder.getText());
return answer;
+ } else if (predicate instanceof ValueBuilder) {
+ // ValueBuilder wraps the actual predicate so unwrap
+ ValueBuilder builder = (ValueBuilder) predicate;
+ Expression expression = builder.getExpression();
+ if (expression instanceof Predicate) {
+ predicate = (Predicate) expression;
+ }
}
if (predicate instanceof ExpressionDefinition) {
http://git-wip-us.apache.org/repos/asf/camel/blob/7c0cc37b/camel-core/src/main/java/org/apache/camel/model/FilterDefinition.java
----------------------------------------------------------------------
diff --git a/camel-core/src/main/java/org/apache/camel/model/FilterDefinition.java b/camel-core/src/main/java/org/apache/camel/model/FilterDefinition.java
index 01bcdce..9c2d13b 100644
--- a/camel-core/src/main/java/org/apache/camel/model/FilterDefinition.java
+++ b/camel-core/src/main/java/org/apache/camel/model/FilterDefinition.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.Processor;
import org.apache.camel.model.language.ExpressionDefinition;
http://git-wip-us.apache.org/repos/asf/camel/blob/7c0cc37b/camel-core/src/test/java/org/apache/camel/management/ManagedFilterTest.java
----------------------------------------------------------------------
diff --git a/camel-core/src/test/java/org/apache/camel/management/ManagedFilterTest.java b/camel-core/src/test/java/org/apache/camel/management/ManagedFilterTest.java
index 29082e6..d96a921 100644
--- a/camel-core/src/test/java/org/apache/camel/management/ManagedFilterTest.java
+++ b/camel-core/src/test/java/org/apache/camel/management/ManagedFilterTest.java
@@ -61,8 +61,11 @@ public class ManagedFilterTest extends ManagementTestSupport {
Long count = (Long) mbeanServer.getAttribute(on, "FilteredCount");
assertEquals(1, count.longValue());
+ String lan = (String) mbeanServer.getAttribute(on, "PredicateLanguage");
+ assertEquals("header", lan);
+
String uri = (String) mbeanServer.getAttribute(on, "Predicate");
- assertEquals("header{header(foo)}", uri);
+ assertEquals("foo", uri);
TabularData data = (TabularData) mbeanServer.invoke(on, "explain", new Object[]{false}, new String[]{"boolean"});
assertNotNull(data);