X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=blobdiff_plain;f=dom%2Fmdsal-dom-broker%2Fsrc%2Fmain%2Fjava%2Forg%2Fopendaylight%2Fmdsal%2Fdom%2Fbroker%2FDOMMountPointServiceImpl.java;h=80d0c80ee34a53e1420714bce6b476188dbb5b57;hb=11408d627adca7eb71ac956c3ad01f75b6b91596;hp=cb834f570a64eb033843791afe227871741d4816;hpb=6fe135d7aceb33c860fc3fbd01a289dc30804fcf;p=mdsal.git diff --git a/dom/mdsal-dom-broker/src/main/java/org/opendaylight/mdsal/dom/broker/DOMMountPointServiceImpl.java b/dom/mdsal-dom-broker/src/main/java/org/opendaylight/mdsal/dom/broker/DOMMountPointServiceImpl.java index cb834f570a..80d0c80ee3 100644 --- a/dom/mdsal-dom-broker/src/main/java/org/opendaylight/mdsal/dom/broker/DOMMountPointServiceImpl.java +++ b/dom/mdsal-dom-broker/src/main/java/org/opendaylight/mdsal/dom/broker/DOMMountPointServiceImpl.java @@ -5,17 +5,17 @@ * 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.dom.broker; import static com.google.common.base.Preconditions.checkState; import static java.util.Objects.requireNonNull; -import com.google.common.annotations.VisibleForTesting; import com.google.common.collect.MutableClassToInstanceMap; import java.util.HashMap; import java.util.Map; import java.util.Optional; +import javax.inject.Singleton; +import org.kohsuke.MetaInfServices; import org.opendaylight.mdsal.dom.api.DOMMountPoint; import org.opendaylight.mdsal.dom.api.DOMMountPointListener; import org.opendaylight.mdsal.dom.api.DOMMountPointService; @@ -26,11 +26,16 @@ import org.opendaylight.yangtools.concepts.ListenerRegistration; import org.opendaylight.yangtools.concepts.ObjectRegistration; import org.opendaylight.yangtools.util.ListenerRegistry; import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier; -import org.opendaylight.yangtools.yang.model.api.SchemaContext; +import org.osgi.service.component.annotations.Activate; +import org.osgi.service.component.annotations.Component; +import org.osgi.service.component.annotations.Deactivate; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -public class DOMMountPointServiceImpl implements DOMMountPointService { +@Component(immediate = true) +@MetaInfServices +@Singleton +public final class DOMMountPointServiceImpl implements DOMMountPointService { private static final Logger LOG = LoggerFactory.getLogger(DOMMountPointServiceImpl.class); private final Map mountPoints = new HashMap<>(); @@ -53,6 +58,18 @@ public class DOMMountPointServiceImpl implements DOMMountPointService { return listeners.register(listener); } + @Activate + @SuppressWarnings("static-method") + void activate() { + LOG.info("DOMMountPointService activated"); + } + + @Deactivate + @SuppressWarnings("static-method") + void deactivate() { + LOG.info("DOMMountPointService deactivated"); + } + @SuppressWarnings("checkstyle:IllegalCatch") private ObjectRegistration registerMountPoint(final SimpleDOMMountPoint mountPoint) { final YangInstanceIdentifier mountPointId = mountPoint.getIdentifier(); @@ -60,15 +77,15 @@ public class DOMMountPointServiceImpl implements DOMMountPointService { final DOMMountPoint prev = mountPoints.putIfAbsent(mountPointId, mountPoint); checkState(prev == null, "Mount point %s already exists as %s", mountPointId, prev); } - listeners.forEach(listener -> { + listeners.streamListeners().forEach(listener -> { try { - listener.getInstance().onMountPointCreated(mountPointId); + listener.onMountPointCreated(mountPointId); } catch (final Exception ex) { LOG.error("Listener {} failed on mount point {} created event", listener, mountPoint, ex); } }); - return new AbstractObjectRegistration(mountPoint) { + return new AbstractObjectRegistration<>(mountPoint) { @Override protected void removeRegistration() { unregisterMountPoint(getInstance().getIdentifier()); @@ -85,20 +102,19 @@ public class DOMMountPointServiceImpl implements DOMMountPointService { } } - listeners.forEach(listener -> { + listeners.streamListeners().forEach(listener -> { try { - listener.getInstance().onMountPointRemoved(mountPointId); + listener.onMountPointRemoved(mountPointId); } catch (final Exception ex) { LOG.error("Listener {} failed on mount point {} removed event", listener, mountPointId, ex); } }); } - final class DOMMountPointBuilderImpl implements DOMMountPointBuilder { + private final class DOMMountPointBuilderImpl implements DOMMountPointBuilder { private final MutableClassToInstanceMap services = MutableClassToInstanceMap.create(); private final YangInstanceIdentifier path; - private SchemaContext schemaContext; private SimpleDOMMountPoint mountPoint; @@ -106,32 +122,16 @@ public class DOMMountPointServiceImpl implements DOMMountPointService { this.path = requireNonNull(path); } - @VisibleForTesting - SchemaContext getSchemaContext() { - return schemaContext; - } - - @VisibleForTesting - Map, DOMService> getServices() { - return services; - } - @Override public DOMMountPointBuilder addService(final Class type, final T impl) { services.putInstance(requireNonNull(type), requireNonNull(impl)); return this; } - @Override - public DOMMountPointBuilder addInitialSchemaContext(final SchemaContext ctx) { - schemaContext = requireNonNull(ctx); - return this; - } - @Override public ObjectRegistration register() { checkState(mountPoint == null, "Mount point is already built."); - mountPoint = SimpleDOMMountPoint.create(path, services, schemaContext); + mountPoint = SimpleDOMMountPoint.create(path, services); return registerMountPoint(mountPoint); } }