java.lang.management
Class ManagementFactory
 
 Provides access to the system's management beans via a series
 of static methods.  
 
 
 An instance of a system management bean can be obtained by
 using one of the following methods:
 
 
- Calling the appropriate static method of this factory.
 
 - Using the platform 
MBeanServer
 to access the beans locally, or an
MBeanServerConnection for remote
  access.  The attributes and operations use the limited
 range of data types specified below. 
 Open Data Types
 
 The data types used by the management beans are restricted
 to 
open data types to aid interoperability.  This
 allows the beans to be accessed remotely, including from non-Java
 clients.  Below is a table which lists the types used by the beans
 on the left, and the types they are converted to when returned via
 a bean server on the right.  Type information is provided for each
 bean by obtaining its instance of 
MBeanInfo.
 
 
 | Data Type Used | Data Type Returned | Primitive types (int, char, etc.) | Same | 
| Wrapper classes (,
 | 
clone, equals, extends Object> getClass, finalize, hashCode, notify, notifyAll, toString, wait, wait, wait | 
THREAD_MXBEAN_NAME
public static final String THREAD_MXBEAN_NAME
 The object name for the threading bean.
- "java.lang:type=Threading"
 
T newPlatformMXBeanProxy
public static  T newPlatformMXBeanProxy(MBeanServerConnection connection,
                                           String mxbeanName,
                                           Class mxbeanInterface)
            throws IOException
 
 Returns a proxy for the specified platform bean.  A proxy object is created
 using 
Proxy.newProxyInstance(mxbeanInterface.getClassLoader(),
 new Class[] { mxbeanInterface }, handler).  The
NotificationEmitter class is also added to the
  array if the bean provides notifications.  
handler refers
 to the invocation handler which forwards calls to the connection, and
 also provides translation between the Java data types used in the
 bean interfaces and the open data types, as specified in the description
 of this class.  It is this translation that makes the
 usual 
MBeanServerInvocationHandler inappropriate
 for providing such a proxy.
 
 
 Note: use of the proxy may result in
IOExceptions from the underlying 
MBeanServerConnection
  and a 
InvalidObjectException if enum constants
 used on the client and the server don't match.
 
connection - the server connection to use to access the bean.mxbeanName - the ObjectName of the
bean to provide a proxy for.mxbeanInterface - the interface for the bean being proxied.
- a proxy for the specified bean.
 
IllegalArgumentException - if mxbeanName is not a valid
ObjectName,
the interface and name do not match the
same bean, the name does not refer to a
platform bean or the bean is not registered
with the server accessed by connection.IOException - if the connection throws one.
getCompilationMXBean
public static CompilationMXBean getCompilationMXBean()
 Returns the compilation bean for the running
 virtual machine, if supported.  Otherwise,
 it returns null.
- an instance of 
CompilationMXBean for
this virtual machine, or null
if the virtual machine doesn't include
a Just-In-Time (JIT) compiler. 
getGarbageCollectorMXBeans
public static List getGarbageCollectorMXBeans()
 Returns the garbage collector beans for the running
 virtual machine.  These may change during the course
 of execution.
- a list of garbage collector beans, one for each pool.
 
getMemoryManagerMXBeans
public static List getMemoryManagerMXBeans()
 Returns the memory manager beans for the running
 virtual machine.  These may change during the course
 of execution.
- a list of memory manager beans, one for each manager.
 
getMemoryPoolMXBeans
public static List getMemoryPoolMXBeans()
 Returns the memory pool beans for the running
 virtual machine.  These may change during the course
 of execution.
- a list of memory pool beans, one for each pool.
 
getPlatformMBeanServer
public static MBeanServer getPlatformMBeanServer()
 
 Returns the platform 
MBeanServer.  On the
 first call to this method, a server instance is retrieved from
 the 
MBeanServerFactory and each of the
 beans are registered with it.  Subsequent calls return the existing
 instance.  If the property 
javax.management.builder.initial
 is set, its value will be used as the name of the class which is used
 to provide the server instance.
 
 
 It is recommended that the platform server is used for other beans as
 well, in order to simplify their discovery and publication.  Name conflicts
 should be avoided.
 
SecurityException - if a security manager exists and the
caller's permissions don't imply MBeanServerPermission(String)("createMBeanServer")
ManagementFactory.java - Factory for obtaining system beans.
   Copyright (C) 2006 Free Software Foundation
This file is part of GNU Classpath.
GNU Classpath is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2, or (at your option)
any later version.
GNU Classpath is distributed in the hope that it will be useful, but
WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
General Public License for more details.
You should have received a copy of the GNU General Public License
along with GNU Classpath; see the file COPYING.  If not, write to the
Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
02110-1301 USA.
Linking this library statically or dynamically with other modules is
making a combined work based on this library.  Thus, the terms and
conditions of the GNU General Public License cover the whole
combination.
As a special exception, the copyright holders of this library give you
permission to link this library with independent modules to produce an
executable, regardless of the license terms of these independent
modules, and to copy and distribute the resulting executable under
terms of your choice, provided that you also meet, for each linked
independent module, the terms and conditions of the license of that
module.  An independent module is a module which is not derived from
or based on this library.  If you modify this library, you may extend
this exception to your version of the library, but you are not
obligated to do so.  If you do not wish to do so, delete this
exception statement from your version.