{
try
{
initStack();
Addon self = BeanManagerUtils.getContextualInstance(manager, AddonProducer.class).produceCurrentAddon();
if (self != null && !(event instanceof InboundEvent))
{
Set<Annotation> qualifiers = metadata.getQualifiers();
if (!isLocal(qualifiers) && !onStack(event, qualifiers))
try
{
AddonRegistry addonRegistry = BeanManagerUtils.getContextualInstance(manager, AddonRegistry.class);
for (Addon addon : addonRegistry.getAddons(AddonFilters.allStarted()))
{
if (!self.getId().equals(addon.getId()))
{
EventManager remoteEventManager = addon.getEventManager();
if (remoteEventManager != null)
{
remoteEventManager.fireEvent(event, qualifiers.toArray(new Annotation[qualifiers.size()]));