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

org.osgi.framework.FrameworkEvent Maven / Gradle / Ivy

There is a newer version: 1.9.22.1
Show newest version
/*
 * Copyright (c) OSGi Alliance (2004, 2020). All Rights Reserved.
 * 
 * Licensed 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 org.osgi.framework;

import java.util.EventObject;

import org.osgi.framework.startlevel.FrameworkStartLevel;
import org.osgi.framework.wiring.FrameworkWiring;

/**
 * A general event from the Framework.
 * 
 * 

* {@code FrameworkEvent} objects are delivered to {@code FrameworkListener}s * when a general event occurs within the OSGi environment. A type code is used * to identify the event type for future extendability. * *

* OSGi Alliance reserves the right to extend the set of event types. * * @Immutable * @see FrameworkListener * @author $Id: bcff0614c20b454723977355f99486ca01ee89ea $ */ public class FrameworkEvent extends EventObject { static final long serialVersionUID = 207051004521261705L; /** * Bundle related to the event. */ private final Bundle bundle; /** * Exception related to the event. */ private final Throwable throwable; /** * Type of event. */ private final int type; /** * The Framework has started. * *

* This event is fired when the Framework has started after all installed * bundles that are marked to be started have been started and the Framework * has reached the initial start level. The source of this event is the * System Bundle. * * @see "The Start Level Specification" */ public final static int STARTED = 0x00000001; /** * An error has occurred. * *

* There was an error associated with a bundle. */ public final static int ERROR = 0x00000002; /** * A FrameworkWiring.refreshBundles operation has completed. * *

* This event is fired when the Framework has completed the refresh bundles * operation initiated by a call to the FrameworkWiring.refreshBundles * method. The source of this event is the System Bundle. * * @since 1.2 * @see FrameworkWiring#refreshBundles(java.util.Collection, * FrameworkListener...) */ public final static int PACKAGES_REFRESHED = 0x00000004; /** * A FrameworkStartLevel.setStartLevel operation has completed. * *

* This event is fired when the Framework has completed changing the active * start level initiated by a call to the StartLevel.setStartLevel method. * The source of this event is the System Bundle. * * @since 1.2 * @see FrameworkStartLevel#setStartLevel(int, FrameworkListener...) */ public final static int STARTLEVEL_CHANGED = 0x00000008; /** * A warning has occurred. * *

* There was a warning associated with a bundle. * * @since 1.3 */ public final static int WARNING = 0x00000010; /** * An informational event has occurred. * *

* There was an informational event associated with a bundle. * * @since 1.3 */ public final static int INFO = 0x00000020; /** * The Framework has stopped. * *

* This event is fired when the Framework has been stopped because of a stop * operation on the system bundle. The source of this event is the System * Bundle. * * @since 1.5 */ public final static int STOPPED = 0x00000040; /** * The Framework has stopped during update. * *

* This event is fired when the Framework has been stopped because of an * update operation on the system bundle. The Framework will be restarted * after this event is fired. The source of this event is the System Bundle. * * @since 1.5 */ public final static int STOPPED_UPDATE = 0x00000080; /** * The Framework has stopped and the boot class path has changed. *

* This event is fired when the Framework has been stopped because of a stop * operation on the system bundle and a bootclasspath extension bundle has * been installed or updated. The source of this event is the System Bundle. * * @since 1.5 * @deprecated As of 1.10. */ public final static int STOPPED_BOOTCLASSPATH_MODIFIED = 0x00000100; /** * The Framework did not stop before the wait timeout expired. * *

* This event is fired when the Framework did not stop before the wait * timeout expired. The source of this event is the System Bundle. * * @since 1.5 */ public final static int WAIT_TIMEDOUT = 0x00000200; /** * The Framework has stopped and the framework requires a new class loader * to restart. *

* This event is fired when the Framework has been stopped because of a * refresh operation on the system bundle and the framework requires a new * class loader to be used to restart. For example, if a framework extension * bundle has been refreshed. The source of this event is the System Bundle. * * @since 1.9 */ public final static int STOPPED_SYSTEM_REFRESHED = 0x00000400; /** * Creates a Framework event. * * @param type The event type. * @param source The event source object. This may not be {@code null}. * @deprecated As of 1.2. This constructor is deprecated in favor of using * the other constructor with the System Bundle as the event * source. */ public FrameworkEvent(int type, Object source) { super(source); this.type = type; this.bundle = null; this.throwable = null; } /** * Creates a Framework event regarding the specified bundle. * * @param type The event type. * @param bundle The event source. * @param throwable The related exception. This argument may be {@code null} * if there is no related exception. */ public FrameworkEvent(int type, Bundle bundle, Throwable throwable) { super(bundle); this.type = type; this.bundle = bundle; this.throwable = throwable; } /** * Returns the exception related to this event. * * @return The related exception or {@code null} if none. */ public Throwable getThrowable() { return throwable; } /** * Returns the bundle associated with the event. This bundle is also the * source of the event. * * @return The bundle associated with the event. */ public Bundle getBundle() { return bundle; } /** * Returns the type of framework event. *

* The type values are: *

    *
  • {@link #STARTED}
  • *
  • {@link #ERROR}
  • *
  • {@link #WARNING}
  • *
  • {@link #INFO}
  • *
  • {@link #PACKAGES_REFRESHED}
  • *
  • {@link #STARTLEVEL_CHANGED}
  • *
  • {@link #STOPPED}
  • *
  • {@link #STOPPED_UPDATE}
  • *
  • {@link #WAIT_TIMEDOUT}
  • *
* * @return The type of state change. */ public int getType() { return type; } }




© 2015 - 2024 Weber Informatics LLC | Privacy Policy