/* | 
|
 * Copyright (c) 1999, 2006, 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. | 
|
*/  | 
|
package javax.management.loading;  | 
|
import java.net.URL;  | 
|
import java.io.InputStream;  | 
|
import java.io.IOException;  | 
|
import java.util.Set;  | 
|
import java.util.Enumeration;  | 
|
import javax.management.*;  | 
|
/** | 
|
 * Exposes the remote management interface of the MLet | 
|
 * MBean. | 
|
 * | 
|
 * @since 1.5 | 
|
*/  | 
|
public interface MLetMBean   { | 
|
    /** | 
|
     * Loads a text file containing MLET tags that define the MBeans | 
|
     * to be added to the MBean server. The location of the text file is | 
|
     * specified by a URL. The text file is read using the UTF-8 | 
|
     * encoding. The MBeans specified in the MLET file will be | 
|
     * instantiated and registered in the MBean server. | 
|
     * | 
|
     * @param url The URL of the text file to be loaded as String object. | 
|
     * | 
|
     * @return A set containing one entry per MLET tag in the m-let | 
|
     * text file loaded.  Each entry specifies either the | 
|
     * ObjectInstance for the created MBean, or a throwable object | 
|
     * (that is, an error or an exception) if the MBean could not be | 
|
     * created. | 
|
     * | 
|
     * @exception ServiceNotFoundException One of the following errors | 
|
     * has occurred: The m-let text file does not contain an MLET tag, | 
|
     * the m-let text file is not found, a mandatory attribute of the | 
|
     * MLET tag is not specified, the value of url is malformed. | 
|
*/  | 
|
public Set<Object> getMBeansFromURL(String url)  | 
|
throws ServiceNotFoundException;  | 
|
    /** | 
|
     * Loads a text file containing MLET tags that define the MBeans | 
|
     * to be added to the MBean server. The location of the text file is | 
|
     * specified by a URL. The text file is read using the UTF-8 | 
|
     * encoding. The MBeans specified in the MLET file will be | 
|
     * instantiated and registered in the MBean server. | 
|
     * | 
|
     * @param url The URL of the text file to be loaded as URL object. | 
|
     * | 
|
     * @return A set containing one entry per MLET tag in the m-let | 
|
     * text file loaded.  Each entry specifies either the | 
|
     * ObjectInstance for the created MBean, or a throwable object | 
|
     * (that is, an error or an exception) if the MBean could not be | 
|
     * created. | 
|
     * | 
|
     * @exception ServiceNotFoundException One of the following errors | 
|
     * has occurred: The m-let text file does not contain an MLET tag, | 
|
     * the m-let text file is not found, a mandatory attribute of the | 
|
     * MLET tag is not specified, the value of url is null. | 
|
*/  | 
|
public Set<Object> getMBeansFromURL(URL url)  | 
|
throws ServiceNotFoundException;  | 
|
    /** | 
|
     * Appends the specified URL to the list of URLs to search for classes and | 
|
     * resources. | 
|
     * | 
|
     * @param url the URL to add. | 
|
*/  | 
|
public void addURL(URL url) ;  | 
|
    /** | 
|
     * Appends the specified URL to the list of URLs to search for classes and | 
|
     * resources. | 
|
     * | 
|
     * @param url the URL to add. | 
|
     * | 
|
     * @exception ServiceNotFoundException The specified URL is malformed. | 
|
*/  | 
|
public void addURL(String url) throws ServiceNotFoundException;  | 
|
    /** | 
|
     * Returns the search path of URLs for loading classes and resources. | 
|
     * This includes the original list of URLs specified to the constructor, | 
|
     * along with any URLs subsequently appended by the addURL() method. | 
|
     * | 
|
     * @return the list of URLs. | 
|
*/  | 
|
public URL[] getURLs();  | 
|
    /** Finds the resource with the given name. | 
|
     * A resource is some data (images, audio, text, etc) that can be accessed by class code in a way that is | 
|
     *   independent of the location of the code. | 
|
     *   The name of a resource is a "/"-separated path name that identifies the resource. | 
|
     * | 
|
     * @param name The resource name | 
|
     * | 
|
     * @return  An URL for reading the resource, or null if the resource could not be found or the caller doesn't have adequate privileges to get the | 
|
     * resource. | 
|
*/  | 
|
public URL getResource(String name);  | 
|
    /** Returns an input stream for reading the specified resource. The search order is described in the documentation for | 
|
     *  getResource(String). | 
|
     * | 
|
     * @param name  The resource name | 
|
     * | 
|
     * @return An input stream for reading the resource, or null if the resource could not be found | 
|
     * | 
|
*/  | 
|
public InputStream getResourceAsStream(String name);  | 
|
    /** | 
|
     * Finds all the resources with the given name. A resource is some | 
|
     * data (images, audio, text, etc) that can be accessed by class | 
|
     * code in a way that is independent of the location of the code. | 
|
     * The name of a resource is a "/"-separated path name that | 
|
     * identifies the resource. | 
|
     * | 
|
     * @param name The  resource name. | 
|
     * | 
|
     * @return An enumeration of URL to the resource. If no resources | 
|
     * could be found, the enumeration will be empty. Resources that | 
|
     * cannot be accessed will not be in the enumeration. | 
|
     * | 
|
     * @exception IOException if an I/O exception occurs when | 
|
     * searching for resources. | 
|
*/  | 
|
public Enumeration<URL> getResources(String name) throws IOException;  | 
|
    /** | 
|
     * Gets the current directory used by the library loader for | 
|
     * storing native libraries before they are loaded into memory. | 
|
     * | 
|
     * @return The current directory used by the library loader. | 
|
     * | 
|
     * @see #setLibraryDirectory | 
|
     * | 
|
     * @throws UnsupportedOperationException if this implementation | 
|
     * does not support storing native libraries in this way. | 
|
*/  | 
|
public String getLibraryDirectory();  | 
|
    /** | 
|
     * Sets the directory used by the library loader for storing | 
|
     * native libraries before they are loaded into memory. | 
|
     * | 
|
     * @param libdir The directory used by the library loader. | 
|
     * | 
|
     * @see #getLibraryDirectory | 
|
     * | 
|
     * @throws UnsupportedOperationException if this implementation | 
|
     * does not support storing native libraries in this way. | 
|
*/  | 
|
public void setLibraryDirectory(String libdir);  | 
|
}  |