javax.jbi.management.InstallationServiceMBean Maven / Gradle / Ivy
Show all versions of petals-jbi Show documentation
/**
* @(#) InstallationServiceMBean.java
*
* PETALS - PETALS Services Platform.
* Copyright (c) 2005 Fossil E-Commerce, http://www.fossilec.com/
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* version 2.1 of the License, or (at your option) any later version.
* This library 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
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*
* -------------------------------------------------------------------------
* $Id: InstallationServiceMBean.java 243 2006-04-19 16:11:25Z ofabre $
* -------------------------------------------------------------------------
*/
//
// This source code implements specifications defined by the Java
// Community Process. In order to remain compliant with the specification
// DO NOT add / change / or delete method signatures!
//
package javax.jbi.management;
/**
* The deployment service MBean allows administrative tools to manage service
* assembly deployments. The tasks supported are:
*
* - Installing (and uninstalling) a shared library
*
- Creating (loading) and destroying (unloading) a component installer
* MBean.
*
- Finding an existing component installer MBean.
*
*
* Installing and uninstalling components is accomplished using
* {@link InstallerMBean}s, loaded by this MBean. An individual installer MBean
* is needed for each component installation / uninstallation. This is to
* support the more complex installation process that some components require.
*
* @author JSR208 Expert Group
*/
public interface InstallationServiceMBean {
/**
* TODO result must be non-null and non-empty, refactoring all failure cases
* Install a shared library installation package.
*
* The return value is the unique name for the shared-library, as found in
* the the value of the installation descriptor's
* <identification><name>
element.
*
* @param slZipURL
* URL locating a zip file containing a shared library
* installation package; must be non-null, non-empty, and a legal
* URL
* @return the unique name of the shared library loaded from slZipURL; must
* be non-null and non-empty
*/
public java.lang.String installSharedLibrary(java.lang.String slZipURL);
/**
* Load the InstallerMBean for a previously installed component.
*
* The "component name" refers to the <identification>
* <name>
element value from the component's
* installation package (see
* {@link InstallationServiceMBean#loadNewInstaller(String)}).
*
* @param componentName
* the component name identifying the installer to load; must be
* non-null and non-empty
* @return the JMX ObjectName of the InstallerMBean loaded from an existing
* installation context; null
if the installer MBean
* doesn't exist
*/
public javax.management.ObjectName loadInstaller(
java.lang.String componentName);
/**
* TODO result must be non-null. Refactoring all failure cases and algorithm
* Load the installer for a new component for the given component
* installation package.
*
* @param installZipURL
* URL locating a ZIP file containing the JBI Installation
* package to be installed; must be non-null, non-empty, and a
* legal URL
* @return the JMX ObjectName of the InstallerMBean loaded from
* installZipURL; must be non-null
*/
public javax.management.ObjectName loadNewInstaller(
java.lang.String installZipURL);
/**
* Uninstall a previously installed shared library.
*
* @param slName
* the name of the shared name space to uninstall; must be
* non-null and non-empty
* @return true if the uninstall was successful
*/
public boolean uninstallSharedLibrary(java.lang.String slName);
/**
* TODO unloadInstaller isToBeDeleted parameter isn't used at the moment : this method completly deletes the component from the container
* TODO unloadInstaller Problem with jar deletion, they can't be deleted before classloader been garbaged collected
* TODO Refactoring failure cases
*
* Unload an InstallerMBean previously loaded for a component.
*
* @param componentName
* the component name identifying the installer to unload; must
* be non-null and non-empty
* @param isToBeDeleted
* true**
* @return true if the operation was successful, otherwise false
*/
public boolean unloadInstaller(java.lang.String aComponentName,
boolean isToBeDeleted);
}