Package com.sefer.dragonfly.client

Source Code of com.sefer.dragonfly.client.CloudMonitorStartup

package com.sefer.dragonfly.client;

import java.util.Iterator;
import java.util.Set;

import javax.management.Attribute;
import javax.management.MBeanAttributeInfo;
import javax.management.MBeanInfo;
import javax.management.MBeanOperationInfo;
import javax.management.MBeanServer;
import javax.management.MalformedObjectNameException;
import javax.management.ObjectName;

import com.sefer.dragonfly.client.tools.MonitorLog;
import com.sefer.dragonfly.client.tools.MonitorLogFactory;
import com.sefer.dragonfly.client.tools.MonitorManage;
import com.sefer.dragonfly.client.utils.MBeanAnnotationRegister;

public class CloudMonitorStartup {
  private static MonitorManage monitorManage = null;

  public void start() {
    if (monitorManage == null) {
      monitorManage = MonitorManage.getInstance();
    }
    monitorManage.init();
    monitorManage.start();
  }

  public void stop() {
    if (monitorManage != null) {
      monitorManage.stop();
    }
  }

  // ========================>>>>>>>>>>>>>>>

  public static void main(String[] args) throws MalformedObjectNameException,
      NullPointerException {
    CloudMonitorStartup startUp = new CloudMonitorStartup();
    startUp.start();
    // mbeanList();

    try {
      MBeanAnnotationRegister.addHtmlAdaptorServer(9092);
    } catch (Exception e) {
      e.printStackTrace();
    }

    new Thread() {
      public void run() {
        MonitorLog monitorLog = MonitorLogFactory
            .getLogger("irisPluginCache");
        while (true) {
          try {
            Thread.sleep(100);
          } catch (InterruptedException e) {
            e.printStackTrace();
          }
          System.out.println("input data.....................");
          monitorLog.log(new String(""));
        }

      }
    }.start();
  }

  private static void mbeanList() throws MalformedObjectNameException,
      NullPointerException {
    // /================>>>>>>>>>>>>>>>>>>>>>>>
    Set<ObjectName> queryNames = MBeanAnnotationRegister.getMBeanServer()
        .queryNames(new ObjectName("*:*"), null);
    Iterator<ObjectName> iterator = queryNames.iterator();
    MBeanServer mBeanServer = MBeanAnnotationRegister.getMBeanServer();
    System.out
        .println("==========================================================>>>>>>>>>");
    while (iterator.hasNext()) {
      ObjectName oname = iterator.next();

      try {
        MBeanInfo minfo = MBeanAnnotationRegister.getMBeanServer()
            .getMBeanInfo(oname);
        String code = minfo.getClassName();

        if ("org.apache.commons.modeler.BaseModelMBean".equals(code)) {
          code = oname
              + ":"
              + (String) mBeanServer.getAttribute(oname,
                  "modelerType");
        }
        if ("javax.management.modelmbean.RequiredModelMBean"
            .equals(code)) {
          code = oname + ":" + minfo.getDescription();
        }
        System.out.println("modelerType: " + code);

        // ================属性============>>>>
        MBeanAttributeInfo attrs[] = minfo.getAttributes();
        Object value = null;

        for (int i = 0; i < attrs.length; i++) {
          if (!attrs[i].isReadable())
            continue;
          String attName = attrs[i].getName();
          if (attName.indexOf("=") >= 0 || attName.indexOf(":") >= 0
              || attName.indexOf(" ") >= 0) {
            continue;
          }

          try {
            value = mBeanServer.getAttribute(oname, attName);
          } catch (Throwable t) {
            continue;
          }
          if (value == null)
            continue;
          if ("modelerType".equals(attName))
            continue;
          String valueString = value.toString();
          System.out.println("Attribute::" + attName + ": "
              + valueString);

          if (attrs[i].getName().equals("ruleMemoryValue")) {
            Attribute attr = new Attribute("ruleMemoryValue", 100);
            mBeanServer.setAttribute(oname, attr);

            System.out.println(".......set finished..........");

            Object attribute = mBeanServer.getAttribute(oname,
                "ruleMemoryValue");
            System.out.println("attribute:::: finished:::"
                + attribute);
          }
        }

        // ===============操作=================>>>
        MBeanOperationInfo[] operations = minfo.getOperations();

        for (int i = 0; i < operations.length; i++) {
          String opName = operations[i].getName();
          System.out.println("operations:::::" + opName + ": "
              + operations[i].getDescription());
          if ("getState".equals(opName)) {
            System.out.println("method invoke:::"
                + mBeanServer.invoke(oname, opName,

                new Object[] {}, new String[] {}));
          }
        }

        System.out.println("+++++++++" + "([{ mbeanname:\"" + "123"
            + "\",methodname:\"" + "123" + "\",value:\"" + value
            + "\",ip:\"" + "++++++++++++" + "\"}])");

      } catch (Exception e) {
        e.printStackTrace();
      }
    }
    System.out
        .println("<<<<<<<<<<<<==========================================================");
  }
}
TOP

Related Classes of com.sefer.dragonfly.client.CloudMonitorStartup

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.