Convert mdsal-eos-dom-simple to a JPMS module
[mdsal.git] / entityownership / mdsal-eos-dom-simple / src / main / java / org / opendaylight / mdsal / eos / dom / simple / SimpleDOMEntityOwnershipService.java
index 8fc0334bb6f70f1e8a5f5df1a23a25f9971b5db9..8399c4898236f50719eb8d83b4dd3eb75de9f955 100644 (file)
@@ -7,22 +7,23 @@
  */
 package org.opendaylight.mdsal.eos.dom.simple;
 
+import static java.util.Objects.requireNonNull;
 import static org.opendaylight.mdsal.eos.common.api.EntityOwnershipChangeState.LOCAL_OWNERSHIP_GRANTED;
 import static org.opendaylight.mdsal.eos.common.api.EntityOwnershipChangeState.LOCAL_OWNERSHIP_LOST_NO_OWNER;
 
 import com.google.common.annotations.VisibleForTesting;
 import com.google.common.base.MoreObjects;
 import com.google.common.base.MoreObjects.ToStringHelper;
-import com.google.common.base.Preconditions;
 import com.google.common.collect.ArrayListMultimap;
 import com.google.common.collect.HashBasedTable;
 import com.google.common.collect.ImmutableList;
 import com.google.common.collect.Multimap;
 import com.google.common.collect.Table;
+import edu.umd.cs.findbugs.annotations.SuppressFBWarnings;
 import java.util.Collection;
 import java.util.Optional;
 import java.util.UUID;
-import javax.annotation.concurrent.GuardedBy;
+import org.checkerframework.checker.lock.qual.GuardedBy;
 import org.kohsuke.MetaInfServices;
 import org.opendaylight.mdsal.eos.common.api.CandidateAlreadyRegisteredException;
 import org.opendaylight.mdsal.eos.common.api.EntityOwnershipChangeState;
@@ -35,17 +36,13 @@ import org.opendaylight.mdsal.eos.dom.api.DOMEntityOwnershipListenerRegistration
 import org.opendaylight.mdsal.eos.dom.api.DOMEntityOwnershipService;
 import org.opendaylight.yangtools.concepts.AbstractObjectRegistration;
 import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier;
+import org.osgi.service.component.annotations.Component;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
-/**
- * Simple {@link DOMEntityOwnershipService} operating as an isolated island. It has no awareness of the world outside
- * of itself.
- *
- * @author Robert Varga
- */
 @MetaInfServices
-public final class SimpleDOMEntityOwnershipService implements DOMEntityOwnershipService {
+@Component(immediate = true)
+public class SimpleDOMEntityOwnershipService implements DOMEntityOwnershipService {
     private static final Logger LOG = LoggerFactory.getLogger(SimpleDOMEntityOwnershipService.class);
 
     @GuardedBy("entities")
@@ -58,7 +55,7 @@ public final class SimpleDOMEntityOwnershipService implements DOMEntityOwnership
 
     @VisibleForTesting
     SimpleDOMEntityOwnershipService(final UUID uuid) {
-        this.uuid = Preconditions.checkNotNull(uuid);
+        this.uuid = requireNonNull(uuid);
     }
 
     public SimpleDOMEntityOwnershipService() {
@@ -115,6 +112,8 @@ public final class SimpleDOMEntityOwnershipService implements DOMEntityOwnership
         }
     }
 
+    @SuppressFBWarnings(value = "UPM_UNCALLED_PRIVATE_METHOD",
+            justification = "https://github.com/spotbugs/spotbugs/issues/811")
     private void removeEntity(final DOMEntity entity) {
         synchronized (entities) {
             entities.remove(entity.getType(), entity.getIdentifier());
@@ -187,7 +186,7 @@ public final class SimpleDOMEntityOwnershipService implements DOMEntityOwnership
 
         ListenerRegistration(final String entityType, final DOMEntityOwnershipListener listener) {
             super(listener);
-            this.entityType = Preconditions.checkNotNull(entityType);
+            this.entityType = requireNonNull(entityType);
         }
 
         @Override