Adding some base-classes to eliminate event and listener boiler-plate code throughout a number of subsystems.
Refactored all core components to take advantage of this; apps remain to be done.
Change-Id: Ib0935ba07ff81b0fa032534004ec9ac6187cbf22
diff --git a/incubator/api/src/main/java/org/onosproject/incubator/net/config/NetworkConfigService.java b/incubator/api/src/main/java/org/onosproject/incubator/net/config/NetworkConfigService.java
index 455ed68..5a89ccb 100644
--- a/incubator/api/src/main/java/org/onosproject/incubator/net/config/NetworkConfigService.java
+++ b/incubator/api/src/main/java/org/onosproject/incubator/net/config/NetworkConfigService.java
@@ -17,6 +17,7 @@
import com.fasterxml.jackson.databind.node.ObjectNode;
import com.google.common.annotations.Beta;
+import org.onosproject.event.ListenerService;
import java.util.Set;
@@ -26,7 +27,8 @@
* should act on or configure the network.
*/
@Beta
-public interface NetworkConfigService {
+public interface NetworkConfigService
+ extends ListenerService<NetworkConfigEvent, NetworkConfigListener> {
/**
* Returns the set of subject classes for which configuration may be
@@ -140,17 +142,4 @@
*/
<S, C extends Config<S>> void removeConfig(S subject, Class<C> configClass);
- /**
- * Adds the specified network config listener.
- *
- * @param listener network config listener
- */
- void addListener(NetworkConfigListener listener);
-
- /**
- * Removes the specified network config listener.
- *
- * @param listener network config listener
- */
- void removeListener(NetworkConfigListener listener);
}
diff --git a/incubator/api/src/main/java/org/onosproject/incubator/net/resource/label/LabelResourceService.java b/incubator/api/src/main/java/org/onosproject/incubator/net/resource/label/LabelResourceService.java
index 612fbc7..02052c3 100644
--- a/incubator/api/src/main/java/org/onosproject/incubator/net/resource/label/LabelResourceService.java
+++ b/incubator/api/src/main/java/org/onosproject/incubator/net/resource/label/LabelResourceService.java
@@ -4,6 +4,7 @@
import java.util.Set;
import com.google.common.annotations.Beta;
+import org.onosproject.event.ListenerService;
import org.onosproject.net.DeviceId;
import com.google.common.collect.Multimap;
@@ -12,7 +13,8 @@
* Service for providing label resource allocation.
*/
@Beta
-public interface LabelResourceService {
+public interface LabelResourceService
+ extends ListenerService<LabelResourceEvent, LabelResourceListener> {
/**
* Returns labels from resource pool by a specific device id.
@@ -95,17 +97,4 @@
*/
LabelResourcePool getGlobalLabelResourcePool();
- /**
- * Adds the specified label resource listener.
- *
- * @param listener label resource listener
- */
- void addListener(LabelResourceListener listener);
-
- /**
- * Removes the specified label resource listener.
- *
- * @param listener label resource listener
- */
- void removeListener(LabelResourceListener listener);
}
diff --git a/incubator/api/src/main/java/org/onosproject/incubator/net/tunnel/TunnelService.java b/incubator/api/src/main/java/org/onosproject/incubator/net/tunnel/TunnelService.java
index a495955..2a10a4c 100644
--- a/incubator/api/src/main/java/org/onosproject/incubator/net/tunnel/TunnelService.java
+++ b/incubator/api/src/main/java/org/onosproject/incubator/net/tunnel/TunnelService.java
@@ -19,6 +19,7 @@
import com.google.common.annotations.Beta;
import org.onosproject.core.ApplicationId;
+import org.onosproject.event.ListenerService;
import org.onosproject.incubator.net.tunnel.Tunnel.Type;
import org.onosproject.net.Annotations;
import org.onosproject.net.DeviceId;
@@ -27,7 +28,8 @@
* Service for interacting with the inventory of tunnels.
*/
@Beta
-public interface TunnelService {
+public interface TunnelService
+ extends ListenerService<TunnelEvent, TunnelListener> {
/**
* Borrows a specific tunnel. Annotations parameter is reserved.If there
@@ -196,17 +198,4 @@
*/
Iterable<Tunnel> getTunnels(DeviceId deviceId);
- /**
- * Adds the specified tunnel listener.
- *
- * @param listener tunnel listener
- */
- void addListener(TunnelListener listener);
-
- /**
- * Removes the specified tunnel listener.
- *
- * @param listener tunnel listener
- */
- void removeListener(TunnelListener listener);
}