blob: 1cfeef73bfa0fa155a1b24d6626fb63557d69d38 [file] [log] [blame]
<html>
<head>
<title>javax.management.loading package</title>
<!--
Copyright (c) 1999, 2011, Oracle and/or its affiliates. All rights reserved.
DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
This code is free software; you can redistribute it and/or modify it
under the terms of the GNU General Public License version 2 only, as
published by the Free Software Foundation. Oracle designates this
particular file as subject to the "Classpath" exception as provided
by Oracle in the LICENSE file that accompanied this code.
This code 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
version 2 for more details (a copy is included in the LICENSE file that
accompanied this code).
You should have received a copy of the GNU General Public License version
2 along with this work; if not, write to the Free Software Foundation,
Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
or visit www.oracle.com if you need additional information or have any
questions.
-->
</head>
<body bgcolor="white">
<p>Provides the classes which implement advanced dynamic
loading. See the chapter <em>Advanced Dynamic Loading</em> in
the <a href="#spec">JMX Specification</a>.</p>
<p>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.</p>
<p>Additionally, an <code>MLet</code> can read a configuration
file that specifies a set of MBeans to be registered in the same
MBean Server as the <code>MLet</code>.</p>
<p>Every MBean Server has a <em>class loader repository</em>
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
<code>createMBean</code> and <code>instantiate</code> methods
in the {@link javax.management.MBeanServer MBeanServer}
interface that do not have an explicit loader parameter. It
is also used by the <code>MLet</code> class when it does not
find a class in its own set of URLs.</p>
<p>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 <code>MLet</code> that implements
<code>PrivateClassLoader</code>.</p>
<p id="spec">
@see <a href="{@docRoot}/../technotes/guides/jmx/">
Java Platform documentation on JMX technology</a>,
in particular the
<a href="{@docRoot}/../technotes/guides/jmx/JMX_1_4_specification.pdf">
JMX Specification, version 1.4(pdf).</a>
@since 1.5
</BODY>
</HTML>