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/21 16:07:41 UTC
[5/6] camel git commit: CAMEL-8526: Add more EIP as specialized mbeans
CAMEL-8526: Add more EIP as specialized mbeans
Project: http://git-wip-us.apache.org/repos/asf/camel/repo
Commit: http://git-wip-us.apache.org/repos/asf/camel/commit/e82fd113
Tree: http://git-wip-us.apache.org/repos/asf/camel/tree/e82fd113
Diff: http://git-wip-us.apache.org/repos/asf/camel/diff/e82fd113
Branch: refs/heads/master
Commit: e82fd1138aae7c790794426830eb1bf56927e823
Parents: 1ee9b41
Author: Claus Ibsen <da...@apache.org>
Authored: Tue Jul 21 14:50:26 2015 +0200
Committer: Claus Ibsen <da...@apache.org>
Committed: Tue Jul 21 14:50:26 2015 +0200
----------------------------------------------------------------------
.../management/mbean/ManagedMulticastMBean.java | 41 ++++++++++++
.../DefaultManagementObjectStrategy.java | 4 ++
.../management/mbean/ManagedMulticast.java | 66 ++++++++++++++++++++
.../camel/processor/MulticastProcessor.java | 4 ++
.../camel/management/ManagedMulticastTest.java | 16 +++++
5 files changed, 131 insertions(+)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/camel/blob/e82fd113/camel-core/src/main/java/org/apache/camel/api/management/mbean/ManagedMulticastMBean.java
----------------------------------------------------------------------
diff --git a/camel-core/src/main/java/org/apache/camel/api/management/mbean/ManagedMulticastMBean.java b/camel-core/src/main/java/org/apache/camel/api/management/mbean/ManagedMulticastMBean.java
new file mode 100644
index 0000000..98c7c6c
--- /dev/null
+++ b/camel-core/src/main/java/org/apache/camel/api/management/mbean/ManagedMulticastMBean.java
@@ -0,0 +1,41 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.camel.api.management.mbean;
+
+import org.apache.camel.api.management.ManagedAttribute;
+
+public interface ManagedMulticastMBean extends ManagedProcessorMBean {
+
+ @ManagedAttribute(description = "")
+ Boolean isParallelAggregate();
+
+ @ManagedAttribute(description = "")
+ Boolean isParallelProcessing();
+
+ @ManagedAttribute(description = "")
+ Boolean isStreaming();
+
+ @ManagedAttribute(description = "")
+ Boolean isStopOnException();
+
+ @ManagedAttribute(description = "")
+ Boolean isShareUnitOfWork();
+
+ @ManagedAttribute(description = "")
+ Long getTimeout();
+
+}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/camel/blob/e82fd113/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 eda6441..be00fce 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
@@ -46,6 +46,7 @@ import org.apache.camel.management.mbean.ManagedEventNotifier;
import org.apache.camel.management.mbean.ManagedFilter;
import org.apache.camel.management.mbean.ManagedIdempotentConsumer;
import org.apache.camel.management.mbean.ManagedLoop;
+import org.apache.camel.management.mbean.ManagedMulticast;
import org.apache.camel.management.mbean.ManagedPollEnricher;
import org.apache.camel.management.mbean.ManagedProcessor;
import org.apache.camel.management.mbean.ManagedProducer;
@@ -68,6 +69,7 @@ import org.apache.camel.processor.Enricher;
import org.apache.camel.processor.ErrorHandler;
import org.apache.camel.processor.FilterProcessor;
import org.apache.camel.processor.LoopProcessor;
+import org.apache.camel.processor.MulticastProcessor;
import org.apache.camel.processor.PollEnricher;
import org.apache.camel.processor.RoutingSlip;
import org.apache.camel.processor.SendDynamicProcessor;
@@ -205,6 +207,8 @@ public class DefaultManagementObjectStrategy implements ManagementObjectStrategy
answer = new ManagedFilter(context, (FilterProcessor) target, definition);
} else if (target instanceof LoopProcessor) {
answer = new ManagedLoop(context, (LoopProcessor) target, definition);
+ } else if (target instanceof MulticastProcessor) {
+ answer = new ManagedMulticast(context, (MulticastProcessor) target, definition);
} else if (target instanceof WireTapProcessor) {
answer = new ManagedWireTapProcessor(context, (WireTapProcessor) target, definition);
} else if (target instanceof SendDynamicProcessor) {
http://git-wip-us.apache.org/repos/asf/camel/blob/e82fd113/camel-core/src/main/java/org/apache/camel/management/mbean/ManagedMulticast.java
----------------------------------------------------------------------
diff --git a/camel-core/src/main/java/org/apache/camel/management/mbean/ManagedMulticast.java b/camel-core/src/main/java/org/apache/camel/management/mbean/ManagedMulticast.java
new file mode 100644
index 0000000..ea72a46
--- /dev/null
+++ b/camel-core/src/main/java/org/apache/camel/management/mbean/ManagedMulticast.java
@@ -0,0 +1,66 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+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.ManagedMulticastMBean;
+import org.apache.camel.model.ProcessorDefinition;
+import org.apache.camel.processor.MulticastProcessor;
+
+/**
+ * @version
+ */
+@ManagedResource(description = "Managed Multicast")
+public class ManagedMulticast extends ManagedProcessor implements ManagedMulticastMBean {
+ private final MulticastProcessor processor;
+
+ public ManagedMulticast(CamelContext context, MulticastProcessor processor, ProcessorDefinition<?> definition) {
+ super(context, processor, definition);
+ this.processor = processor;
+ }
+
+ @Override
+ public Boolean isParallelAggregate() {
+ return processor.isParallelAggregate();
+ }
+
+ @Override
+ public Boolean isParallelProcessing() {
+ return processor.isParallelProcessing();
+ }
+
+ @Override
+ public Boolean isStreaming() {
+ return processor.isStreaming();
+ }
+
+ @Override
+ public Boolean isStopOnException() {
+ return processor.isStopOnException();
+ }
+
+ @Override
+ public Boolean isShareUnitOfWork() {
+ return processor.isShareUnitOfWork();
+ }
+
+ @Override
+ public Long getTimeout() {
+ return processor.getTimeout();
+ }
+}
http://git-wip-us.apache.org/repos/asf/camel/blob/e82fd113/camel-core/src/main/java/org/apache/camel/processor/MulticastProcessor.java
----------------------------------------------------------------------
diff --git a/camel-core/src/main/java/org/apache/camel/processor/MulticastProcessor.java b/camel-core/src/main/java/org/apache/camel/processor/MulticastProcessor.java
index 0370305..2358f91 100644
--- a/camel-core/src/main/java/org/apache/camel/processor/MulticastProcessor.java
+++ b/camel-core/src/main/java/org/apache/camel/processor/MulticastProcessor.java
@@ -1267,6 +1267,10 @@ public class MulticastProcessor extends ServiceSupport implements AsyncProcessor
return parallelProcessing;
}
+ public boolean isParallelAggregate() {
+ return parallelAggregate;
+ }
+
public boolean isShareUnitOfWork() {
return shareUnitOfWork;
}
http://git-wip-us.apache.org/repos/asf/camel/blob/e82fd113/camel-core/src/test/java/org/apache/camel/management/ManagedMulticastTest.java
----------------------------------------------------------------------
diff --git a/camel-core/src/test/java/org/apache/camel/management/ManagedMulticastTest.java b/camel-core/src/test/java/org/apache/camel/management/ManagedMulticastTest.java
index cd6d174..8adac73 100644
--- a/camel-core/src/test/java/org/apache/camel/management/ManagedMulticastTest.java
+++ b/camel-core/src/test/java/org/apache/camel/management/ManagedMulticastTest.java
@@ -18,6 +18,7 @@ package org.apache.camel.management;
import javax.management.MBeanServer;
import javax.management.ObjectName;
+import javax.management.openmbean.TabularData;
import org.apache.camel.builder.RouteBuilder;
@@ -56,6 +57,21 @@ public class ManagedMulticastTest extends ManagementTestSupport {
Long total = (Long) mbeanServer.getAttribute(name, "ExchangesTotal");
assertEquals(3, total.intValue());
+
+ Boolean parallel = (Boolean) mbeanServer.getAttribute(name, "ParallelProcessing");
+ assertEquals(false, parallel.booleanValue());
+
+ TabularData data = (TabularData) mbeanServer.invoke(name, "explain", new Object[]{false}, new String[]{"boolean"});
+ assertNotNull(data);
+ assertEquals(1, data.size());
+
+ data = (TabularData) mbeanServer.invoke(name, "explain", new Object[]{true}, new String[]{"boolean"});
+ assertNotNull(data);
+ assertEquals(14, data.size());
+
+ String json = (String) mbeanServer.invoke(name, "informationJson", null, null);
+ assertNotNull(json);
+ assertTrue(json.contains("\"description\": \"Routes the same message to multiple paths either sequentially or in parallel."));
}
@Override