All Downloads are FREE. Search and download functionalities are using the official Maven repository.

javax.jbi.component.Bootstrap Maven / Gradle / Ivy

The newest version!
/*
 * Licensed to the Apache Software Foundation (ASF) under one or more
 * contributor license agreements.  See the NOTICE file distributed with
 * this work for additional information regarding copyright ownership.
 * The ASF licenses this file to You under the Apache License, Version 2.0
 * (the "License"); you may not use this file except in compliance with
 * the License.  You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
package javax.jbi.component;

import javax.jbi.JBIException;

import javax.management.ObjectName;

/**
 * This interface is implemented by a JBI Component to provide any
 * special processing required at install/uninstall time. The methods
 * defined here are called by the JBI implementation during the installation
 * (or uninstallation) of the component that, among other things, supplies
 * an implementation of this interface.
 *
 * Initialization/cleanup tasks such as creation/deletion of directories,
 * files, and database tables can be done by the onInstall() and onUninstall()
 * methods, respectively. This also allows the component to terminate the
 * installation or uninstallation in the event of an error.
 *
 * After calling onInstall() or onUninstall(), regardless of outcome, the JBI
 * implementation must call the cleanUp() method afterwards. Similarly, if
 * init(InstallationContext) fails with an exception, the JBI implementation
 * must call the cleanUp() method.
 *
 * Component implementors should note that there is no guarantee that the same
 * instance of its Bootstrap implementation will be used during both install
 * and uninstall operations on the component. Data that need to be retained
 * between installation-time and uninstallation-time must be persisted in such
 * as fashion that a separate instance of the bootstrap class can find them,
 * despite component or system shutdown.
 *
 * @author JSR208 Exert Group
 */
public interface Bootstrap {

    /**
     * Initializes the installation environment for a component. This method is
     * expected to save any information from the installation context that may
     * be needed by other methods.
     *
     * If the component needs to register an optional installer configuration MBean,
     * it MUST do so during execution of this method, or the getExtensionMBean()
     * method.
     *
     * This method must be called after the installation root (available through
     * the installContext parameter) is prepared. 

     * @param installContext the context containing information from the install
     *                       command and from the component installation ZIP file;
     *                       this must be non-null.
     * @throws JBIException  when there is an error requiring that the installation
     *                       be terminated
     */
    void init(InstallationContext installContext) throws JBIException;

    /**
     * Cleans up any resources allocated by the bootstrap implementation,
     * including performing deregistration of the extension MBean, if applicable.
     *
     * This method must be called after the onInstall() or onUninstall() method
     * is called, whether it succeeds or fails. It must be called after init() is
     * called, if init() fails by throwing an exception.
     * 
     * @throws JBIException if the bootstrap cannot clean up allocated resources
     */
    void cleanUp() throws JBIException;

    /**
     * Obtains the ObjectName of the optional installer configuration MBean. If
     * none is provided by this component, this method must return null.
     *
     * This method must be called before onInstall() (or onUninstall()) is called
     * by the JBI implementation.
     *
     * @return ObjectName of the optional installer configuration MBean; returns null
     *         if there is no such MBean
     */
    ObjectName getExtensionMBeanName();

    /**
     * Called at the beginning of installation of a component to perform any special
     * installation tasks required by the component.
     *
     * This method must not be called if the init() method failed with an exception.
     *  
     * @throws JBIException when there is an error requiring that the installation be
     *         terminated
     */
    void onInstall() throws JBIException;

    /**
     * Called at the beginning of uninstallation of a component to perform any special
     * uninstallation tasks required by the component.
     *
     * This method must not be called if the init() method failed with an exception.
     *
     * @throws JBIException when there is an error requiring that the uninstallation be
     *         terminated.
     */
    void onUninstall() throws JBIException;
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy