Remove GenericEntityOwnershipCandidateRegistration 38/109238/1
authorRobert Varga <robert.varga@pantheon.tech>
Fri, 8 Dec 2023 21:52:37 +0000 (22:52 +0100)
committerRobert Varga <robert.varga@pantheon.tech>
Fri, 8 Dec 2023 22:26:25 +0000 (23:26 +0100)
This interface brings nothing to the table. Use a plain Registration
instead, which ends up removing its specializations in both DOM and
Binding worlds and bringing them closer together.

While we are at it, use constructor injection in
mdsal-eos-binding-adapter, so that just have a plain
DefaultEntityOwnershipService.

JIRA: MDSAL-843
Change-Id: Ic5c27830ce18a1d5be4348fa61cd3994486e4325
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
19 files changed:
entityownership/mdsal-eos-binding-adapter/src/main/java/org/opendaylight/mdsal/eos/binding/dom/adapter/BindingEntityOwnershipCandidateRegistration.java [deleted file]
entityownership/mdsal-eos-binding-adapter/src/main/java/org/opendaylight/mdsal/eos/binding/dom/adapter/BindingEntityOwnershipListenerRegistration.java
entityownership/mdsal-eos-binding-adapter/src/main/java/org/opendaylight/mdsal/eos/binding/dom/adapter/DefaultEntityOwnershipService.java [moved from entityownership/mdsal-eos-binding-adapter/src/main/java/org/opendaylight/mdsal/eos/binding/dom/adapter/BindingDOMEntityOwnershipServiceAdapter.java with 78% similarity]
entityownership/mdsal-eos-binding-adapter/src/main/java/org/opendaylight/mdsal/eos/binding/dom/adapter/OSGiEntityOwnershipService.java [deleted file]
entityownership/mdsal-eos-binding-adapter/src/test/java/org/opendaylight/mdsal/eos/binding/dom/adapter/DefaultEntityOwnershipServiceTest.java [moved from entityownership/mdsal-eos-binding-adapter/src/test/java/org/opendaylight/mdsal/eos/binding/dom/adapter/BindingDOMEntityOwnershipServiceAdapterTest.java with 69% similarity]
entityownership/mdsal-eos-binding-api/src/main/java/org/opendaylight/mdsal/eos/binding/api/EntityOwnershipCandidateRegistration.java [deleted file]
entityownership/mdsal-eos-binding-api/src/main/java/org/opendaylight/mdsal/eos/binding/api/EntityOwnershipService.java
entityownership/mdsal-eos-common-api/src/main/java/org/opendaylight/mdsal/eos/common/api/GenericEntityOwnershipCandidateRegistration.java [deleted file]
entityownership/mdsal-eos-common-api/src/main/java/org/opendaylight/mdsal/eos/common/api/GenericEntityOwnershipService.java
entityownership/mdsal-eos-common-spi/src/main/java/org/opendaylight/mdsal/eos/common/spi/AbstractGenericEntityOwnershipCandidateRegistration.java [deleted file]
entityownership/mdsal-eos-common-spi/src/test/java/org/opendaylight/mdsal/eos/common/spi/AbstractGenericEntityOwnershipCandidateRegistrationTest.java [deleted file]
entityownership/mdsal-eos-dom-api/src/main/java/org/opendaylight/mdsal/eos/dom/api/DOMEntityOwnershipCandidateRegistration.java [deleted file]
entityownership/mdsal-eos-dom-api/src/main/java/org/opendaylight/mdsal/eos/dom/api/DOMEntityOwnershipService.java
entityownership/mdsal-eos-dom-simple/src/main/java/org/opendaylight/mdsal/eos/dom/simple/SimpleDOMEntityOwnershipService.java
entityownership/mdsal-eos-dom-simple/src/main/java/org/opendaylight/mdsal/eos/dom/simple/di/LocalDOMEntityOwnershipService.java
entityownership/mdsal-eos-dom-simple/src/test/java/org/opendaylight/mdsal/eos/dom/simple/SimpleDOMEntityOwnershipServiceTest.java
singleton-service/mdsal-singleton-dom-impl/src/main/java/org/opendaylight/mdsal/singleton/dom/impl/ClusterSingletonServiceGroupImpl.java
singleton-service/mdsal-singleton-dom-impl/src/test/java/org/opendaylight/mdsal/singleton/dom/impl/AbstractDOMClusterServiceProviderTest.java
singleton-service/mdsal-singleton-dom-impl/src/test/java/org/opendaylight/mdsal/singleton/dom/impl/ClusterSingletonServiceGroupImplTest.java

diff --git a/entityownership/mdsal-eos-binding-adapter/src/main/java/org/opendaylight/mdsal/eos/binding/dom/adapter/BindingEntityOwnershipCandidateRegistration.java b/entityownership/mdsal-eos-binding-adapter/src/main/java/org/opendaylight/mdsal/eos/binding/dom/adapter/BindingEntityOwnershipCandidateRegistration.java
deleted file mode 100644 (file)
index 319cc63..0000000
+++ /dev/null
@@ -1,37 +0,0 @@
-/*
- * Copyright (c) 2015 Brocade Communications Systems, Inc. and others.  All rights reserved.
- *
- * This program and the accompanying materials are made available under the
- * 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.eos.binding.dom.adapter;
-
-import static java.util.Objects.requireNonNull;
-
-import org.opendaylight.mdsal.eos.binding.api.Entity;
-import org.opendaylight.mdsal.eos.binding.api.EntityOwnershipCandidateRegistration;
-import org.opendaylight.mdsal.eos.dom.api.DOMEntityOwnershipCandidateRegistration;
-import org.opendaylight.yangtools.concepts.AbstractObjectRegistration;
-
-/**
- * Implementation of EntityOwnershipCandidateRegistration whose instances are returned from the
- * {@link BindingDOMEntityOwnershipServiceAdapter}.
- *
- * @author Thomas Pantelis
- */
-class BindingEntityOwnershipCandidateRegistration extends AbstractObjectRegistration<Entity>
-           implements EntityOwnershipCandidateRegistration {
-    private final DOMEntityOwnershipCandidateRegistration domRegistration;
-
-    BindingEntityOwnershipCandidateRegistration(DOMEntityOwnershipCandidateRegistration domRegistration,
-            Entity entity) {
-        super(entity);
-        this.domRegistration = requireNonNull(domRegistration);
-    }
-
-    @Override
-    protected void removeRegistration() {
-        domRegistration.close();
-    }
-}
\ No newline at end of file
index 6d83f19f95a04a46f7a74491d953eb8c579c8589..7e09cac2b1d535a2037ff1edac5a1912cbdc0d60 100644 (file)
@@ -16,7 +16,7 @@ import org.opendaylight.yangtools.concepts.AbstractObjectRegistration;
 
 /**
  * Implementation of EntityOwnershipListenerRegistration whose instances are returned from the
- * {@link BindingDOMEntityOwnershipServiceAdapter}.
+ * {@link DefaultEntityOwnershipService}.
  *
  * @author Thomas Pantelis
  */
@@ -15,7 +15,6 @@ import javax.inject.Singleton;
 import org.eclipse.jdt.annotation.NonNull;
 import org.opendaylight.mdsal.binding.dom.adapter.AdapterContext;
 import org.opendaylight.mdsal.eos.binding.api.Entity;
-import org.opendaylight.mdsal.eos.binding.api.EntityOwnershipCandidateRegistration;
 import org.opendaylight.mdsal.eos.binding.api.EntityOwnershipListener;
 import org.opendaylight.mdsal.eos.binding.api.EntityOwnershipListenerRegistration;
 import org.opendaylight.mdsal.eos.binding.api.EntityOwnershipService;
@@ -23,6 +22,10 @@ import org.opendaylight.mdsal.eos.common.api.CandidateAlreadyRegisteredException
 import org.opendaylight.mdsal.eos.common.api.EntityOwnershipState;
 import org.opendaylight.mdsal.eos.dom.api.DOMEntity;
 import org.opendaylight.mdsal.eos.dom.api.DOMEntityOwnershipService;
+import org.opendaylight.yangtools.concepts.Registration;
+import org.osgi.service.component.annotations.Activate;
+import org.osgi.service.component.annotations.Component;
+import org.osgi.service.component.annotations.Reference;
 
 /**
  * Adapter that bridges between the binding and DOM EntityOwnershipService interfaces.
@@ -30,22 +33,22 @@ import org.opendaylight.mdsal.eos.dom.api.DOMEntityOwnershipService;
  * @author Thomas Pantelis
  */
 @Singleton
-public class BindingDOMEntityOwnershipServiceAdapter implements EntityOwnershipService, AutoCloseable {
+@Component
+public final class DefaultEntityOwnershipService implements EntityOwnershipService {
     private final @NonNull DOMEntityOwnershipService domService;
     private final @NonNull AdapterContext adapterContext;
 
     @Inject
-    public BindingDOMEntityOwnershipServiceAdapter(final @NonNull DOMEntityOwnershipService domService,
-            final @NonNull AdapterContext adapterContext) {
+    @Activate
+    public DefaultEntityOwnershipService(@Reference final @NonNull DOMEntityOwnershipService domService,
+            @Reference final @NonNull AdapterContext adapterContext) {
         this.domService = requireNonNull(domService);
         this.adapterContext = requireNonNull(adapterContext);
     }
 
     @Override
-    public EntityOwnershipCandidateRegistration registerCandidate(final Entity entity)
-            throws CandidateAlreadyRegisteredException {
-        return new BindingEntityOwnershipCandidateRegistration(
-                domService.registerCandidate(toDOMEntity(entity)), entity);
+    public Registration registerCandidate(final Entity entity) throws CandidateAlreadyRegisteredException {
+        return domService.registerCandidate(toDOMEntity(entity));
     }
 
     @Override
@@ -69,8 +72,4 @@ public class BindingDOMEntityOwnershipServiceAdapter implements EntityOwnershipS
         return new DOMEntity(entity.getType(),
             adapterContext.currentSerializer().toYangInstanceIdentifier(entity.getIdentifier()));
     }
-
-    @Override
-    public void close() {
-    }
 }
diff --git a/entityownership/mdsal-eos-binding-adapter/src/main/java/org/opendaylight/mdsal/eos/binding/dom/adapter/OSGiEntityOwnershipService.java b/entityownership/mdsal-eos-binding-adapter/src/main/java/org/opendaylight/mdsal/eos/binding/dom/adapter/OSGiEntityOwnershipService.java
deleted file mode 100644 (file)
index 3746d80..0000000
+++ /dev/null
@@ -1,77 +0,0 @@
-/*
- * Copyright (c) 2020 PANTHEON.tech, s.r.o. and others.  All rights reserved.
- *
- * This program and the accompanying materials are made available under the
- * 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.eos.binding.dom.adapter;
-
-import com.google.common.annotations.Beta;
-import java.util.Optional;
-import org.opendaylight.mdsal.binding.dom.adapter.AdapterContext;
-import org.opendaylight.mdsal.eos.binding.api.Entity;
-import org.opendaylight.mdsal.eos.binding.api.EntityOwnershipCandidateRegistration;
-import org.opendaylight.mdsal.eos.binding.api.EntityOwnershipListener;
-import org.opendaylight.mdsal.eos.binding.api.EntityOwnershipListenerRegistration;
-import org.opendaylight.mdsal.eos.binding.api.EntityOwnershipService;
-import org.opendaylight.mdsal.eos.common.api.CandidateAlreadyRegisteredException;
-import org.opendaylight.mdsal.eos.common.api.EntityOwnershipState;
-import org.opendaylight.mdsal.eos.dom.api.DOMEntityOwnershipService;
-import org.osgi.service.component.annotations.Activate;
-import org.osgi.service.component.annotations.Component;
-import org.osgi.service.component.annotations.Deactivate;
-import org.osgi.service.component.annotations.Reference;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-@Beta
-@Component(immediate = true, property = "type=default")
-public final class OSGiEntityOwnershipService implements EntityOwnershipService {
-    private static final Logger LOG = LoggerFactory.getLogger(OSGiEntityOwnershipService.class);
-
-    @Reference
-    DOMEntityOwnershipService domService = null;
-    @Reference
-    AdapterContext adapterContext = null;
-
-    private BindingDOMEntityOwnershipServiceAdapter delegate;
-
-    @Override
-    public EntityOwnershipCandidateRegistration registerCandidate(final Entity entity)
-            throws CandidateAlreadyRegisteredException {
-        return delegate.registerCandidate(entity);
-    }
-
-    @Override
-    public EntityOwnershipListenerRegistration registerListener(final String entityType,
-            final EntityOwnershipListener listener) {
-        return delegate.registerListener(entityType, listener);
-    }
-
-    @Override
-    public Optional<EntityOwnershipState> getOwnershipState(final Entity forEntity) {
-        return delegate.getOwnershipState(forEntity);
-    }
-
-    @Override
-    public boolean isCandidateRegistered(final Entity forEntity) {
-        return delegate.isCandidateRegistered(forEntity);
-    }
-
-    @Activate
-    void activate() {
-        LOG.info("Entity Ownership Service adapter starting");
-        delegate = new BindingDOMEntityOwnershipServiceAdapter(domService, adapterContext);
-        LOG.info("Entity Ownership Service adapter started");
-    }
-
-    @Deactivate
-    void deactivate() {
-        LOG.info("Entity Ownership Service adapter stopping");
-        delegate.close();
-        delegate = null;
-        LOG.info("Entity Ownership Service adapter stopped");
-
-    }
-}
@@ -28,7 +28,6 @@ import org.mockito.junit.MockitoJUnitRunner;
 import org.opendaylight.mdsal.binding.dom.adapter.ConstantAdapterContext;
 import org.opendaylight.mdsal.binding.dom.codec.spi.BindingDOMCodecServices;
 import org.opendaylight.mdsal.eos.binding.api.Entity;
-import org.opendaylight.mdsal.eos.binding.api.EntityOwnershipCandidateRegistration;
 import org.opendaylight.mdsal.eos.binding.api.EntityOwnershipChange;
 import org.opendaylight.mdsal.eos.binding.api.EntityOwnershipListener;
 import org.opendaylight.mdsal.eos.binding.api.EntityOwnershipListenerRegistration;
@@ -36,11 +35,11 @@ import org.opendaylight.mdsal.eos.common.api.CandidateAlreadyRegisteredException
 import org.opendaylight.mdsal.eos.common.api.EntityOwnershipChangeState;
 import org.opendaylight.mdsal.eos.common.api.EntityOwnershipState;
 import org.opendaylight.mdsal.eos.dom.api.DOMEntity;
-import org.opendaylight.mdsal.eos.dom.api.DOMEntityOwnershipCandidateRegistration;
 import org.opendaylight.mdsal.eos.dom.api.DOMEntityOwnershipChange;
 import org.opendaylight.mdsal.eos.dom.api.DOMEntityOwnershipListener;
 import org.opendaylight.mdsal.eos.dom.api.DOMEntityOwnershipListenerRegistration;
 import org.opendaylight.mdsal.eos.dom.api.DOMEntityOwnershipService;
+import org.opendaylight.yangtools.concepts.Registration;
 
 /**
  * Unit tests for BindingDOMEntityOwnershipServiceAdapter.
@@ -48,9 +47,9 @@ import org.opendaylight.mdsal.eos.dom.api.DOMEntityOwnershipService;
  * @author Thomas Pantelis
  */
 @RunWith(MockitoJUnitRunner.StrictStubs.class)
-public class BindingDOMEntityOwnershipServiceAdapterTest {
-    static Entity BINDING_ENTITY = new Entity("foo", "bar");
-    static DOMEntity DOM_ENTITY = new DOMEntity("foo", "bar");
+public class DefaultEntityOwnershipServiceTest {
+    static final Entity BINDING_ENTITY = new Entity("foo", "bar");
+    static final DOMEntity DOM_ENTITY = new DOMEntity("foo", "bar");
 
     @Mock
     private BindingDOMCodecServices mockCodecRegistry;
@@ -58,7 +57,7 @@ public class BindingDOMEntityOwnershipServiceAdapterTest {
     @Mock
     private DOMEntityOwnershipService mockDOMService;
 
-    private BindingDOMEntityOwnershipServiceAdapter adapter;
+    private DefaultEntityOwnershipService adapter;
 
     @Before
     public void setup() {
@@ -67,32 +66,29 @@ public class BindingDOMEntityOwnershipServiceAdapterTest {
         doReturn(BINDING_ENTITY.getIdentifier()).when(mockCodecRegistry).fromYangInstanceIdentifier(
                 DOM_ENTITY.getIdentifier());
 
-        this.adapter = new BindingDOMEntityOwnershipServiceAdapter(mockDOMService,
+        adapter = new DefaultEntityOwnershipService(mockDOMService,
             new ConstantAdapterContext(mockCodecRegistry));
     }
 
     @Test
     public void testRegisterCandidate() throws CandidateAlreadyRegisteredException {
-        final DOMEntityOwnershipCandidateRegistration mockDOMReg = mock(DOMEntityOwnershipCandidateRegistration.class);
-        doReturn(mockDOMReg).when(this.mockDOMService).registerCandidate(DOM_ENTITY);
+        final var mockDOMReg = mock(Registration.class);
+        doReturn(mockDOMReg).when(mockDOMService).registerCandidate(DOM_ENTITY);
 
-        final EntityOwnershipCandidateRegistration reg = this.adapter.registerCandidate(BINDING_ENTITY);
-
-        assertNotNull("registerCandidate returned null", reg);
-        assertEquals("getInstance", BINDING_ENTITY, reg.getInstance());
-
-        reg.close();
+        try (var reg = adapter.registerCandidate(BINDING_ENTITY)) {
+            assertNotNull("registerCandidate returned null", reg);
+        }
         verify(mockDOMReg).close();
     }
 
     @Test
     public void testRegisterListener() {
         final DOMEntityOwnershipListenerRegistration mockDOMReg = mock(DOMEntityOwnershipListenerRegistration.class);
-        doReturn(mockDOMReg).when(this.mockDOMService).registerListener(eq(DOM_ENTITY.getType()),
+        doReturn(mockDOMReg).when(mockDOMService).registerListener(eq(DOM_ENTITY.getType()),
                 any(DOMEntityOwnershipListener.class));
         final EntityOwnershipListener mockListener = mock(EntityOwnershipListener.class);
 
-        final EntityOwnershipListenerRegistration reg = this.adapter.registerListener(
+        final EntityOwnershipListenerRegistration reg = adapter.registerListener(
                 BINDING_ENTITY.getType(), mockListener);
 
         assertNotNull("registerListener returned null", reg);
@@ -101,7 +97,7 @@ public class BindingDOMEntityOwnershipServiceAdapterTest {
 
         final ArgumentCaptor<DOMEntityOwnershipListener> domListenerCaptor = ArgumentCaptor.forClass(
                 DOMEntityOwnershipListener.class);
-        verify(this.mockDOMService).registerListener(eq(DOM_ENTITY.getType()),  domListenerCaptor.capture());
+        verify(mockDOMService).registerListener(eq(DOM_ENTITY.getType()),  domListenerCaptor.capture());
 
         final DOMEntityOwnershipChange domOwnershipChange = new DOMEntityOwnershipChange(DOM_ENTITY,
                 EntityOwnershipChangeState.LOCAL_OWNERSHIP_GRANTED, true);
@@ -121,25 +117,24 @@ public class BindingDOMEntityOwnershipServiceAdapterTest {
 
     @Test
     public void testGetOwnershipState() {
-        final Optional<EntityOwnershipState>  expectedState = Optional.of(EntityOwnershipState.IS_OWNER);
-        doReturn(expectedState).when(this.mockDOMService).getOwnershipState(DOM_ENTITY);
-
-        final Optional<EntityOwnershipState> actualState = this.adapter.getOwnershipState(BINDING_ENTITY);
+        final var expectedState = Optional.of(EntityOwnershipState.IS_OWNER);
+        doReturn(expectedState).when(mockDOMService).getOwnershipState(DOM_ENTITY);
 
+        final var actualState = adapter.getOwnershipState(BINDING_ENTITY);
         assertSame("getOwnershipState", expectedState, actualState);
     }
 
     @Test
     public void testIsCandidateRegistered() {
-        doReturn(true).when(this.mockDOMService).isCandidateRegistered(DOM_ENTITY);
-        assertEquals("isCandidateRegistered", true, this.adapter.isCandidateRegistered(BINDING_ENTITY));
+        doReturn(true).when(mockDOMService).isCandidateRegistered(DOM_ENTITY);
+        assertEquals("isCandidateRegistered", true, adapter.isCandidateRegistered(BINDING_ENTITY));
     }
 
     public void testOwnershipChangeWithException() {
-        final DOMEntityOwnershipListenerAdapter domEntityOwnershipListenerAdapter =
-                new DOMEntityOwnershipListenerAdapter(mock(EntityOwnershipListener.class),
-                    new ConstantAdapterContext(mockCodecRegistry));
-        final DOMEntityOwnershipChange domOwnershipChange = mock(DOMEntityOwnershipChange.class);
+        final var domEntityOwnershipListenerAdapter =
+            new DOMEntityOwnershipListenerAdapter(mock(EntityOwnershipListener.class),
+                new ConstantAdapterContext(mockCodecRegistry));
+        final var domOwnershipChange = mock(DOMEntityOwnershipChange.class);
         doThrow(IllegalStateException.class).when(domOwnershipChange).getEntity();
         assertThrows(IllegalStateException.class,
             () -> domEntityOwnershipListenerAdapter.ownershipChanged(domOwnershipChange));
diff --git a/entityownership/mdsal-eos-binding-api/src/main/java/org/opendaylight/mdsal/eos/binding/api/EntityOwnershipCandidateRegistration.java b/entityownership/mdsal-eos-binding-api/src/main/java/org/opendaylight/mdsal/eos/binding/api/EntityOwnershipCandidateRegistration.java
deleted file mode 100644 (file)
index 337b99f..0000000
+++ /dev/null
@@ -1,22 +0,0 @@
-/*
- * Copyright (c) 2015 Brocade Communications Systems, Inc. and others.  All rights reserved.
- *
- * This program and the accompanying materials are made available under the
- * 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.eos.binding.api;
-
-import com.google.common.annotations.Beta;
-import org.opendaylight.mdsal.eos.common.api.GenericEntityOwnershipCandidateRegistration;
-import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;
-
-/**
- * Binding version of {@link GenericEntityOwnershipCandidateRegistration}.
- *
- * @author Thomas Pantelis
- */
-@Beta
-public interface EntityOwnershipCandidateRegistration extends
-        GenericEntityOwnershipCandidateRegistration<InstanceIdentifier<?>, Entity> {
-}
index a32cb6e101c353841f39d278275f66004cca4e20..557b04a1e10cfd614cdf7370e9845ad28240ed14 100644 (file)
@@ -12,6 +12,7 @@ import java.util.Optional;
 import org.opendaylight.mdsal.eos.common.api.CandidateAlreadyRegisteredException;
 import org.opendaylight.mdsal.eos.common.api.EntityOwnershipState;
 import org.opendaylight.mdsal.eos.common.api.GenericEntityOwnershipService;
+import org.opendaylight.yangtools.concepts.Registration;
 import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;
 
 /**
@@ -24,12 +25,10 @@ public interface EntityOwnershipService extends
         GenericEntityOwnershipService<InstanceIdentifier<?>, Entity, EntityOwnershipListener> {
 
     @Override
-    EntityOwnershipCandidateRegistration registerCandidate(Entity entity)
-            throws CandidateAlreadyRegisteredException;
+    Registration registerCandidate(Entity entity) throws CandidateAlreadyRegisteredException;
 
     @Override
-    EntityOwnershipListenerRegistration registerListener(String entityType,
-            EntityOwnershipListener listener);
+    EntityOwnershipListenerRegistration registerListener(String entityType, EntityOwnershipListener listener);
 
     @Override
     Optional<EntityOwnershipState> getOwnershipState(Entity forEntity);
diff --git a/entityownership/mdsal-eos-common-api/src/main/java/org/opendaylight/mdsal/eos/common/api/GenericEntityOwnershipCandidateRegistration.java b/entityownership/mdsal-eos-common-api/src/main/java/org/opendaylight/mdsal/eos/common/api/GenericEntityOwnershipCandidateRegistration.java
deleted file mode 100644 (file)
index c56449f..0000000
+++ /dev/null
@@ -1,30 +0,0 @@
-/*
- * Copyright (c) 2015 Brocade Communications Systems, Inc. and others.  All rights reserved.
- *
- * This program and the accompanying materials are made available under the
- * 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.eos.common.api;
-
-import org.opendaylight.yangtools.concepts.HierarchicalIdentifier;
-import org.opendaylight.yangtools.concepts.ObjectRegistration;
-
-/**
- * An interface that records a request to register a Candidate for a given Entity. Calling close on the
- * registration will remove the Candidate from any future ownership considerations for that Entity.
- *
- * @author Thomas Pantelis
- *
- * @param <P> the instance identifier type
- * @param <E> the GenericEntity type
- */
-public interface GenericEntityOwnershipCandidateRegistration<P extends HierarchicalIdentifier<P>,
-        E extends GenericEntity<P>> extends ObjectRegistration<E> {
-
-    /**
-     * Unregister the candidate.
-     */
-    @Override
-    void close();
-}
index ab5eded6dde115831dcbc59d040fdcf3a750b361..d52ab1cbfa94535dbd47c66234ac30d79d78de03 100644 (file)
@@ -10,6 +10,7 @@ package org.opendaylight.mdsal.eos.common.api;
 import java.util.Optional;
 import org.eclipse.jdt.annotation.NonNull;
 import org.opendaylight.yangtools.concepts.HierarchicalIdentifier;
+import org.opendaylight.yangtools.concepts.Registration;
 
 /**
  * <p>
@@ -29,7 +30,6 @@ import org.opendaylight.yangtools.concepts.HierarchicalIdentifier;
  */
 public interface GenericEntityOwnershipService<P extends HierarchicalIdentifier<P>, E extends GenericEntity<P>,
         L extends GenericEntityOwnershipListener<P, ? extends GenericEntityOwnershipChange<P, E>>> {
-
     /**
      * Registers a candidate for ownership of the given entity. Only one such request can be made per entity
      * per process. If multiple requests for registering a candidate for a given entity are received in the
@@ -43,8 +43,7 @@ public interface GenericEntityOwnershipService<P extends HierarchicalIdentifier<
      * @return a registration object that can be used to unregister the Candidate
      * @throws CandidateAlreadyRegisteredException if the candidate was already registered
      */
-    GenericEntityOwnershipCandidateRegistration<P, E> registerCandidate(@NonNull E entity)
-            throws CandidateAlreadyRegisteredException;
+    @NonNull Registration registerCandidate(@NonNull E entity) throws CandidateAlreadyRegisteredException;
 
     /**
      * Registers a listener that is interested in ownership changes for entities of the given entity type. The
diff --git a/entityownership/mdsal-eos-common-spi/src/main/java/org/opendaylight/mdsal/eos/common/spi/AbstractGenericEntityOwnershipCandidateRegistration.java b/entityownership/mdsal-eos-common-spi/src/main/java/org/opendaylight/mdsal/eos/common/spi/AbstractGenericEntityOwnershipCandidateRegistration.java
deleted file mode 100644 (file)
index 2d4459f..0000000
+++ /dev/null
@@ -1,29 +0,0 @@
-/*
- * Copyright (c) 2016 Cisco Systems, Inc. and others.  All rights reserved.
- *
- * This program and the accompanying materials are made available under the
- * 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.eos.common.spi;
-
-import org.eclipse.jdt.annotation.NonNull;
-import org.opendaylight.mdsal.eos.common.api.GenericEntity;
-import org.opendaylight.mdsal.eos.common.api.GenericEntityOwnershipCandidateRegistration;
-import org.opendaylight.yangtools.concepts.AbstractObjectRegistration;
-import org.opendaylight.yangtools.concepts.HierarchicalIdentifier;
-
-/**
- * Abstract base class for an EntityOwnershipCandidateRegistration.
- *
- * @param <P> the instance identifier path type
- * @param <E> the GenericEntity type
- */
-public abstract class AbstractGenericEntityOwnershipCandidateRegistration<P extends HierarchicalIdentifier<P>,
-        E extends GenericEntity<P>>
-        extends AbstractObjectRegistration<E> implements GenericEntityOwnershipCandidateRegistration<P, E> {
-
-    protected AbstractGenericEntityOwnershipCandidateRegistration(final @NonNull E entity) {
-        super(entity);
-    }
-}
diff --git a/entityownership/mdsal-eos-common-spi/src/test/java/org/opendaylight/mdsal/eos/common/spi/AbstractGenericEntityOwnershipCandidateRegistrationTest.java b/entityownership/mdsal-eos-common-spi/src/test/java/org/opendaylight/mdsal/eos/common/spi/AbstractGenericEntityOwnershipCandidateRegistrationTest.java
deleted file mode 100644 (file)
index e28e47d..0000000
+++ /dev/null
@@ -1,32 +0,0 @@
-/*
- * Copyright (c) 2016 Cisco Systems, Inc. and others.  All rights reserved.
- *
- * This program and the accompanying materials are made available under the
- * 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.eos.common.spi;
-
-import static org.junit.Assert.assertNotNull;
-import static org.mockito.Mockito.mock;
-
-import org.junit.Test;
-import org.opendaylight.mdsal.eos.common.api.GenericEntity;
-
-public class AbstractGenericEntityOwnershipCandidateRegistrationTest
-        extends AbstractGenericEntityOwnershipCandidateRegistration {
-
-    @Test
-    public void basicTest() {
-        assertNotNull(this);
-    }
-
-    public AbstractGenericEntityOwnershipCandidateRegistrationTest() {
-        super(mock(GenericEntity.class));
-    }
-
-    @Override
-    protected void removeRegistration() {
-        //NOOP
-    }
-}
\ No newline at end of file
diff --git a/entityownership/mdsal-eos-dom-api/src/main/java/org/opendaylight/mdsal/eos/dom/api/DOMEntityOwnershipCandidateRegistration.java b/entityownership/mdsal-eos-dom-api/src/main/java/org/opendaylight/mdsal/eos/dom/api/DOMEntityOwnershipCandidateRegistration.java
deleted file mode 100644 (file)
index 1b99b51..0000000
+++ /dev/null
@@ -1,22 +0,0 @@
-/*
- * Copyright (c) 2015 Brocade Communications Systems, Inc. and others.  All rights reserved.
- *
- * This program and the accompanying materials are made available under the
- * 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.eos.dom.api;
-
-import com.google.common.annotations.Beta;
-import org.opendaylight.mdsal.eos.common.api.GenericEntityOwnershipCandidateRegistration;
-import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier;
-
-/**
- * DOM version of {@link GenericEntityOwnershipCandidateRegistration}.
- *
- * @author Thomas Pantelis
- */
-@Beta
-public interface DOMEntityOwnershipCandidateRegistration extends
-        GenericEntityOwnershipCandidateRegistration<YangInstanceIdentifier, DOMEntity> {
-}
index b844475745c8b916c4aeee6831c105b277680df5..1202a685fe6c4e4aa8bfb071cdb98ab8d5510b59 100644 (file)
@@ -12,6 +12,7 @@ import java.util.Optional;
 import org.opendaylight.mdsal.eos.common.api.CandidateAlreadyRegisteredException;
 import org.opendaylight.mdsal.eos.common.api.EntityOwnershipState;
 import org.opendaylight.mdsal.eos.common.api.GenericEntityOwnershipService;
+import org.opendaylight.yangtools.concepts.Registration;
 import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier;
 
 /**
@@ -23,8 +24,7 @@ import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier;
 public interface DOMEntityOwnershipService extends
         GenericEntityOwnershipService<YangInstanceIdentifier, DOMEntity, DOMEntityOwnershipListener> {
     @Override
-    DOMEntityOwnershipCandidateRegistration registerCandidate(DOMEntity entity)
-            throws CandidateAlreadyRegisteredException;
+    Registration registerCandidate(DOMEntity entity) throws CandidateAlreadyRegisteredException;
 
     @Override
     DOMEntityOwnershipListenerRegistration registerListener(String entityType,
index 4247194c95e60a39a9dbced06ec6f4a7bc5ce2ae..64b9a985e50b56202810a9dd992f3b1235eb75dd 100644 (file)
@@ -13,7 +13,6 @@ import static org.opendaylight.mdsal.eos.common.api.EntityOwnershipChangeState.L
 
 import com.google.common.annotations.VisibleForTesting;
 import com.google.common.base.MoreObjects;
-import com.google.common.base.MoreObjects.ToStringHelper;
 import com.google.common.collect.ArrayListMultimap;
 import com.google.common.collect.HashBasedTable;
 import com.google.common.collect.ImmutableList;
@@ -28,20 +27,24 @@ import org.opendaylight.mdsal.eos.common.api.CandidateAlreadyRegisteredException
 import org.opendaylight.mdsal.eos.common.api.EntityOwnershipChangeState;
 import org.opendaylight.mdsal.eos.common.api.EntityOwnershipState;
 import org.opendaylight.mdsal.eos.dom.api.DOMEntity;
-import org.opendaylight.mdsal.eos.dom.api.DOMEntityOwnershipCandidateRegistration;
 import org.opendaylight.mdsal.eos.dom.api.DOMEntityOwnershipChange;
 import org.opendaylight.mdsal.eos.dom.api.DOMEntityOwnershipListener;
 import org.opendaylight.mdsal.eos.dom.api.DOMEntityOwnershipListenerRegistration;
 import org.opendaylight.mdsal.eos.dom.api.DOMEntityOwnershipService;
+import org.opendaylight.mdsal.eos.dom.simple.di.LocalDOMEntityOwnershipService;
 import org.opendaylight.yangtools.concepts.AbstractObjectRegistration;
+import org.opendaylight.yangtools.concepts.AbstractRegistration;
+import org.opendaylight.yangtools.concepts.Registration;
 import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier;
+import org.osgi.service.component.annotations.Activate;
 import org.osgi.service.component.annotations.Component;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
+@Component
 @MetaInfServices
-@Component(immediate = true)
-public class SimpleDOMEntityOwnershipService implements DOMEntityOwnershipService {
+public sealed class SimpleDOMEntityOwnershipService implements DOMEntityOwnershipService
+        permits LocalDOMEntityOwnershipService {
     private static final Logger LOG = LoggerFactory.getLogger(SimpleDOMEntityOwnershipService.class);
 
     @GuardedBy("entities")
@@ -52,20 +55,20 @@ public class SimpleDOMEntityOwnershipService implements DOMEntityOwnershipServic
 
     private final UUID uuid;
 
+    @Activate
+    public SimpleDOMEntityOwnershipService() {
+        this(UUID.randomUUID());
+    }
+
     @VisibleForTesting
     SimpleDOMEntityOwnershipService(final UUID uuid) {
         this.uuid = requireNonNull(uuid);
     }
 
-    public SimpleDOMEntityOwnershipService() {
-        this(UUID.randomUUID());
-    }
-
     @Override
-    public DOMEntityOwnershipCandidateRegistration registerCandidate(final DOMEntity entity)
-            throws CandidateAlreadyRegisteredException {
+    public Registration registerCandidate(final DOMEntity entity) throws CandidateAlreadyRegisteredException {
         synchronized (entities) {
-            final DOMEntity prev = entities.get(entity.getType(), entity.getIdentifier());
+            final var prev = entities.get(entity.getType(), entity.getIdentifier());
             if (prev != null) {
                 throw new CandidateAlreadyRegisteredException(prev);
             }
@@ -75,7 +78,12 @@ public class SimpleDOMEntityOwnershipService implements DOMEntityOwnershipServic
         }
 
         notifyListeners(entity, LOCAL_OWNERSHIP_GRANTED);
-        return new EntityRegistration(entity);
+        return new AbstractRegistration() {
+            @Override
+            protected void removeRegistration() {
+                removeEntity(entity);
+            }
+        };
     }
 
     @Override
@@ -153,28 +161,14 @@ public class SimpleDOMEntityOwnershipService implements DOMEntityOwnershipServic
 
     @Override
     public String toString() {
-        final ToStringHelper h = MoreObjects.toStringHelper(SimpleDOMEntityOwnershipService.class).add("uuid", uuid);
-
+        final var helper = MoreObjects.toStringHelper(SimpleDOMEntityOwnershipService.class).add("uuid", uuid);
         synchronized (entities) {
-            h.add("entities", entities);
+            helper.add("entities", entities);
         }
         synchronized (listeners) {
-            h.add("listeners", listeners);
-        }
-
-        return h.toString();
-    }
-
-    private final class EntityRegistration extends AbstractObjectRegistration<DOMEntity> implements
-            DOMEntityOwnershipCandidateRegistration {
-        EntityRegistration(final DOMEntity entity) {
-            super(entity);
-        }
-
-        @Override
-        protected void removeRegistration() {
-            removeEntity(getInstance());
+            helper.add("listeners", listeners);
         }
+        return helper.toString();
     }
 
     private final class ListenerRegistration extends AbstractObjectRegistration<DOMEntityOwnershipListener>
index 95f7603cf1c42cb2ab4ccec8f2f90f30e399a277..03f3ffc119e988104dbf9997ad32fc3e1ff2019b 100644 (file)
@@ -16,12 +16,10 @@ import org.opendaylight.mdsal.eos.dom.simple.SimpleDOMEntityOwnershipService;
 /**
  * Simple {@link DOMEntityOwnershipService} operating as an isolated island. It has no awareness of the world outside
  * of itself.
- *
- * @author Robert Varga
  */
 @Beta
 @Singleton
-public class LocalDOMEntityOwnershipService extends SimpleDOMEntityOwnershipService {
+public final class LocalDOMEntityOwnershipService extends SimpleDOMEntityOwnershipService {
     @Inject
     public LocalDOMEntityOwnershipService() {
         // Exposed for DI
index 2476151516e21eeb5c1ae46cd3cd298d590c6a45..197f303e92c1f3cee292e8e1e496da35493ae9a4 100644 (file)
@@ -7,10 +7,11 @@
  */
 package org.opendaylight.mdsal.eos.dom.simple;
 
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertFalse;
-import static org.junit.Assert.assertNotNull;
-import static org.junit.Assert.assertTrue;
+import static org.junit.jupiter.api.Assertions.assertEquals;
+import static org.junit.jupiter.api.Assertions.assertFalse;
+import static org.junit.jupiter.api.Assertions.assertNotNull;
+import static org.junit.jupiter.api.Assertions.assertThrows;
+import static org.junit.jupiter.api.Assertions.assertTrue;
 import static org.mockito.ArgumentMatchers.any;
 import static org.mockito.Mockito.doNothing;
 import static org.mockito.Mockito.mock;
@@ -19,102 +20,88 @@ import static org.mockito.Mockito.verify;
 
 import java.util.Optional;
 import java.util.UUID;
-import org.junit.Test;
-import org.junit.runner.RunWith;
+import org.junit.jupiter.api.Test;
+import org.junit.jupiter.api.extension.ExtendWith;
 import org.mockito.ArgumentCaptor;
-import org.mockito.junit.MockitoJUnitRunner;
+import org.mockito.junit.jupiter.MockitoExtension;
 import org.opendaylight.mdsal.eos.common.api.CandidateAlreadyRegisteredException;
 import org.opendaylight.mdsal.eos.common.api.EntityOwnershipChangeState;
 import org.opendaylight.mdsal.eos.common.api.EntityOwnershipState;
 import org.opendaylight.mdsal.eos.dom.api.DOMEntity;
-import org.opendaylight.mdsal.eos.dom.api.DOMEntityOwnershipCandidateRegistration;
 import org.opendaylight.mdsal.eos.dom.api.DOMEntityOwnershipChange;
 import org.opendaylight.mdsal.eos.dom.api.DOMEntityOwnershipListener;
-import org.opendaylight.mdsal.eos.dom.api.DOMEntityOwnershipListenerRegistration;
 import org.opendaylight.mdsal.eos.dom.api.DOMEntityOwnershipService;
 
-@RunWith(MockitoJUnitRunner.StrictStubs.class)
-public class SimpleDOMEntityOwnershipServiceTest {
-    public static final String FOO_TYPE = "foo";
-    public static final String BAR_TYPE = "bar";
+@ExtendWith(MockitoExtension.class)
+class SimpleDOMEntityOwnershipServiceTest {
+    private static final String FOO_TYPE = "foo";
+    private static final String BAR_TYPE = "bar";
+    private static final DOMEntity FOO_FOO_ENTITY = new DOMEntity(FOO_TYPE, "foo");
+    private static final DOMEntity FOO_BAR_ENTITY = new DOMEntity(FOO_TYPE, "bar");
 
-    public static final DOMEntity FOO_FOO_ENTITY = new DOMEntity(FOO_TYPE, "foo");
-    public static final DOMEntity FOO_BAR_ENTITY = new DOMEntity(FOO_TYPE, "bar");
-
-    public final DOMEntityOwnershipService service = new SimpleDOMEntityOwnershipService();
+    final DOMEntityOwnershipService service = new SimpleDOMEntityOwnershipService();
 
     @Test
-    public void testNonExistingEntity() {
+    void testNonExistingEntity() {
         assertFalse(service.isCandidateRegistered(FOO_FOO_ENTITY));
-        final Optional<EntityOwnershipState> state = service.getOwnershipState(FOO_FOO_ENTITY);
-        assertNotNull(state);
-        assertFalse(state.isPresent());
+        assertEquals(Optional.empty(), service.getOwnershipState(FOO_FOO_ENTITY));
     }
 
     @Test
-    public void testExistingEntity() throws CandidateAlreadyRegisteredException {
-        final DOMEntityOwnershipCandidateRegistration reg = service.registerCandidate(FOO_FOO_ENTITY);
-        assertNotNull(reg);
-
-        assertTrue(service.isCandidateRegistered(FOO_FOO_ENTITY));
-        assertFalse(service.isCandidateRegistered(FOO_BAR_ENTITY));
+    void testExistingEntity() throws Exception {
+        try (var reg = service.registerCandidate(FOO_FOO_ENTITY)) {
+            assertNotNull(reg);
 
-        final Optional<EntityOwnershipState> state = service.getOwnershipState(FOO_FOO_ENTITY);
-        assertNotNull(state);
-        assertTrue(state.isPresent());
-        assertEquals(EntityOwnershipState.IS_OWNER, state.orElseThrow());
+            assertTrue(service.isCandidateRegistered(FOO_FOO_ENTITY));
+            assertFalse(service.isCandidateRegistered(FOO_BAR_ENTITY));
 
-        reg.close();
+            assertEquals(Optional.of(EntityOwnershipState.IS_OWNER), service.getOwnershipState(FOO_FOO_ENTITY));
+        }
         assertFalse(service.isCandidateRegistered(FOO_FOO_ENTITY));
     }
 
-    @Test(expected = CandidateAlreadyRegisteredException.class)
-    public void testDuplicateRegistration() throws CandidateAlreadyRegisteredException {
-        final DOMEntityOwnershipCandidateRegistration reg = service.registerCandidate(FOO_FOO_ENTITY);
-        assertNotNull(reg);
+    @Test
+    void testDuplicateRegistration() throws Exception {
+        assertNotNull(service.registerCandidate(FOO_FOO_ENTITY));
 
         // Should throw
-        service.registerCandidate(FOO_FOO_ENTITY);
+        assertThrows(CandidateAlreadyRegisteredException.class, () -> service.registerCandidate(FOO_FOO_ENTITY));
     }
 
     @Test
-    public void testListener() throws CandidateAlreadyRegisteredException {
-        final DOMEntityOwnershipCandidateRegistration entityReg = service.registerCandidate(FOO_FOO_ENTITY);
+    void testListener() throws Exception {
+        final var entityReg = service.registerCandidate(FOO_FOO_ENTITY);
         assertNotNull(entityReg);
 
         // Mismatched type, not triggered
-        final DOMEntityOwnershipListener barListener = mock(DOMEntityOwnershipListener.class);
-        final DOMEntityOwnershipListenerRegistration barReg = service.registerListener(BAR_TYPE, barListener);
-
-        // Matching type should be triggered
-        final DOMEntityOwnershipListener fooListener = mock(DOMEntityOwnershipListener.class);
-        doNothing().when(fooListener).ownershipChanged(any(DOMEntityOwnershipChange.class));
-        final DOMEntityOwnershipListenerRegistration fooReg = service.registerListener(FOO_TYPE, fooListener);
-        final ArgumentCaptor<DOMEntityOwnershipChange> fooCaptor = ArgumentCaptor.forClass(
-            DOMEntityOwnershipChange.class);
-        verify(fooListener).ownershipChanged(fooCaptor.capture());
-
-        DOMEntityOwnershipChange fooChange = fooCaptor.getValue();
-        assertEquals(FOO_FOO_ENTITY, fooChange.getEntity());
-        assertEquals(EntityOwnershipChangeState.LOCAL_OWNERSHIP_GRANTED, fooChange.getState());
-
-        reset(fooListener);
-        doNothing().when(fooListener).ownershipChanged(any(DOMEntityOwnershipChange.class));
-        entityReg.close();
-        verify(fooListener).ownershipChanged(fooCaptor.capture());
-        fooChange = fooCaptor.getValue();
-        assertEquals(FOO_FOO_ENTITY, fooChange.getEntity());
-        assertEquals(EntityOwnershipChangeState.LOCAL_OWNERSHIP_LOST_NO_OWNER, fooChange.getState());
-
-        fooReg.close();
-        barReg.close();
+        final var barListener = mock(DOMEntityOwnershipListener.class);
+        try (var barReg = service.registerListener(BAR_TYPE, barListener)) {
+            // Matching type should be triggered
+            final var fooListener = mock(DOMEntityOwnershipListener.class);
+            doNothing().when(fooListener).ownershipChanged(any(DOMEntityOwnershipChange.class));
+            try (var fooReg = service.registerListener(FOO_TYPE, fooListener)) {
+                final var fooCaptor = ArgumentCaptor.forClass(DOMEntityOwnershipChange.class);
+                verify(fooListener).ownershipChanged(fooCaptor.capture());
+
+                var fooChange = fooCaptor.getValue();
+                assertEquals(FOO_FOO_ENTITY, fooChange.getEntity());
+                assertEquals(EntityOwnershipChangeState.LOCAL_OWNERSHIP_GRANTED, fooChange.getState());
+
+                reset(fooListener);
+                doNothing().when(fooListener).ownershipChanged(any(DOMEntityOwnershipChange.class));
+                entityReg.close();
+                verify(fooListener).ownershipChanged(fooCaptor.capture());
+                fooChange = fooCaptor.getValue();
+                assertEquals(FOO_FOO_ENTITY, fooChange.getEntity());
+                assertEquals(EntityOwnershipChangeState.LOCAL_OWNERSHIP_LOST_NO_OWNER, fooChange.getState());
+            }
+        }
     }
 
     @Test
-    public void testToString() throws CandidateAlreadyRegisteredException {
-        final UUID uuid = UUID.randomUUID();
-        final String expected = String.format("SimpleDOMEntityOwnershipService{uuid=%s, entities={}, listeners={}}",
-            uuid);
+    void testToString() throws Exception {
+        final var uuid = UUID.randomUUID();
+        final var expected = String.format("SimpleDOMEntityOwnershipService{uuid=%s, entities={}, listeners={}}", uuid);
         assertEquals(expected, new SimpleDOMEntityOwnershipService(uuid).toString());
     }
 }
index 37fa755c88a70ff7eb6781b57bd6712d23ddd42e..ba9cdfecce7197499e755c6b7cdd91620016f036 100644 (file)
@@ -37,13 +37,13 @@ import org.eclipse.jdt.annotation.NonNull;
 import org.opendaylight.mdsal.eos.common.api.CandidateAlreadyRegisteredException;
 import org.opendaylight.mdsal.eos.common.api.EntityOwnershipChangeState;
 import org.opendaylight.mdsal.eos.common.api.GenericEntity;
-import org.opendaylight.mdsal.eos.common.api.GenericEntityOwnershipCandidateRegistration;
 import org.opendaylight.mdsal.eos.common.api.GenericEntityOwnershipChange;
 import org.opendaylight.mdsal.eos.common.api.GenericEntityOwnershipListener;
 import org.opendaylight.mdsal.eos.common.api.GenericEntityOwnershipService;
 import org.opendaylight.mdsal.singleton.common.api.ClusterSingletonService;
 import org.opendaylight.mdsal.singleton.common.api.ClusterSingletonServiceRegistration;
 import org.opendaylight.yangtools.concepts.HierarchicalIdentifier;
+import org.opendaylight.yangtools.concepts.Registration;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
@@ -164,7 +164,7 @@ final class ClusterSingletonServiceGroupImpl<P extends HierarchicalIdentifier<P>
      * acquire {@link #cleanupEntity}.
      */
     @GuardedBy("this")
-    private GenericEntityOwnershipCandidateRegistration<P, E> serviceEntityReg = null;
+    private Registration serviceEntityReg = null;
     /**
      * Service (base) entity last reported state.
      */
@@ -176,7 +176,7 @@ final class ClusterSingletonServiceGroupImpl<P extends HierarchicalIdentifier<P>
      * and startup.
      */
     @GuardedBy("this")
-    private GenericEntityOwnershipCandidateRegistration<P, E> cleanupEntityReg;
+    private Registration cleanupEntityReg;
     /**
      * Cleanup (owner) entity last reported state.
      */
index 46a600b842779c25785e29da3b9b4b8446bc70dd..be56f7f41bb15fafde7cae7aed021fd987a59395 100644 (file)
@@ -28,13 +28,13 @@ import org.mockito.Mock;
 import org.opendaylight.mdsal.eos.common.api.CandidateAlreadyRegisteredException;
 import org.opendaylight.mdsal.eos.common.api.EntityOwnershipChangeState;
 import org.opendaylight.mdsal.eos.dom.api.DOMEntity;
-import org.opendaylight.mdsal.eos.dom.api.DOMEntityOwnershipCandidateRegistration;
 import org.opendaylight.mdsal.eos.dom.api.DOMEntityOwnershipChange;
 import org.opendaylight.mdsal.eos.dom.api.DOMEntityOwnershipListenerRegistration;
 import org.opendaylight.mdsal.eos.dom.api.DOMEntityOwnershipService;
 import org.opendaylight.mdsal.singleton.common.api.ClusterSingletonService;
 import org.opendaylight.mdsal.singleton.common.api.ClusterSingletonServiceRegistration;
 import org.opendaylight.mdsal.singleton.common.api.ServiceGroupIdentifier;
+import org.opendaylight.yangtools.concepts.Registration;
 
 /**
  * Abstract {@link DOMClusterSingletonServiceProviderImpl} testing substrate.
@@ -70,7 +70,7 @@ public abstract class AbstractDOMClusterServiceProviderTest {
 
         @Override
         public final void instantiateServiceInstance() {
-            this.serviceState = TestClusterSingletonServiceState.STARTED;
+            serviceState = TestClusterSingletonServiceState.STARTED;
         }
 
         final TestClusterSingletonServiceState getServiceState() {
@@ -79,7 +79,7 @@ public abstract class AbstractDOMClusterServiceProviderTest {
 
         @Override
         public ListenableFuture<Void> closeServiceInstance() {
-            this.serviceState = TestClusterSingletonServiceState.DESTROYED;
+            serviceState = TestClusterSingletonServiceState.DESTROYED;
             return Futures.immediateFuture(null);
         }
     }
@@ -91,9 +91,9 @@ public abstract class AbstractDOMClusterServiceProviderTest {
     @Mock
     public DOMEntityOwnershipService mockEos;
     @Mock
-    public DOMEntityOwnershipCandidateRegistration mockEntityCandReg;
+    public Registration mockEntityCandReg;
     @Mock
-    public DOMEntityOwnershipCandidateRegistration mockDoubleEntityCandReg;
+    public Registration mockDoubleEntityCandReg;
     @Mock
     public DOMEntityOwnershipListenerRegistration mockEosEntityListReg;
     @Mock
index ffe062051078c68c857b65af12acd7948a7be185..09fb06348e1b6dee0887fed035046e7775212d13 100644 (file)
@@ -28,7 +28,6 @@ import org.mockito.Mock;
 import org.mockito.junit.MockitoJUnitRunner;
 import org.opendaylight.mdsal.eos.common.api.CandidateAlreadyRegisteredException;
 import org.opendaylight.mdsal.eos.common.api.EntityOwnershipChangeState;
-import org.opendaylight.mdsal.eos.common.api.GenericEntityOwnershipCandidateRegistration;
 import org.opendaylight.mdsal.eos.common.api.GenericEntityOwnershipChange;
 import org.opendaylight.mdsal.eos.common.api.GenericEntityOwnershipListener;
 import org.opendaylight.mdsal.eos.common.api.GenericEntityOwnershipService;
@@ -37,6 +36,7 @@ import org.opendaylight.mdsal.singleton.common.api.ClusterSingletonServiceRegist
 import org.opendaylight.mdsal.singleton.common.api.ServiceGroupIdentifier;
 import org.opendaylight.mdsal.singleton.dom.impl.util.TestEntity;
 import org.opendaylight.mdsal.singleton.dom.impl.util.TestInstanceIdentifier;
+import org.opendaylight.yangtools.concepts.Registration;
 
 /**
  * Testing {@link ClusterSingletonServiceGroupImpl}.
@@ -54,9 +54,9 @@ public class ClusterSingletonServiceGroupImplTest {
     @Mock
     public ClusterSingletonService mockClusterSingletonServiceSecond;
     @Mock
-    public GenericEntityOwnershipCandidateRegistration<?, ?> mockEntityCandReg;
+    public Registration mockEntityCandReg;
     @Mock
-    public GenericEntityOwnershipCandidateRegistration<?, ?> mockCloseEntityCandReg;
+    public Registration mockCloseEntityCandReg;
     @Mock
     public GenericEntityOwnershipListener<TestInstanceIdentifier,
         GenericEntityOwnershipChange<TestInstanceIdentifier, TestEntity>> mockEosListener;