package org.osgi.cdi.impl.extension.services;
import javax.enterprise.context.ApplicationScoped;
import javax.enterprise.event.Observes;
import org.osgi.cdi.api.integration.CDIContainers;
import org.osgi.cdi.api.extension.events.InterBundleEvent;
import org.osgi.cdi.api.integration.CDIContainer;
/**
*
* @author Mathieu ANCELIN - SERLI (mathieu.ancelin@serli.com)
*/
@ApplicationScoped
public class ContainerObserver {
private CDIContainer currentContainer;
private CDIContainers containers;
public void setCurrentContainer(CDIContainer currentContainer) {
this.currentContainer = currentContainer;
}
public void setContainers(CDIContainers containers) {
this.containers = containers;
}
public void listenInterBundleEvents(@Observes InterBundleEvent event) {
if (!event.isSent()) {
for (CDIContainer container : containers) {
if (!container.equals(currentContainer)) {
event.sent();
container.fire(event);
}
}
}
}
}