Creating a registry for gRPC services, early version restarts on each modification of the set of services.
Change-Id: I4ee69873508127ad5362563bc7f0e1c7ac4996aa
diff --git a/incubator/protobuf/services/nb/src/main/java/org/onosproject/incubator/protobuf/services/nb/GrpcNbDeviceService.java b/incubator/protobuf/services/nb/src/main/java/org/onosproject/incubator/protobuf/services/nb/GrpcNbDeviceService.java
index df85f18..0ba9e48 100644
--- a/incubator/protobuf/services/nb/src/main/java/org/onosproject/incubator/protobuf/services/nb/GrpcNbDeviceService.java
+++ b/incubator/protobuf/services/nb/src/main/java/org/onosproject/incubator/protobuf/services/nb/GrpcNbDeviceService.java
@@ -28,6 +28,7 @@
import org.onosproject.grpc.nb.net.device.DeviceServiceGrpc.DeviceServiceImplBase;
import org.onosproject.grpc.net.models.PortProtoOuterClass.PortProto;
import org.onosproject.grpc.net.device.models.DeviceEnumsProto;
+import org.onosproject.protobuf.api.GrpcServiceRegistry;
import org.onosproject.net.ConnectPoint;
import org.onosproject.net.DeviceId;
import org.onosproject.net.MastershipRole;
@@ -47,26 +48,39 @@
@Component(immediate = true)
public class GrpcNbDeviceService {
+ private static DeviceServiceNbServerInternal instance = null;
+
+ @Reference(cardinality = ReferenceCardinality.MANDATORY_UNARY)
+ protected GrpcServiceRegistry registry;
+
@Reference(cardinality = ReferenceCardinality.MANDATORY_UNARY)
protected DeviceService deviceService;
@Activate
public void activate() {
//TODO this should contact the registry service and register an instance
- // of this service.
+ // of this service
+ registry.register(getInnerInstance());
}
@Deactivate
public void deactivate() {
+ registry.unregister(getInnerInstance());
}
- private class DeviceServiceNbServerInternal extends DeviceServiceImplBase {
+ public DeviceServiceNbServerInternal getInnerInstance() {
+ if (instance == null) {
+ instance = new DeviceServiceNbServerInternal();
+ }
+ return instance;
+ }
- public DeviceServiceNbServerInternal() {
+ private final class DeviceServiceNbServerInternal extends DeviceServiceImplBase {
+
+ private DeviceServiceNbServerInternal() {
super();
}
-
@Override
public void getDeviceCount(
getDeviceCountRequest request,