WireAdminEvent objects are delivered to all registered
WireAdminListener service objects which specify an interest in the
WireAdminEvent type. Events must be delivered in chronological order
with respect to each listener. For example, a WireAdminEvent of type
WIRE_CONNECTED must be delivered before a WireAdminEvent of
type WIRE_DISCONNECTED for a particular Wire object.

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

The WireAdminEvent type that indicates that an existing
Wire object has become connected.
The Consumer object and the Producer object that are associated with the
Wire object have both been registered and the Wire object
is connected. See Wire.isConnected() for a description of the
connected state. This event may come before the
producersConnected and consumersConnected method have
returned or called to allow synchronous delivery of the events. Both
methods can cause other WireAdminEvent s to take place and
requiring this event to be send before these methods are returned would
mandate asynchronous delivery.

The WireAdminEvent type that indicates that an existing
Wire object has become disconnected.
The Consumer object or/and Producer object is/are unregistered breaking
the connection between the two. See Wire.isConnected() for a
description of the connected state.

The WireAdminEvent type that indicates that a new value is
transferred over the Wire object.
This event is sent after the Consumer service has been notified by
calling the Consumer.updated(org.osgi.service.wireadmin.Wire,java.lang.Object) method or the Consumer
service requested a new value with the Wire.poll() method. This
is an advisory event meaning that when this event is received, another
update may already have occurred and this the Wire.getLastValue()
method returns a newer value then the value that was communicated for
this event.