Start line:  
End line:  

Snippet Preview

Snippet HTML Code

Stack Overflow Questions
  /*
   * Copyright (c) OSGi Alliance (2008, 2013). 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.service.blueprint.container;
 
A Blueprint Event.

BlueprintEvent objects are delivered to all registered BlueprintListener services. Blueprint Events must be asynchronously delivered in chronological order with respect to each listener.

In addition, after a Blueprint Listener is registered, the Blueprint extender will synchronously send to this Blueprint Listener the last Blueprint Event for each ready Blueprint bundle managed by this extender. This replay of Blueprint Events is designed so that the new Blueprint Listener can be informed of the state of each Blueprint bundle. Blueprint Events sent during this replay will have the isReplay() flag set. The Blueprint extender must ensure that this replay phase does not interfere with new Blueprint Events so that the chronological order of all Blueprint Events received by the Blueprint Listener is preserved. If the last Blueprint Event for a given Blueprint bundle is DESTROYED, the extender must not send it during this replay phase.

A type code is used to identify the type of event. The following event types are defined:

In addition to calling the registered BlueprintListener services, the Blueprint extender must also send those events to the Event Admin service, if it is available.

Author(s):
$Id: 6155890329cf5bb2593958ad07bbb6ff9b161bc5 $
See also:
BlueprintListener
EventConstants
Immutable:
 
 public class BlueprintEvent {

The Blueprint extender has started creating a Blueprint Container for the bundle.
 
 	public static final int	CREATING		= 1;
The Blueprint extender has created a Blueprint Container for the bundle. This event is sent after the Blueprint Container has been registered as a service.
 
 	public static final int	CREATED			= 2;
The Blueprint extender has started destroying the Blueprint Container for the bundle.
 
 	public static final int	DESTROYING		= 3;
The Blueprint Container for the bundle has been completely destroyed. This event is sent after the Blueprint Container has been unregistered as a service.
 
 	public static final int	DESTROYED		= 4;
The Blueprint Container creation for the bundle has failed. If this event is sent after a timeout in the Grace Period, the getDependencies() method must return an array of missing mandatory dependencies. The event must also contain the cause of the failure as a Throwable through the getCause() method.
 
 	public static final int	FAILURE			= 5;
The Blueprint Container has entered the grace period. The list of missing dependencies must be made available through the getDependencies() method. During the grace period, a GRACE_PERIOD event is sent each time the set of unsatisfied dependencies changes.
	public static final int	GRACE_PERIOD	= 6;
The Blueprint Container is waiting on the availability of a service to satisfy an invocation on a referenced service. The missing dependency must be made available through the getDependencies() method which will return an array containing one filter object as a String.
	public static final int	WAITING			= 7;

Type of this event.

See also:
getType()
	private final int		type;
The time when the event occurred.

See also:
getTimestamp()
	private final long		timestamp;
The Blueprint bundle.

See also:
getBundle()
	private final Bundle	bundle;
The Blueprint extender bundle.

	private final Bundle	extenderBundle;
An array containing filters identifying the missing dependencies. Must not be null when the event type requires it.

	private final String[]	dependencies;
Cause of the failure.

See also:
getCause()
	private final Throwable	cause;
Indicate if this event is a replay event or not.

See also:
isReplay()
	private final boolean	replay;

Create a simple BlueprintEvent object.

Parameters:
type The type of this event.
bundle The Blueprint bundle associated with this event. This parameter must not be null.
extenderBundle The Blueprint extender bundle that is generating this event. This parameter must not be null.
	public BlueprintEvent(int typeBundle bundleBundle extenderBundle) {
		this(typebundleextenderBundlenullnull);
	}

Create a BlueprintEvent object associated with a set of dependencies.

Parameters:
type The type of this event.
bundle The Blueprint bundle associated with this event. This parameter must not be null.
extenderBundle The Blueprint extender bundle that is generating this event. This parameter must not be null.
dependencies An array of String filters for each dependency associated with this event. Must be a non-empty array for event types GRACE_PERIOD and WAITING. It is optional for event type FAILURE. Must be null for other event types.
	public BlueprintEvent(int typeBundle bundleBundle extenderBundleString[] dependencies) {
		this(typebundleextenderBundledependenciesnull);
	}

Create a BlueprintEvent object associated with a failure cause.

Parameters:
type The type of this event.
bundle The Blueprint bundle associated with this event. This parameter must not be null.
extenderBundle The Blueprint extender bundle that is generating this event. This parameter must not be null.
cause A Throwable object describing the root cause of the event. May be null.
	public BlueprintEvent(int typeBundle bundleBundle extenderBundleThrowable cause) {
		this(typebundleextenderBundlenullcause);
	}

Create a BlueprintEvent object associated with a failure cause and a set of dependencies.

Parameters:
type The type of this event.
bundle The Blueprint bundle associated with this event. This parameter must not be null.
extenderBundle The Blueprint extender bundle that is generating this event. This parameter must not be null.
dependencies An array of String filters for each dependency associated with this event. Must be a non-empty array for event types GRACE_PERIOD and WAITING. It is optional for event type FAILURE. Must be null for other event types.
cause A Throwable object describing the root cause of this event. May be null.
	public BlueprintEvent(int typeBundle bundleBundle extenderBundleString[] dependenciesThrowable cause) {
		this. = type;
		this. = System.currentTimeMillis();
		this. = bundle;
		this. = extenderBundle;
		this. = dependencies == null ? null : (String[]) dependencies.clone();;
		this. = cause;
		this. = false;
		if (bundle == null) {
			throw new NullPointerException("bundle must not be null");
		}
		if (extenderBundle == null) {
			throw new NullPointerException("extenderBundle must not be null");
		}
		switch (type) {
			case  :
			case  :
				if (dependencies == null) {
					throw new NullPointerException("dependencies must not be null");
				}
				if (dependencies.length == 0) {
					throw new IllegalArgumentException("dependencies must not be length zero");
				}
				break;
			case  :
				if ((dependencies != null) && (dependencies.length == 0)) {
					throw new IllegalArgumentException("dependencies must not be length zero");
				}
				break;
			default :
				if (dependencies != null) {
					throw new IllegalArgumentException("dependencies must be null");
				}
				break;
		}
	}

Create a new BlueprintEvent from the specified BlueprintEvent. The timestamp property will be copied from the original event and only the replay property will be overridden with the given value.

Parameters:
event The original BlueprintEvent to copy. Must not be null.
replay true if this event should be used as a replay event.
	public BlueprintEvent(BlueprintEvent eventboolean replay) {
		this. = event.type;
		this. = event.timestamp;
		this. = event.bundle;
		this. = event.extenderBundle;
		this. = event.dependencies;
		this. = event.cause;
		this. = replay;
	}

Return the type of this event.

The type values are:

Returns:
The type of this event.
	public int getType() {
		return ;
	}

Return the time at which this event was created.

Returns:
The time at which this event was created.
	public long getTimestamp() {
		return ;
	}

Return the Blueprint bundle associated with this event.

Returns:
The Blueprint bundle associated with this event.
	public Bundle getBundle() {
		return ;
	}

Return the Blueprint extender bundle that is generating this event.

Returns:
The Blueprint extender bundle that is generating this event.
	}

Return the filters identifying the missing dependencies that caused this event.

Returns:
The filters identifying the missing dependencies that caused this event if the event type is one of WAITING, GRACE_PERIOD or FAILURE or null for the other event types.
	public String[] getDependencies() {
		return  == null ? null : (String[]) .clone();
	}

Return the cause for this FAILURE event.

Returns:
The cause of the failure for this event. May be null .
	public Throwable getCause() {
		return ;
	}

Return whether this event is a replay event.

Returns:
true if this event is a replay event and false otherwise.
	public boolean isReplay() {
		return ;
	}
New to GrepCode? Check out our FAQ X