⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 methodinvocation.java

📁 jmx codeJava源码
💻 JAVA
字号:

package book.jmx.examples;

import java.io.*;
import java.util.*;
import java.lang.reflect.*;
import javax.management.*;

public class MethodInvocation implements java.io.Serializable {

  private static final long serialVersionUID = 7235369610255097138L;

  /* Status values. */  
  public final static int OK    = 1;
  public final static int ERROR = -99;
  
  /* MBean server reference. */
  private transient MBeanServer server  = null;

  /* MethodInvocation 'payload'. */
  private String objectName   = null;
  private String methodName   = null;
  private Object[] params     = null;
  private Object returnValue  = null;
  private int status          = OK;

  
  /* Constructors. */
  public MethodInvocation() {}
  
  public MethodInvocation(Method m) {
    setMethodName(m.getName());
  }
  
  
  /* Accessor methods. */
  
  public void setParams(Object[] params) {
    if (params == null || params.length < 1)  return;
    this.params = params;
  }

  public void setMBeanServer(MBeanServer server) {
    this.server = server;
  }  
  
  public Object getReturnValue() {
    return returnValue;
  }
  
  public int getStatus() {
    return status;
  }
  
  public String getMethodName() {
    return methodName;
  }

  public void setMethodName(String methodName) {
    this.methodName = methodName;
  }
  
  
  /* Invoke implementation. */
  
  public void invoke() {
  
    try {
    
      if (methodName.equals("createMBean")) {
        if (params.length == 2) {
          returnValue = server.createMBean(
              (String)params[0],
              (ObjectName)params[1]
          );
        }
        
        else if (params.length == 3) {
          returnValue = server.createMBean(
              (String)params[0],
              (ObjectName)params[1],
              (ObjectName)params[2]
          );
        }
        
        else if (params.length == 4) {
          returnValue = server.createMBean(
              (String)params[0],
              (ObjectName)params[1],
              (Object[])params[2],
              (String[])params[3]
          );
        }
        
        else if (params.length == 5) {
          returnValue = server.createMBean(
              (String)params[0],
              (ObjectName)params[1],
              (ObjectName)params[2],
              (Object[])params[3],
              (String[])params[4]
          );
        }
        
        else {}/////
      }
      
      else if (methodName.equals("unregisterMBean")) {
        server.unregisterMBean((ObjectName)params[0]);
      }
      
      else if (methodName.equals("getObjectInstance")) {
        returnValue = server.getObjectInstance(
            (ObjectName)params[0]
        );
      }
      
      else if (methodName.equals("isRegistered")) {
        returnValue = new Boolean(server.isRegistered(
            (ObjectName)params[0]
        ));
      }
      
      else if (methodName.equals("getMBeanCount")) {
        returnValue = server.getMBeanCount();
      }
      
      else if (methodName.equals("getAttribute")) {
        returnValue = server.getAttribute(
            (ObjectName)params[0],
            (String)params[1]
        );
      }
      
      else if (methodName.equals("getAttributes")) {
        returnValue = server.getAttributes(
            (ObjectName)params[0],
            (String[])params[1]
        );
      }
      
      else if (methodName.equals("setAttribute")) {
        server.setAttribute(
            (ObjectName)params[0],
            (Attribute)params[1]
        );
      }
      
      else if (methodName.equals("setAttributes")) {
        returnValue = server.setAttributes(
            (ObjectName)params[0],
            (AttributeList)params[1]
        );
      }
      
      else if (methodName.equals("invoke")) {
        returnValue = server.invoke(
            (ObjectName)params[0],
            (String)params[1],
            (Object[])params[2],
            (String[])params[3]
        );
      }
      
      else if (methodName.equals("getDefaultDomain")) {
        returnValue = server.getDefaultDomain();  
      }
      
      else if (methodName.equals("addNotificationListener")) {
      }
      
      else if (methodName.equals("removeNotificationListener")) {
      }
      
      else if (methodName.equals("getMBeanInfo")) {
        returnValue = server.getMBeanInfo(
            (ObjectName)params[0]
        );
      }
      
      else if (methodName.equals("isInstanceOf")) {
        returnValue = new Boolean(server.isInstanceOf(
            (ObjectName)params[0],
            (String)params[1]
        ));
      }
      
      else if (methodName.equals("queryNames")) {
        returnValue = server.queryNames(
            (ObjectName)params[0],
            (QueryExp)params[1]
        );
      }
      
      else if (methodName.equals("queryMBeans")) {
        returnValue = server.queryMBeans(
            (ObjectName)params[0],
            (QueryExp)params[1]
        );
      }
      
      else {}///////
      
    }
    catch (Throwable t) {
      returnValue = t;
      status = ERROR;
    }
  }

}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -