Package com.prancingdonkey.component

Source Code of com.prancingdonkey.component.XmlStatisticsComponent

package com.prancingdonkey.component;

import java.io.StringWriter;
import java.util.Collections;

import org.mule.api.MuleContext;
import org.mule.api.MuleEventContext;
import org.mule.api.construct.FlowConstruct;
import org.mule.api.lifecycle.Callable;
import org.mule.management.stats.AllStatistics;
import org.mule.management.stats.FlowConstructStatistics;
import org.mule.management.stats.printers.XMLPrinter;
import org.mule.transport.NullPayload;

/**
* Returns all the statistics of a Mule instance as a string.
*/
public class XmlStatisticsComponent implements Callable {
    public Object onCall(final MuleEventContext eventContext) throws Exception {
        final StringWriter xmlStatisticsWriter = new StringWriter();

        final Object payload = eventContext.getMessage().getPayload();

        final MuleContext muleContext = eventContext.getMuleContext();

        if (payload instanceof NullPayload) {
            // <start id="lis_12_context_statistics"/>
            final AllStatistics allStatistics = muleContext.getStatistics();

            allStatistics.logSummary(new XMLPrinter(xmlStatisticsWriter));
            // <end id="lis_12_context_statistics"/>
        } else {
            final String flowName = payload.toString();

            // <start id="lis_12_registry_flow_statistics"/>
            final FlowConstruct flow = muleContext.getRegistry()
                    .lookupFlowConstruct(flowName);

            FlowConstructStatistics flowStatistics = flow.getStatistics();
            new XMLPrinter(xmlStatisticsWriter)
                    .print(Collections.singleton(flowStatistics));
            // <end id="lis_12_registry_flow_statistics"/>
        }

        return xmlStatisticsWriter.toString();
    }

}
TOP

Related Classes of com.prancingdonkey.component.XmlStatisticsComponent

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.