X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=blobdiff_plain;f=pcep%2Fspi%2Fsrc%2Fmain%2Fjava%2Forg%2Fopendaylight%2Fprotocol%2Fpcep%2Fspi%2Fpojo%2FAbstractPCEPExtensionProviderActivator.java;h=1e4c8994cead370cdf47ea7fde581d02c7fe01f0;hb=310f15691a6235382a40320faaca6e5a6e3a4484;hp=1a6d0118f688f1804dc6a34766825426259da971;hpb=db472cfbd54adf41841a0bb88cb645dc71e2a5ff;p=bgpcep.git diff --git a/pcep/spi/src/main/java/org/opendaylight/protocol/pcep/spi/pojo/AbstractPCEPExtensionProviderActivator.java b/pcep/spi/src/main/java/org/opendaylight/protocol/pcep/spi/pojo/AbstractPCEPExtensionProviderActivator.java index 1a6d0118f6..1e4c8994ce 100644 --- a/pcep/spi/src/main/java/org/opendaylight/protocol/pcep/spi/pojo/AbstractPCEPExtensionProviderActivator.java +++ b/pcep/spi/src/main/java/org/opendaylight/protocol/pcep/spi/pojo/AbstractPCEPExtensionProviderActivator.java @@ -7,45 +7,41 @@ */ package org.opendaylight.protocol.pcep.spi.pojo; -import java.util.List; +import static com.google.common.base.Preconditions.checkState; +import static java.util.Objects.requireNonNull; +import java.util.List; import javax.annotation.concurrent.GuardedBy; - import org.opendaylight.protocol.pcep.spi.PCEPExtensionProviderActivator; import org.opendaylight.protocol.pcep.spi.PCEPExtensionProviderContext; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - -import com.google.common.base.Preconditions; - -public abstract class AbstractPCEPExtensionProviderActivator implements PCEPExtensionProviderActivator { - private static final Logger LOG = LoggerFactory.getLogger(AbstractPCEPExtensionProviderActivator.class); +import org.opendaylight.yangtools.concepts.Registration; - @GuardedBy("this") - private List registrations; +public abstract class AbstractPCEPExtensionProviderActivator implements AutoCloseable, PCEPExtensionProviderActivator { + @GuardedBy("this") + private List registrations; - @GuardedBy("this") - protected abstract List startImpl(PCEPExtensionProviderContext context); + @GuardedBy("this") + protected abstract List startImpl(PCEPExtensionProviderContext context); - @Override - public final synchronized void start(final PCEPExtensionProviderContext context) { - Preconditions.checkState(this.registrations == null); + @Override + public final synchronized void start(final PCEPExtensionProviderContext context) { + checkState(this.registrations == null); - this.registrations = Preconditions.checkNotNull(startImpl(context)); - } + this.registrations = requireNonNull(startImpl(context)); + } - @Override - public final synchronized void stop() { - Preconditions.checkState(this.registrations != null); + @Override + public final synchronized void stop() { + if (this.registrations == null) { + return; + } - for (final AutoCloseable r : this.registrations) { - try { - r.close(); - } catch (final Exception e) { - LOG.warn("Failed to close registration", e); - } - } + this.registrations.forEach(Registration::close); + this.registrations = null; + } - this.registrations = null; - } + @Override + public final void close() { + stop(); + } }