Cleaned-up templates and added package.html files.
diff --git a/net/core/trivial/src/main/java/org/onlab/onos/net/trivial/impl/SimpleLinkManager.java b/net/core/trivial/src/main/java/org/onlab/onos/net/trivial/impl/SimpleLinkManager.java
index 6283e0b..73fedab 100644
--- a/net/core/trivial/src/main/java/org/onlab/onos/net/trivial/impl/SimpleLinkManager.java
+++ b/net/core/trivial/src/main/java/org/onlab/onos/net/trivial/impl/SimpleLinkManager.java
@@ -3,55 +3,55 @@
import org.apache.felix.scr.annotations.Activate;
import org.apache.felix.scr.annotations.Component;
import org.apache.felix.scr.annotations.Deactivate;
+import org.apache.felix.scr.annotations.Reference;
+import org.apache.felix.scr.annotations.ReferenceCardinality;
import org.apache.felix.scr.annotations.Service;
+import org.onlab.onos.event.AbstractListenerManager;
+import org.onlab.onos.event.EventDispatchService;
import org.onlab.onos.net.link.LinkDescription;
+import org.onlab.onos.net.link.LinkEvent;
+import org.onlab.onos.net.link.LinkListener;
import org.onlab.onos.net.link.LinkProvider;
import org.onlab.onos.net.link.LinkProviderBroker;
import org.onlab.onos.net.link.LinkProviderService;
import org.onlab.onos.net.provider.AbstractProviderBroker;
import org.onlab.onos.net.provider.AbstractProviderService;
import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
+
+import static org.slf4j.LoggerFactory.getLogger;
/**
* Provides basic implementation of the link SB & NB APIs.
*/
@Component(immediate = true)
@Service
-public class SimpleLinkManager implements LinkProviderBroker {
+public class SimpleLinkManager
+ extends AbstractProviderBroker<LinkProvider, LinkProviderService>
+ implements LinkProviderBroker {
- private Logger log = LoggerFactory.getLogger(SimpleLinkManager.class);
+ private final Logger log = getLogger(getClass());
- private final LinkProviderBroker broker = new InternalBroker();
+ private final AbstractListenerManager<LinkEvent, LinkListener>
+ listenerManager = new AbstractListenerManager<>();
+
+ @Reference(cardinality = ReferenceCardinality.MANDATORY_UNARY)
+ private EventDispatchService eventDispatcher;
@Activate
public void activate() {
+ eventDispatcher.addSink(LinkEvent.class, listenerManager);
log.info("Started");
}
@Deactivate
public void deactivate() {
+ eventDispatcher.removeSink(LinkEvent.class);
log.info("Stopped");
}
@Override
- public LinkProviderService register(LinkProvider provider) {
- return broker.register(provider);
- }
-
- @Override
- public void unregister(LinkProvider provider) {
- broker.unregister(provider);
- }
-
- // Internal delegate for tracking various providers and issuing them a
- // personalized provider service.
- private class InternalBroker extends AbstractProviderBroker<LinkProvider, LinkProviderService>
- implements LinkProviderBroker {
- @Override
- protected LinkProviderService createProviderService(LinkProvider provider) {
- return new InternalLinkProviderService(provider);
- }
+ protected LinkProviderService createProviderService(LinkProvider provider) {
+ return new InternalLinkProviderService(provider);
}
// Personalized link provider service issued to the supplied provider.