1 /* 2 * $Header: /cvshome/build/org.osgi.framework/src/org/osgi/framework/SynchronousBundleListener.java,v 1.15 2007/02/20 00:16:30 hargrave Exp $ 3 * 4 * Copyright (c) OSGi Alliance (2001, 2007). All Rights Reserved. 5 * 6 * Licensed under the Apache License, Version 2.0 (the "License"); 7 * you may not use this file except in compliance with the License. 8 * You may obtain a copy of the License at 9 * 10 * http://www.apache.org/licenses/LICENSE-2.0 11 * 12 * Unless required by applicable law or agreed to in writing, software 13 * distributed under the License is distributed on an "AS IS" BASIS, 14 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 15 * See the License for the specific language governing permissions and 16 * limitations under the License. 17 */ 18 19 package org.osgi.framework; 20 21 /** 22 * A synchronous <code>BundleEvent</code> listener. 23 * <code>SynchronousBundleListener</code> is a listener interface that may be 24 * implemented by a bundle developer. When a <code>BundleEvent</code> is 25 * fired, it is synchronously delivered to a 26 * <code>SynchronousBundleListener</code>. The Framework may deliver 27 * <code>BundleEvent</code> objects to a 28 * <code>SynchronousBundleListener</code> out of order and may concurrently 29 * call and/or reenter a <code>SynchronousBundleListener</code>. 30 * <p> 31 * A <code>SynchronousBundleListener</code> object is registered with the 32 * Framework using the {@link BundleContext#addBundleListener} method. 33 * <code>SynchronousBundleListener</code> objects are called with a 34 * <code>BundleEvent</code> object when a bundle has been installed, resolved, 35 * starting, started, stopping, stopped, updated, unresolved, or uninstalled. 36 * <p> 37 * Unlike normal <code>BundleListener</code> objects, 38 * <code>SynchronousBundleListener</code>s are synchronously called during 39 * bundle lifecycle processing. The bundle lifecycle processing will not proceed 40 * until all <code>SynchronousBundleListener</code>s have completed. 41 * <code>SynchronousBundleListener</code> objects will be called prior to 42 * <code>BundleListener</code> objects. 43 * <p> 44 * <code>AdminPermission[bundle,LISTENER]</code> is required to add or remove 45 * a <code>SynchronousBundleListener</code> object. 46 * 47 * @since 1.1 48 * @see BundleEvent 49 * @ThreadSafe 50 * @version $Revision: 1.15 $ 51 */ 52 53 public interface SynchronousBundleListener extends BundleListener { 54 // This is a marker interface 55 } 56