Fix LispMappingService closing CSS provider 54/110254/1
authorRobert Varga <robert.varga@pantheon.tech>
Fri, 16 Feb 2024 13:53:33 +0000 (14:53 +0100)
committerRobert Varga <robert.varga@pantheon.tech>
Fri, 16 Feb 2024 13:59:56 +0000 (14:59 +0100)
ClusterSingletonProvider unfortunately exposes its close method -- and
LispMappingService closes that instead of its registration. Fix that.

Change-Id: Ic73320257998952d2ad8ec0e78414a7b4fb2d256
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
mappingservice/implementation/src/main/java/org/opendaylight/lispflowmapping/implementation/LispMappingService.java
mappingservice/implementation/src/test/java/org/opendaylight/lispflowmapping/implementation/LispMappingServiceTest.java

index 968b2640881f6fe0138817d6d44d04dc99f2cae9..f3bb5d7680a71e8d77e2c815ceac9962471bb503 100644 (file)
@@ -97,6 +97,7 @@ public class LispMappingService implements IFlowMapping, IMapRequestResultHandle
     private final NotificationService notificationService;
     private final Registration rpcRegistration;
     private final Registration listenerRegistration;
+    private final Registration cssRegistration;
 
     @Inject
     @Activate
@@ -123,7 +124,7 @@ public class LispMappingService implements IFlowMapping, IMapRequestResultHandle
 
         mapResolver = new MapResolver(mapService, smr, elpPolicy, this);
         mapServer = new MapServer(mapService, smr, this, notificationService);
-        clusterSingletonService.registerClusterSingletonService(this);
+        cssRegistration = clusterSingletonService.registerClusterSingletonService(this);
         mapResolver.setSmrNotificationListener((ISmrNotificationListener) mapServer);
         LOG.info("LISP (RFC6830) Mapping Service initialized");
     }
@@ -310,6 +311,7 @@ public class LispMappingService implements IFlowMapping, IMapRequestResultHandle
     @Override
     public void close() throws Exception {
         destroy();
+        cssRegistration.close();
         clusterSingletonService.close();
         rpcRegistration.close();
         listenerRegistration.close();
index f022e5096ded3a61ba23f518028f3acdc7de2056..6fe0df327a4ad93a50808fb4d597771be73246cf 100644 (file)
@@ -80,6 +80,7 @@ public class LispMappingServiceTest {
     @Mock(name = "tlsMapRequest") private static ThreadLocal<Pair<MapRequest, TransportAddress>> tlsMapRequestMock;
     @Mock private static Registration rpcRegistration;
     @Mock(name = "listenerRegistration") private static Registration listenerRegistration;
+    @Mock(name = "cssRegistration") private static Registration cssRegistration;
 
     private final NotificationService notificationService = Mockito.mock(NotificationService.class);
     private final RpcProviderService rpcProviderService = Mockito.mock(RpcProviderService.class);
@@ -346,10 +347,11 @@ public class LispMappingServiceTest {
     public void closeTest() throws Exception {
         setMock("rpcRegistration", rpcRegistration);
         setMock("listenerRegistration", listenerRegistration);
+        setMock("cssRegistration", cssRegistration);
         lispMappingService.close();
         Mockito.verify(rpcRegistration).close();
         Mockito.verify(listenerRegistration).close();
-        Mockito.verify(clusterSingletonService).close();
+        Mockito.verify(cssRegistration).close();
         assertNull(getField("mapResolver"));
         assertNull(getField("mapServer"));
     }