001: /*
002: * BEGIN_HEADER - DO NOT EDIT
003: *
004: * The contents of this file are subject to the terms
005: * of the Common Development and Distribution License
006: * (the "License"). You may not use this file except
007: * in compliance with the License.
008: *
009: * You can obtain a copy of the license at
010: * https://open-esb.dev.java.net/public/CDDLv1.0.html.
011: * See the License for the specific language governing
012: * permissions and limitations under the License.
013: *
014: * When distributing Covered Code, include this CDDL
015: * HEADER in each file and include the License file at
016: * https://open-esb.dev.java.net/public/CDDLv1.0.html.
017: * If applicable add the following below this CDDL HEADER,
018: * with the fields enclosed by brackets "[]" replaced with
019: * your own identifying information: Portions Copyright
020: * [year] [name of copyright owner]
021: */
022:
023: /*
024: * @(#)InstallationServiceMBean.java
025: * Copyright 2004-2007 Sun Microsystems, Inc. All Rights Reserved.
026: *
027: * END_HEADER - DO NOT EDIT
028: */
029: package javax.jbi.management;
030:
031: import javax.management.ObjectName;
032:
033: /**
034: * The installation service MBean allows administrative tools to manage
035: * component and shared library installations. The tasks supported are:
036: * <ul>
037: * <li>Installing (and uninstalling) a shared library</li>
038: * <li>Creating (loading) and destroying (unloading) a component installer
039: * MBean.</li>
040: * <li>Finding an existing component installer MBean.
041: * </ul>
042: *
043: * Installing and uninstalling components is accomplished using
044: * {@link InstallerMBean}s, loaded by this MBean. An individual installer MBean
045: * is needed for each component installation / uninstallation. This is to support
046: * the more complex installation process that some components require.
047: *
048: * @author JSR208 Expert Group
049: */
050: public interface InstallationServiceMBean {
051: /**
052: * Load the installer for a new component for the given component
053: * installation package.
054: *
055: * @param installZipURL URL locating a ZIP file containing the
056: * JBI Installation package to be installed; must be non-null,
057: * non-empty, and a legal URL
058: * @return the JMX ObjectName of the InstallerMBean loaded from
059: * installZipURL; must be non-null
060: */
061: ObjectName loadNewInstaller(String installZipURL);
062:
063: /**
064: * Load the InstallerMBean for a previously installed component.
065: * <p>
066: * The "component name" refers to the
067: * <code><identification><name></code> element value from the
068: * component's installation package (see {@link #loadNewInstaller(String)}).
069: *
070: * @param componentName the component name identifying the installer to
071: * load; must be non-null and non-empty
072: * @return the JMX ObjectName of the InstallerMBean loaded from an existing
073: * installation context; <code>null</code> if the installer MBean
074: * doesn't exist
075: */
076: ObjectName loadInstaller(String componentName);
077:
078: /**
079: * Unload an InstallerMBean previously loaded for a component.
080: *
081: * @param componentName the component name identifying the installer to
082: * unload; must be non-null and non-empty
083: * @param isToBeDeleted <code>true</code> if the component is to be deleted
084: * as well
085: * @return true if the operation was successful, otherwise false
086: */
087: boolean unloadInstaller(String componentName, boolean isToBeDeleted);
088:
089: /**
090: * Install a shared library installation package.
091: * <p>
092: * The return value is the unique name for the shared-library, as found
093: * in the the value of the installation descriptor's
094: * <code><identification><name></code> element.
095: *
096: * @param slZipURL URL locating a zip file containing a shared library
097: * installation package; must be non-null, non-empty, and a legal
098: * URL
099: * @return the unique name of the shared library loaded from slZipURL; must
100: * be non-null and non-empty
101: */
102: String installSharedLibrary(String slZipURL);
103:
104: /**
105: * Uninstall a previously installed shared library.
106: *
107: * @param slName the name of the shared name space to uninstall; must be
108: * non-null and non-empty
109: * @return true if the uninstall was successful
110: */
111: boolean uninstallSharedLibrary(String slName);
112: }
|