Expose service group name from ServiceGroupIdentifier 41/84041/2
authorRobert Varga <robert.varga@pantheon.tech>
Wed, 28 Aug 2019 15:34:08 +0000 (17:34 +0200)
committerRobert Varga <nite@hq.sk>
Wed, 28 Aug 2019 19:02:04 +0000 (19:02 +0000)
AbstractIdentifier has removed public view of getValue(), hence
we need to expose a domain-specific accessor. This patch does that
and fixes up users.

Change-Id: I1645e86e5417e0a8c13660f8820a9df8b4c7cad7
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
singleton-service/mdsal-singleton-common-api/src/main/java/org/opendaylight/mdsal/singleton/common/api/ServiceGroupIdentifier.java
singleton-service/mdsal-singleton-dom-impl/src/main/java/org/opendaylight/mdsal/singleton/dom/impl/AbstractClusterSingletonServiceProviderImpl.java
singleton-service/mdsal-singleton-dom-impl/src/main/java/org/opendaylight/mdsal/singleton/dom/impl/ClusterSingletonServiceGroupImpl.java

index d40efc644caba6817232757cd8aec21acaf48583..4a33f9ee08cf7de73d3e09b0bd3a9c9efc597471 100644 (file)
@@ -5,30 +5,32 @@
  * terms of the Eclipse Public License v1.0 which accompanies this distribution,
  * and is available at http://www.eclipse.org/legal/epl-v10.html
  */
-
 package org.opendaylight.mdsal.singleton.common.api;
 
+import org.eclipse.jdt.annotation.NonNull;
 import org.opendaylight.yangtools.util.AbstractStringIdentifier;
 
 /**
  * Identifier represents a service group competence. It's based on String.
  */
 public class ServiceGroupIdentifier extends AbstractStringIdentifier<ServiceGroupIdentifier> {
+    private static final long serialVersionUID = 6853612584804702662L;
+
+    protected ServiceGroupIdentifier(final @NonNull String string) {
+        super(string);
+    }
 
     /**
      * Method to create immutable instances of {@link ServiceGroupIdentifier}.
      *
-     * @param serviceGroupIdentifier the String identifier for the ServiceGroupIdentifier instance
+     * @param name the String identifier for the ServiceGroupIdentifier instance
      * @return {@link ServiceGroupIdentifier} new instance
      */
-    public static ServiceGroupIdentifier create(final String serviceGroupIdentifier) {
-        return new ServiceGroupIdentifier(serviceGroupIdentifier);
+    public static @NonNull ServiceGroupIdentifier create(final String name) {
+        return new ServiceGroupIdentifier(name);
     }
 
-    protected ServiceGroupIdentifier(final String string) {
-        super(string);
+    public final @NonNull String getName() {
+        return getValue();
     }
-
-    private static final long serialVersionUID = 6853612584804702662L;
-
 }
index 1f1f2891fab243f58cea28760280576746d3e6f6..b4d2fcecc48d2a2ab6af4569d66de2be39a29f87 100644 (file)
@@ -93,7 +93,7 @@ public abstract class AbstractClusterSingletonServiceProviderImpl<P extends Path
             final ClusterSingletonService service) {
         LOG.debug("Call registrationService {} method for ClusterSingletonService Provider {}", service, this);
 
-        final String serviceIdentifier = service.getIdentifier().getValue();
+        final String serviceIdentifier = service.getIdentifier().getName();
         checkArgument(!Strings.isNullOrEmpty(serviceIdentifier),
             "ClusterSingletonService identifier may not be null nor empty");
 
@@ -157,7 +157,7 @@ public abstract class AbstractClusterSingletonServiceProviderImpl<P extends Path
             LOG.debug("Closing service group {}", serviceIdentifier);
             placeHolder = new PlaceholderGroup<>(lookup, future);
 
-            final String identifier = reg.getInstance().getIdentifier().getValue();
+            final String identifier = reg.getInstance().getIdentifier().getName();
             verify(serviceGroupMap.replace(identifier, lookup, placeHolder));
             LOG.debug("Replaced group {} with {}", serviceIdentifier, placeHolder);
 
index effa840ee1c36bc227f33158251777ab910cf1b2..506d24aee6a4510617321894f59d9de4a816cd09 100644 (file)
@@ -260,8 +260,7 @@ final class ClusterSingletonServiceGroupImpl<P extends Path<P>, E extends Generi
 
     @Override
     void registerService(final ClusterSingletonServiceRegistration reg) {
-        final ClusterSingletonService service = reg.getInstance();
-        verify(identifier.equals(service.getIdentifier().getValue()));
+        final ClusterSingletonService service = verifyRegistration(reg);
         checkNotClosed();
 
         checkState(initialized, "Service group %s is not initialized yet", identifier);
@@ -281,8 +280,7 @@ final class ClusterSingletonServiceGroupImpl<P extends Path<P>, E extends Generi
 
     @Override
     ListenableFuture<?> unregisterService(final ClusterSingletonServiceRegistration reg) {
-        final ClusterSingletonService service = reg.getInstance();
-        verify(identifier.equals(service.getIdentifier().getValue()));
+        verifyRegistration(reg);
         checkNotClosed();
 
         verify(members.remove(reg));
@@ -303,6 +301,12 @@ final class ClusterSingletonServiceGroupImpl<P extends Path<P>, E extends Generi
         return null;
     }
 
+    private ClusterSingletonService verifyRegistration(final ClusterSingletonServiceRegistration reg) {
+        final ClusterSingletonService service = reg.getInstance();
+        verify(identifier.equals(service.getIdentifier().getName()));
+        return service;
+    }
+
     private synchronized @NonNull ListenableFuture<?> destroyGroup() {
         final SettableFuture<Void> future = SettableFuture.create();
         if (!closeFuture.compareAndSet(null, future)) {