KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > com > caucho > server > resin > ThreadPoolAdmin


1 /*
2  * Copyright (c) 1998-2006 Caucho Technology -- all rights reserved
3  *
4  * This file is part of Resin(R) Open Source
5  *
6  * Each copy or derived work must preserve the copyright notice and this
7  * notice unmodified.
8  *
9  * Resin Open Source is free software; you can redistribute it and/or modify
10  * it under the terms of the GNU General Public License as published by
11  * the Free Software Foundation; either version 2 of the License, or
12  * (at your option) any later version.
13  *
14  * Resin Open Source is distributed in the hope that it will be useful,
15  * but WITHOUT ANY WARRANTY; without even the implied warranty of
16  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE, or any warranty
17  * of NON-INFRINGEMENT. See the GNU General Public License for more
18  * details.
19  *
20  * You should have received a copy of the GNU General Public License
21  * along with Resin Open Source; if not, write to the
22  *
23  * Free Software Foundation, Inc.
24  * 59 Temple Place, Suite 330
25  * Boston, MA 02111-1307 USA
26  *
27  * @author Scott Ferguson
28  */

29
30 package com.caucho.server.resin;
31
32 import com.caucho.management.server.AbstractManagedObject;
33 import com.caucho.management.server.ThreadPoolMXBean;
34 import com.caucho.util.L10N;
35 import com.caucho.util.ThreadPool;
36
37 import java.util.logging.Logger JavaDoc;
38
39 public class ThreadPoolAdmin extends AbstractManagedObject
40   implements ThreadPoolMXBean
41 {
42   private static final L10N L = new L10N(ThreadPoolAdmin.class);
43   private static final Logger JavaDoc log
44     = Logger.getLogger(ThreadPoolAdmin.class.getName());
45
46   private static ThreadPoolAdmin _admin;
47
48   private final ThreadPool _threadPool;
49
50   private ThreadPoolAdmin(ThreadPool threadPool)
51   {
52     _threadPool = threadPool;
53     
54     registerSelf();
55   }
56
57   /**
58    * The registration needs to be controlled externally to make
59    * the timing work correctly.
60    */

61   public static ThreadPoolMXBean create()
62   {
63     if (_admin == null)
64       _admin = new ThreadPoolAdmin(ThreadPool.getThreadPool());
65
66     return _admin;
67   }
68
69   /**
70    * The thread pool is unique so it doesn't have a name.
71    */

72   public String JavaDoc getName()
73   {
74     return null;
75   }
76
77   /**
78    * Returns the maximum number of threads.
79    */

80   public int getThreadMax()
81   {
82     return _threadPool.getThreadMax();
83   }
84
85   /**
86    * Returns the minimum number of idle threads.
87    */

88   public int getThreadIdleMin()
89   {
90     return _threadPool.getThreadIdleMin();
91   }
92
93   /**
94    * Returns the maximum number of idle threads.
95    */

96   public int getThreadIdleMax()
97   {
98     return _threadPool.getThreadIdleMax();
99   }
100
101   /**
102    * Returns the total number of threads.
103    */

104   public int getThreadCount()
105   {
106     return _threadPool.getThreadCount();
107   }
108
109   /**
110    * Returns the current number of active threads.
111    */

112   public int getThreadActiveCount()
113   {
114     return _threadPool.getThreadActiveCount();
115   }
116
117   /**
118    * Returns the current number of idle threads.
119    */

120   public int getThreadIdleCount()
121   {
122     return _threadPool.getThreadIdleCount();
123   }
124 }
125
Popular Tags