Example usage for javax.management MBeanOperationInfo ACTION_INFO

List of usage examples for javax.management MBeanOperationInfo ACTION_INFO

Introduction

In this page you can find the example usage for javax.management MBeanOperationInfo ACTION_INFO.

Prototype

int ACTION_INFO

To view the source code for javax.management MBeanOperationInfo ACTION_INFO.

Click Source Link

Document

Indicates that the operation is both read-like and write-like: it has an effect, and it also returns information from the MBean.

Usage

From source file:com.cyberway.issue.crawler.Heritrix.java

/**
 * Build up the MBean info for Heritrix main.
 * @return Return created mbean info instance.
 *//*from   w  ww.j a  v  a 2 s  .  c o  m*/
protected OpenMBeanInfoSupport buildMBeanInfo() {
    OpenMBeanAttributeInfoSupport[] attributes = new OpenMBeanAttributeInfoSupport[Heritrix.ATTRIBUTE_LIST
            .size()];
    OpenMBeanConstructorInfoSupport[] constructors = new OpenMBeanConstructorInfoSupport[1];
    OpenMBeanOperationInfoSupport[] operations = new OpenMBeanOperationInfoSupport[Heritrix.OPERATION_LIST
            .size()];
    MBeanNotificationInfo[] notifications = new MBeanNotificationInfo[0];

    // Attributes.
    attributes[0] = new OpenMBeanAttributeInfoSupport(Heritrix.STATUS_ATTR, "Short basic status message",
            SimpleType.STRING, true, false, false);
    // Attributes.
    attributes[1] = new OpenMBeanAttributeInfoSupport(Heritrix.VERSION_ATTR, "Heritrix version",
            SimpleType.STRING, true, false, false);
    // Attributes.
    attributes[2] = new OpenMBeanAttributeInfoSupport(Heritrix.ISRUNNING_ATTR, "Whether the crawler is running",
            SimpleType.BOOLEAN, true, false, false);
    // Attributes.
    attributes[3] = new OpenMBeanAttributeInfoSupport(Heritrix.ISCRAWLING_ATTR,
            "Whether the crawler is crawling", SimpleType.BOOLEAN, true, false, false);
    // Attributes.
    attributes[4] = new OpenMBeanAttributeInfoSupport(Heritrix.ALERTCOUNT_ATTR, "The number of alerts",
            SimpleType.INTEGER, true, false, false);
    // Attributes.
    attributes[5] = new OpenMBeanAttributeInfoSupport(Heritrix.NEWALERTCOUNT_ATTR, "The number of new alerts",
            SimpleType.INTEGER, true, false, false);
    // Attributes.
    attributes[6] = new OpenMBeanAttributeInfoSupport(Heritrix.CURRENTJOB_ATTR,
            "The name of the job currently being crawled", SimpleType.STRING, true, false, false);

    // Constructors.
    constructors[0] = new OpenMBeanConstructorInfoSupport("HeritrixOpenMBean",
            "Constructs Heritrix OpenMBean instance ", new OpenMBeanParameterInfoSupport[0]);

    // Operations.
    operations[0] = new OpenMBeanOperationInfoSupport(Heritrix.START_OPER, "Start Heritrix instance", null,
            SimpleType.VOID, MBeanOperationInfo.ACTION);

    operations[1] = new OpenMBeanOperationInfoSupport(Heritrix.STOP_OPER, "Stop Heritrix instance", null,
            SimpleType.VOID, MBeanOperationInfo.ACTION);

    OpenMBeanParameterInfo[] args = new OpenMBeanParameterInfoSupport[1];
    args[0] = new OpenMBeanParameterInfoSupport("threadName", "Name of thread to send interrupt",
            SimpleType.STRING);
    operations[2] = new OpenMBeanOperationInfoSupport(Heritrix.INTERRUPT_OPER,
            "Send thread an interrupt " + "(Used debugging)", args, SimpleType.STRING,
            MBeanOperationInfo.ACTION_INFO);

    operations[3] = new OpenMBeanOperationInfoSupport(Heritrix.START_CRAWLING_OPER,
            "Set Heritrix instance " + "into crawling mode", null, SimpleType.VOID, MBeanOperationInfo.ACTION);

    operations[4] = new OpenMBeanOperationInfoSupport(Heritrix.STOP_CRAWLING_OPER,
            "Unset Heritrix instance " + " crawling mode", null, SimpleType.VOID, MBeanOperationInfo.ACTION);

    args = new OpenMBeanParameterInfoSupport[4];
    args[0] = new OpenMBeanParameterInfoSupport("pathOrURL", "Path/URL to order or jar of order+seed",
            SimpleType.STRING);
    args[1] = new OpenMBeanParameterInfoSupport("name", "Basename for new job", SimpleType.STRING);
    args[2] = new OpenMBeanParameterInfoSupport("description", "Description to save with new job",
            SimpleType.STRING);
    args[3] = new OpenMBeanParameterInfoSupport("seeds", "Initial seed(s)", SimpleType.STRING);
    operations[5] = new OpenMBeanOperationInfoSupport(Heritrix.ADD_CRAWL_JOB_OPER, "Add new crawl job", args,
            SimpleType.STRING, MBeanOperationInfo.ACTION_INFO);

    args = new OpenMBeanParameterInfoSupport[4];
    args[0] = new OpenMBeanParameterInfoSupport("uidOrName", "Job UID or profile name", SimpleType.STRING);
    args[1] = new OpenMBeanParameterInfoSupport("name", "Basename for new job", SimpleType.STRING);
    args[2] = new OpenMBeanParameterInfoSupport("description", "Description to save with new job",
            SimpleType.STRING);
    args[3] = new OpenMBeanParameterInfoSupport("seeds", "Initial seed(s)", SimpleType.STRING);
    operations[6] = new OpenMBeanOperationInfoSupport(Heritrix.ADD_CRAWL_JOB_BASEDON_OPER,
            "Add a new crawl job based on passed Job UID or profile", args, SimpleType.STRING,
            MBeanOperationInfo.ACTION_INFO);

    args = new OpenMBeanParameterInfoSupport[1];
    args[0] = new OpenMBeanParameterInfoSupport("UID", "Job UID", SimpleType.STRING);
    operations[7] = new OpenMBeanOperationInfoSupport(DELETE_CRAWL_JOB_OPER, "Delete/stop this crawl job", args,
            SimpleType.VOID, MBeanOperationInfo.ACTION);

    args = new OpenMBeanParameterInfoSupport[1];
    args[0] = new OpenMBeanParameterInfoSupport("index", "Zero-based index into array of alerts",
            SimpleType.INTEGER);
    operations[8] = new OpenMBeanOperationInfoSupport(Heritrix.ALERT_OPER, "Return alert at passed index", args,
            SimpleType.STRING, MBeanOperationInfo.ACTION_INFO);

    try {
        this.jobCompositeType = new CompositeType("job", "Job attributes", JOB_KEYS,
                new String[] { "Job unique ID", "Job name", "Job status" },
                new OpenType[] { SimpleType.STRING, SimpleType.STRING, SimpleType.STRING });
        this.jobsTabularType = new TabularType("jobs", "List of jobs", this.jobCompositeType,
                new String[] { "uid" });
    } catch (OpenDataException e) {
        // This should never happen.
        throw new RuntimeException(e);
    }
    operations[9] = new OpenMBeanOperationInfoSupport(Heritrix.PENDING_JOBS_OPER,
            "List of pending jobs (or null if none)", null, this.jobsTabularType, MBeanOperationInfo.INFO);
    operations[10] = new OpenMBeanOperationInfoSupport(Heritrix.COMPLETED_JOBS_OPER,
            "List of completed jobs (or null if none)", null, this.jobsTabularType, MBeanOperationInfo.INFO);

    args = new OpenMBeanParameterInfoSupport[2];
    args[0] = new OpenMBeanParameterInfoSupport("uid", "Job unique ID", SimpleType.STRING);
    args[1] = new OpenMBeanParameterInfoSupport("name", "Report name (e.g. crawl-report, etc.)",
            SimpleType.STRING);
    operations[11] = new OpenMBeanOperationInfoSupport(Heritrix.CRAWLEND_REPORT_OPER, "Return crawl-end report",
            args, SimpleType.STRING, MBeanOperationInfo.ACTION_INFO);

    operations[12] = new OpenMBeanOperationInfoSupport(Heritrix.SHUTDOWN_OPER, "Shutdown container", null,
            SimpleType.VOID, MBeanOperationInfo.ACTION);

    args = new OpenMBeanParameterInfoSupport[2];
    args[0] = new OpenMBeanParameterInfoSupport("level", "Log level: e.g. SEVERE, WARNING, etc.",
            SimpleType.STRING);
    args[1] = new OpenMBeanParameterInfoSupport("message", "Log message", SimpleType.STRING);
    operations[13] = new OpenMBeanOperationInfoSupport(Heritrix.LOG_OPER, "Add a log message", args,
            SimpleType.VOID, MBeanOperationInfo.ACTION);

    operations[14] = new OpenMBeanOperationInfoSupport(Heritrix.DESTROY_OPER, "Destroy Heritrix instance", null,
            SimpleType.VOID, MBeanOperationInfo.ACTION);

    operations[15] = new OpenMBeanOperationInfoSupport(Heritrix.TERMINATE_CRAWL_JOB_OPER,
            "Returns false if no current job", null, SimpleType.BOOLEAN, MBeanOperationInfo.ACTION);

    operations[16] = new OpenMBeanOperationInfoSupport(Heritrix.REBIND_JNDI_OPER,
            "Rebinds this Heritrix with JNDI.", null, SimpleType.VOID, MBeanOperationInfo.ACTION);

    // Build the info object.
    return new OpenMBeanInfoSupport(this.getClass().getName(), "Heritrix Main OpenMBean", attributes,
            constructors, operations, notifications);
}