The lifecycle of a component can be observed using the event listener defined by org.jivesoftware.openfire.component.ComponentEventListener
When a new cluster node joins a cluster that already has a component, the component effectively becomes available to the new cluster node. As such, the event listeners should be fired.
Note that this applies to regular ('internal') components as well as external components.
Note that there's an omission in the tests associated with this issue: it is acceptable to have the same component be available on more than one cluster node.
The desired behavior in these instances is that event listeners reflect the availability of a component anywhere on the cluster: if more than one instance of the same component connects, only the first connect should trigger 'registered'. When they disconnect, 'unregistered' should be triggered only after the last component disconnects.