Class BlueprintEvent
- java.lang.Object
-
- org.osgi.service.blueprint.container.BlueprintEvent
-
public class BlueprintEvent extends java.lang.Object
A Blueprint Event.BlueprintEvent
objects are delivered to all registeredBlueprintListener
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 isDESTROYED
, 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.- See Also:
BlueprintListener
,EventConstants
-
-
Field Summary
Fields Modifier and Type Field Description static int
CREATED
The Blueprint extender has created a Blueprint Container for the bundle.static int
CREATING
The Blueprint extender has started creating a Blueprint Container for the bundle.static int
DESTROYED
The Blueprint Container for the bundle has been completely destroyed.static int
DESTROYING
The Blueprint extender has started destroying the Blueprint Container for the bundle.static int
FAILURE
The Blueprint Container creation for the bundle has failed.static int
GRACE_PERIOD
The Blueprint Container has entered the grace period.static int
WAITING
The Blueprint Container is waiting on the availability of a service to satisfy an invocation on a referenced service.
-
Constructor Summary
Constructors Constructor Description BlueprintEvent(int type, org.osgi.framework.Bundle bundle, org.osgi.framework.Bundle extenderBundle)
Create a simpleBlueprintEvent
object.BlueprintEvent(int type, org.osgi.framework.Bundle bundle, org.osgi.framework.Bundle extenderBundle, java.lang.String[] dependencies)
Create aBlueprintEvent
object associated with a set of dependencies.BlueprintEvent(int type, org.osgi.framework.Bundle bundle, org.osgi.framework.Bundle extenderBundle, java.lang.String[] dependencies, java.lang.Throwable cause)
Create aBlueprintEvent
object associated with a failure cause and a set of dependencies.BlueprintEvent(int type, org.osgi.framework.Bundle bundle, org.osgi.framework.Bundle extenderBundle, java.lang.Throwable cause)
Create aBlueprintEvent
object associated with a failure cause.BlueprintEvent(BlueprintEvent event, boolean replay)
Create a newBlueprintEvent
from the specifiedBlueprintEvent
.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description org.osgi.framework.Bundle
getBundle()
Return the Blueprint bundle associated with this event.java.lang.Throwable
getCause()
Return the cause for thisFAILURE
event.java.lang.String[]
getDependencies()
Return the filters identifying the missing dependencies that caused this event.org.osgi.framework.Bundle
getExtenderBundle()
Return the Blueprint extender bundle that is generating this event.long
getTimestamp()
Return the time at which this event was created.int
getType()
Return the type of this event.boolean
isReplay()
Return whether this event is a replay event.
-
-
-
Field Detail
-
CREATING
public static final int CREATING
The Blueprint extender has started creating a Blueprint Container for the bundle.- See Also:
- Constant Field Values
-
CREATED
public static final int CREATED
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.- See Also:
- Constant Field Values
-
DESTROYING
public static final int DESTROYING
The Blueprint extender has started destroying the Blueprint Container for the bundle.- See Also:
- Constant Field Values
-
DESTROYED
public static final int DESTROYED
The Blueprint Container for the bundle has been completely destroyed. This event is sent after the Blueprint Container has been unregistered as a service.- See Also:
- Constant Field Values
-
FAILURE
public static final int FAILURE
The Blueprint Container creation for the bundle has failed. If this event is sent after a timeout in the Grace Period, thegetDependencies()
method must return an array of missing mandatory dependencies. The event must also contain the cause of the failure as aThrowable
through thegetCause()
method.- See Also:
- Constant Field Values
-
GRACE_PERIOD
public static final int GRACE_PERIOD
The Blueprint Container has entered the grace period. The list of missing dependencies must be made available through thegetDependencies()
method. During the grace period, aGRACE_PERIOD
event is sent each time the set of unsatisfied dependencies changes.- See Also:
- Constant Field Values
-
WAITING
public static final int WAITING
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 thegetDependencies()
method which will return an array containing one filter object as a String.- See Also:
- Constant Field Values
-
-
Constructor Detail
-
BlueprintEvent
public BlueprintEvent(int type, org.osgi.framework.Bundle bundle, org.osgi.framework.Bundle extenderBundle)
Create a simpleBlueprintEvent
object.- Parameters:
type
- The type of this event.bundle
- The Blueprint bundle associated with this event. This parameter must not benull
.extenderBundle
- The Blueprint extender bundle that is generating this event. This parameter must not benull
.
-
BlueprintEvent
public BlueprintEvent(int type, org.osgi.framework.Bundle bundle, org.osgi.framework.Bundle extenderBundle, java.lang.String[] dependencies)
Create aBlueprintEvent
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 benull
.extenderBundle
- The Blueprint extender bundle that is generating this event. This parameter must not benull
.dependencies
- An array ofString
filters for each dependency associated with this event. Must be a non-empty array for event typesGRACE_PERIOD
andWAITING
. It is optional for event typeFAILURE
. Must benull
for other event types.
-
BlueprintEvent
public BlueprintEvent(int type, org.osgi.framework.Bundle bundle, org.osgi.framework.Bundle extenderBundle, java.lang.Throwable cause)
Create aBlueprintEvent
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 benull
.extenderBundle
- The Blueprint extender bundle that is generating this event. This parameter must not benull
.cause
- AThrowable
object describing the root cause of the event. May benull
.
-
BlueprintEvent
public BlueprintEvent(int type, org.osgi.framework.Bundle bundle, org.osgi.framework.Bundle extenderBundle, java.lang.String[] dependencies, java.lang.Throwable cause)
Create aBlueprintEvent
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 benull
.extenderBundle
- The Blueprint extender bundle that is generating this event. This parameter must not benull
.dependencies
- An array ofString
filters for each dependency associated with this event. Must be a non-empty array for event typesGRACE_PERIOD
andWAITING
. It is optional for event typeFAILURE
. Must benull
for other event types.cause
- AThrowable
object describing the root cause of this event. May benull
.
-
BlueprintEvent
public BlueprintEvent(BlueprintEvent event, boolean replay)
Create a newBlueprintEvent
from the specifiedBlueprintEvent
. Thetimestamp
property will be copied from the original event and only the replay property will be overridden with the given value.- Parameters:
event
- The originalBlueprintEvent
to copy. Must not benull
.replay
-true
if this event should be used as a replay event.
-
-
Method Detail
-
getType
public int getType()
Return the type of this event.The type values are:
- Returns:
- The type of this event.
-
getTimestamp
public long getTimestamp()
Return the time at which this event was created.- Returns:
- The time at which this event was created.
-
getBundle
public org.osgi.framework.Bundle getBundle()
Return the Blueprint bundle associated with this event.- Returns:
- The Blueprint bundle associated with this event.
-
getExtenderBundle
public org.osgi.framework.Bundle getExtenderBundle()
Return the Blueprint extender bundle that is generating this event.- Returns:
- The Blueprint extender bundle that is generating this event.
-
getDependencies
public java.lang.String[] getDependencies()
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
orFAILURE
ornull
for the other event types.
-
getCause
public java.lang.Throwable getCause()
Return the cause for thisFAILURE
event.- Returns:
- The cause of the failure for this event. May be
null
.
-
isReplay
public boolean isReplay()
Return whether this event is a replay event.- Returns:
true
if this event is a replay event andfalse
otherwise.
-
-