View Javadoc

1   /*
2    * $Id: StatisticsService.java 7976 2007-08-21 14:26:13Z dirk.olmes $
3    * --------------------------------------------------------------------------------------
4    * Copyright (c) MuleSource, Inc.  All rights reserved.  http://www.mulesource.com
5    *
6    * The software in this package is published under the terms of the CPAL v1.0
7    * license, a copy of which has been included with this distribution in the
8    * LICENSE.txt file.
9    */
10  
11  package org.mule.management.mbeans;
12  
13  import org.mule.MuleManager;
14  import org.mule.management.stats.AllStatistics;
15  import org.mule.management.stats.printers.CSVPrinter;
16  import org.mule.management.stats.printers.HtmlTablePrinter;
17  import org.mule.management.stats.printers.XMLPrinter;
18  import org.mule.umo.manager.UMOManager;
19  
20  import java.io.StringWriter;
21  import java.util.Collection;
22  
23  import org.apache.commons.logging.Log;
24  import org.apache.commons.logging.LogFactory;
25  
26  /**
27   * <code>StatisicsService</code> exposes Mule processing statistics
28   */
29  public class StatisticsService implements StatisticsServiceMBean
30  {
31      /**
32       * Serial version
33       */
34      private static final long serialVersionUID = -4949499389883146363L;
35  
36      /**
37       * logger used by this class
38       */
39      protected static final Log logger = LogFactory.getLog(StatisticsService.class);
40  
41      private AllStatistics stats = new AllStatistics();
42      private MuleManager manager = null;
43  
44      public void setManager(UMOManager manager)
45      {
46          this.manager = (MuleManager)manager;
47          if (manager == null)
48          {
49              stats = new AllStatistics();
50          }
51          else
52          {
53              stats = this.manager.getStatistics();
54          }
55  
56      }
57  
58      /**
59       * @see org.mule.management.stats.Statistics#clear()
60       */
61      public void clear()
62      {
63          stats.clear();
64      }
65  
66      /**
67       * @see org.mule.management.stats.Statistics#isEnabled()
68       */
69      public boolean isEnabled()
70      {
71          return stats.isEnabled();
72      }
73  
74      /**
75       * @see org.mule.management.stats.Statistics#setEnabled(boolean)
76       */
77      public void setEnabled(boolean b)
78      {
79          stats.setEnabled(b);
80  
81      }
82  
83      public Collection getComponentStatistics()
84      {
85          return stats.getComponentStatistics();
86      }
87  
88      public void logSummary()
89      {
90          stats.logSummary();
91      }
92  
93      public String printCSVSummary ()
94      {
95          StringWriter w = new StringWriter(2048);
96          CSVPrinter printer = new CSVPrinter(w);
97          printer.setPrintHeaders(true);
98          stats.logSummary(printer);
99          return w.toString();
100     }
101 
102     public String printHtmlSummary ()
103     {
104         StringWriter w = new StringWriter(8192);
105         HtmlTablePrinter printer = new HtmlTablePrinter(w);
106         stats.logSummary(printer);
107         return w.toString();
108     }
109 
110     public String printXmlSummary ()
111     {
112         StringWriter w = new StringWriter(8192);
113         XMLPrinter printer = new XMLPrinter(w);
114         stats.logSummary(printer);
115         return w.toString();
116     }
117 }