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 17:59:34 UTC

[3/3] 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/0b4c5f34
Tree: http://git-wip-us.apache.org/repos/asf/camel/tree/0b4c5f34
Diff: http://git-wip-us.apache.org/repos/asf/camel/diff/0b4c5f34

Branch: refs/heads/master
Commit: 0b4c5f341ea146afb879061c86518f4919c6b421
Parents: 3b8c71c
Author: Claus Ibsen <da...@apache.org>
Authored: Tue Jul 21 17:49:12 2015 +0200
Committer: Claus Ibsen <da...@apache.org>
Committed: Tue Jul 21 18:06:26 2015 +0200

----------------------------------------------------------------------
 .../api/management/mbean/ManagedBeanMBean.java  | 29 +++++++++++++++++++
 .../camel/component/bean/BeanProcessor.java     |  2 +-
 .../management/mbean/ManagedBeanProcessor.java  | 30 +++++++++++++++++++-
 3 files changed, 59 insertions(+), 2 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/camel/blob/0b4c5f34/camel-core/src/main/java/org/apache/camel/api/management/mbean/ManagedBeanMBean.java
----------------------------------------------------------------------
diff --git a/camel-core/src/main/java/org/apache/camel/api/management/mbean/ManagedBeanMBean.java b/camel-core/src/main/java/org/apache/camel/api/management/mbean/ManagedBeanMBean.java
new file mode 100644
index 0000000..837569e
--- /dev/null
+++ b/camel-core/src/main/java/org/apache/camel/api/management/mbean/ManagedBeanMBean.java
@@ -0,0 +1,29 @@
+/**
+ * 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 ManagedBeanMBean extends ManagedProcessorMBean {
+
+    @ManagedAttribute(description = "The method name on the bean to use")
+    String getMethod();
+
+    @ManagedAttribute(description = "The class name of the bean in use (may be null if not resolved yet)")
+    String getBeanClassName();
+
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/camel/blob/0b4c5f34/camel-core/src/main/java/org/apache/camel/component/bean/BeanProcessor.java
----------------------------------------------------------------------
diff --git a/camel-core/src/main/java/org/apache/camel/component/bean/BeanProcessor.java b/camel-core/src/main/java/org/apache/camel/component/bean/BeanProcessor.java
index a273162..6565c2e 100644
--- a/camel-core/src/main/java/org/apache/camel/component/bean/BeanProcessor.java
+++ b/camel-core/src/main/java/org/apache/camel/component/bean/BeanProcessor.java
@@ -37,10 +37,10 @@ import org.slf4j.LoggerFactory;
 public class BeanProcessor extends ServiceSupport implements AsyncProcessor {
     private static final Logger LOG = LoggerFactory.getLogger(BeanProcessor.class);
 
+    private final BeanHolder beanHolder;
     private Processor processor;
     private boolean multiParameterArray;
     private String method;
-    private BeanHolder beanHolder;
     private boolean shorthandMethod;
 
     public BeanProcessor(Object pojo, BeanInfo beanInfo) {

http://git-wip-us.apache.org/repos/asf/camel/blob/0b4c5f34/camel-core/src/main/java/org/apache/camel/management/mbean/ManagedBeanProcessor.java
----------------------------------------------------------------------
diff --git a/camel-core/src/main/java/org/apache/camel/management/mbean/ManagedBeanProcessor.java b/camel-core/src/main/java/org/apache/camel/management/mbean/ManagedBeanProcessor.java
index e732f5d..5133b16 100644
--- a/camel-core/src/main/java/org/apache/camel/management/mbean/ManagedBeanProcessor.java
+++ b/camel-core/src/main/java/org/apache/camel/management/mbean/ManagedBeanProcessor.java
@@ -17,15 +17,20 @@
 package org.apache.camel.management.mbean;
 
 import org.apache.camel.CamelContext;
+import org.apache.camel.NoSuchBeanException;
 import org.apache.camel.api.management.ManagedResource;
+import org.apache.camel.api.management.mbean.ManagedBeanMBean;
 import org.apache.camel.component.bean.BeanProcessor;
 import org.apache.camel.model.ProcessorDefinition;
+import org.apache.camel.util.ObjectHelper;
 
 /**
  * @version 
  */
 @ManagedResource(description = "Managed Bean Processor")
-public class ManagedBeanProcessor extends ManagedProcessor {
+public class ManagedBeanProcessor extends ManagedProcessor implements ManagedBeanMBean {
+
+    private transient String beanClassName;
 
     public ManagedBeanProcessor(CamelContext context, BeanProcessor processor, ProcessorDefinition<?> definition) {
         super(context, processor, definition);
@@ -40,4 +45,27 @@ public class ManagedBeanProcessor extends ManagedProcessor {
     public Object getInstance() {
         return getProcessor().getBean();
     }
+
+    @Override
+    public String getMethod() {
+        return getProcessor().getMethod();
+    }
+
+    @Override
+    public String getBeanClassName() {
+        if (beanClassName != null) {
+            return beanClassName;
+        }
+        try {
+            Object bean = getProcessor().getBean();
+            if (bean != null) {
+                beanClassName = ObjectHelper.className(bean);
+            }
+        } catch (NoSuchBeanException e) {
+            // ignore
+        }
+
+        return beanClassName;
+    }
+
 }