blob: a18b08d70fe19290f65e4a7ff127a11b63fc7fa6 [file] [log] [blame]
/*
* 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);
}