Provides the classes which implement advanced dynamic loading. See the chapter Advanced Dynamic Loading in the JMX Specification.
An MBean that is of a subclass of {@link java.lang.ClassLoader} can be used as a class loader to create other MBeans via the method {@link javax.management.MBeanServer#createMBean(String, ObjectName, ObjectName, Object[], String[])}, and to instantiate arbitrary objects via the method {@link javax.management.MBeanServer#instantiate(String, ObjectName, Object[], String[])}. The {@link javax.management.loading.MLet MLet} class is an example of such an MBean. It is a {@link java.net.URLClassLoader URLClassLoader}, so the list of URLs to load classes from can be configured.
Additionally, an MLet
can read a configuration
file that specifies a set of MBeans to be registered in the same
MBean Server as the MLet
.
Every MBean Server has a class loader repository
containing all MBeans registered in that MBean Server that
are of a subclass of {@link java.lang.ClassLoader}. The class
loader repository is used by the forms of the
createMBean
and instantiate
methods
in the {@link javax.management.MBeanServer MBeanServer}
interface that do not have an explicit loader parameter. It
is also used by the MLet
class when it does not
find a class in its own set of URLs.
If an MBean implements the interface {@link
javax.management.loading.PrivateClassLoader PrivateClassLoader},
then it is not added to the class loader repository. The class
{@link javax.management.loading.PrivateMLet PrivateMLet} is a
subclass of MLet
that implements
PrivateClassLoader
.
@see Java Platform documentation on JMX technology, in particular the JMX Specification, version 1.4(pdf). @since 1.5