001: /* JFox, the OpenSource J2EE Application Server
002: *
003: * Copyright (C) 2002 huihoo.org
004: * Distributable under GNU LGPL license
005: * See the GNU Lesser General Public License for more details.
006: */
007:
008: package javax.management.loading;
009:
010: import java.util.Set;
011: import java.util.Enumeration;
012: import java.net.URL;
013: import java.io.InputStream;
014: import java.io.IOException;
015:
016: import javax.management.ServiceNotFoundException;
017:
018: /**
019: * Exposes the remote management interface of the MLet MBean.
020: *
021: * @author <a href="mailto:young_yy@hotmail.org">Young Yang</a>
022: */
023:
024: public interface MLetMBean {
025:
026: /**
027: * Loads a text file containing MLET tags that define the MBeans to be added to the agent.
028: * The location of the text file is specified by a URL. The MBeans specified in the
029: * MLET file will be instantiated and registered by the MBeanServer.
030: *
031: * @param url The URL of the text file to be loaded as String object.
032: * @return A set containing one entry per MLET tag in the m-let text file loaded.
033: * Each entry specifies either the ObjectInstance for the created MBean,
034: * or a throwable object (that is, an error or an exception) if the MBean
035: * could not be created.
036: * @throws ServiceNotFoundException One of the following errors has occurred:
037: * The m-let text file does not contain an MLET tag,
038: * the m-let text file is not found, a mandatory attribute of
039: * the MLET tag is not specified, the value of url is null.
040: */
041: public Set getMBeansFromURL(URL url)
042: throws ServiceNotFoundException;
043:
044: /**
045: * Loads a text file containing MLET tags that define the MBeans to be added to the agent.
046: * The location of the text file is specified by a URL. The MBeans specified in the
047: * MLET file will be instantiated and registered by the MBeanServer.
048: *
049: * @param url The URL of the text file to be loaded as String object.
050: * @return A set containing one entry per MLET tag in the m-let text file loaded.
051: * Each entry specifies either the ObjectInstance for the created MBean,
052: * or a throwable object (that is, an error or an exception) if the MBean
053: * could not be created.
054: * @throws ServiceNotFoundException One of the following errors has occurred:
055: * The m-let text file does not contain an MLET tag,
056: * the m-let text file is not found, a mandatory attribute of the MLET tag
057: * is not specified, the value of url is malformed.
058: */
059: public Set getMBeansFromURL(String url)
060: throws ServiceNotFoundException;
061:
062: /**
063: * Appends the specified URL to the list of URLs to search for classes and resources.
064: */
065: public void addURL(URL url);
066:
067: /**
068: * Appends the specified URL to the list of URLs to search for classes and resources.
069: * @throws ServiceNotFoundException The specified URL is malformed.
070: */
071: public void addURL(String url) throws ServiceNotFoundException;
072:
073: /**
074: * Returns the search path of URLs for loading classes and resources.
075: * This includes the ORIGINAL list of URLs specified to the constructor,
076: * along with any URLs subsequently appended by the addURL() method.
077: */
078: public URL[] getURLs();
079:
080: /**
081: * Finds the resource with the given name. A resource is some data (images, audio, text, etc)
082: * that can be accessed by class code in a way that is independent of the location of
083: * the code. The name of a resource is a "/"-separated path name that identifies the resource.
084: *
085: * @param name The resource name
086: * @return An URL for reading the resource, or null if the resource could not
087: * be found or the caller doesn't have adequate privileges to get the resource.
088: */
089: public URL getResource(String name);
090:
091: /**
092: * Returns an input stream for reading the specified resource.
093: * The search order is described in the documentation for getResource(String).
094: *
095: * @param name The resource name
096: * @return An input stream for reading the resource, or null if the resource could not be found.
097: */
098: public InputStream getResourceAsStream(String name);
099:
100: /**
101: * Finds all the resources with the given name.
102: * A resource is some data (images, audio, text, etc) that can be accessed by
103: * class code in a way that is independent of the location of the code.
104: * The name of a resource is a "/"-separated path name that identifies the resource.
105: *
106: * @param name The resource name.
107: * @return An enumeration of URL to the resource.
108: * If no resources could be found, the enumeration will be empty.
109: * Resources that the doesn't have access to will not be in the enumeration.
110: * @throws IOException
111: */
112: public Enumeration getResources(String name) throws IOException;
113:
114: /**
115: * Gets the current directory used by the library loader for storing native libraries
116: * before they are loaded into memory.
117: *
118: * @return The current directory used by the library loader.
119: */
120: public String getLibraryDirectory();
121:
122: /**
123: * Sets the directory used by the library loader for storing native libraries
124: * before they are loaded into memory.
125: */
126: public void setLibraryDirectory(String dir);
127:
128: }
|