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