X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=blobdiff_plain;ds=sidebyside;f=dom%2Fmdsal-dom-broker%2Fsrc%2Fmain%2Fjava%2Forg%2Fopendaylight%2Fmdsal%2Fdom%2Fbroker%2FDOMRpcRouter.java;h=8cf276faa79cee6b1aa28c2187863ba0fee8ea71;hb=c37d38386002ed12b279938051813f99a4de70ff;hp=d3a1af2a2f40220db54776379f74675b3b5e318e;hpb=093b38a5c2a4f6ed8b015916e4765be29e3d51e2;p=mdsal.git diff --git a/dom/mdsal-dom-broker/src/main/java/org/opendaylight/mdsal/dom/broker/DOMRpcRouter.java b/dom/mdsal-dom-broker/src/main/java/org/opendaylight/mdsal/dom/broker/DOMRpcRouter.java index d3a1af2a2f..8cf276faa7 100644 --- a/dom/mdsal-dom-broker/src/main/java/org/opendaylight/mdsal/dom/broker/DOMRpcRouter.java +++ b/dom/mdsal-dom-broker/src/main/java/org/opendaylight/mdsal/dom/broker/DOMRpcRouter.java @@ -17,12 +17,12 @@ import com.google.common.util.concurrent.CheckedFuture; import com.google.common.util.concurrent.ThreadFactoryBuilder; import java.util.Collection; import java.util.Collections; -import java.util.concurrent.Executors; -import java.util.concurrent.ExecutorService; -import java.util.concurrent.ThreadFactory; import java.util.Map; import java.util.Map.Entry; import java.util.Set; +import java.util.concurrent.ExecutorService; +import java.util.concurrent.Executors; +import java.util.concurrent.ThreadFactory; import javax.annotation.concurrent.GuardedBy; import org.opendaylight.mdsal.dom.api.DOMRpcAvailabilityListener; import org.opendaylight.mdsal.dom.api.DOMRpcException; @@ -35,25 +35,22 @@ import org.opendaylight.mdsal.dom.api.DOMRpcService; import org.opendaylight.mdsal.dom.spi.AbstractDOMRpcImplementationRegistration; import org.opendaylight.yangtools.concepts.AbstractListenerRegistration; import org.opendaylight.yangtools.concepts.ListenerRegistration; -import org.opendaylight.yangtools.yang.data.api.schema.NormalizedNode; import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier; +import org.opendaylight.yangtools.yang.data.api.schema.NormalizedNode; import org.opendaylight.yangtools.yang.model.api.SchemaContext; import org.opendaylight.yangtools.yang.model.api.SchemaContextListener; import org.opendaylight.yangtools.yang.model.api.SchemaPath; public final class DOMRpcRouter implements AutoCloseable, DOMRpcService, DOMRpcProviderService, SchemaContextListener { - private static final ThreadFactory THREAD_FACTORY = new ThreadFactoryBuilder().setNameFormat("DOMRpcRouter-listener-%s").setDaemon(true).build(); + private static final ThreadFactory THREAD_FACTORY = new ThreadFactoryBuilder().setNameFormat( + "DOMRpcRouter-listener-%s").setDaemon(true).build(); private final ExecutorService listenerNotifier = Executors.newSingleThreadExecutor(THREAD_FACTORY); @GuardedBy("this") private Collection> listeners = Collections.emptyList(); private volatile DOMRpcRoutingTable routingTable = DOMRpcRoutingTable.EMPTY; - @Override - public DOMRpcImplementationRegistration registerRpcImplementation(final T implementation, final DOMRpcIdentifier... rpcs) { - return registerRpcImplementation(implementation, ImmutableSet.copyOf(rpcs)); - } - - private static Collection notPresentRpcs(final DOMRpcRoutingTable table, final Collection candidates) { + private static Collection notPresentRpcs(final DOMRpcRoutingTable table, + final Collection candidates) { return ImmutableSet.copyOf(Collections2.filter(candidates, new Predicate() { @Override public boolean apply(final DOMRpcIdentifier input) { @@ -62,7 +59,8 @@ public final class DOMRpcRouter implements AutoCloseable, DOMRpcService, DOMRpcP })); } - private synchronized void removeRpcImplementation(final DOMRpcImplementation implementation, final Set rpcs) { + private synchronized void removeRpcImplementation(final DOMRpcImplementation implementation, + final Set rpcs) { final DOMRpcRoutingTable oldTable = routingTable; final DOMRpcRoutingTable newTable = oldTable.remove(implementation, rpcs); @@ -87,7 +85,14 @@ public final class DOMRpcRouter implements AutoCloseable, DOMRpcService, DOMRpcP } @Override - public synchronized DOMRpcImplementationRegistration registerRpcImplementation(final T implementation, final Set rpcs) { + public DOMRpcImplementationRegistration registerRpcImplementation( + final T implementation, final DOMRpcIdentifier... rpcs) { + return registerRpcImplementation(implementation, ImmutableSet.copyOf(rpcs)); + } + + @Override + public synchronized DOMRpcImplementationRegistration + registerRpcImplementation(final T implementation, final Set rpcs) { final DOMRpcRoutingTable oldTable = routingTable; final DOMRpcRoutingTable newTable = oldTable.add(implementation, rpcs); @@ -120,7 +125,8 @@ public final class DOMRpcRouter implements AutoCloseable, DOMRpcService, DOMRpcP } @Override - public CheckedFuture invokeRpc(final SchemaPath type, final NormalizedNode input) { + public CheckedFuture invokeRpc(final SchemaPath type, + final NormalizedNode input) { return routingTable.invokeRpc(type, input); } @@ -134,7 +140,8 @@ public final class DOMRpcRouter implements AutoCloseable, DOMRpcService, DOMRpcP } @Override - public synchronized ListenerRegistration registerRpcListener(final T listener) { + public synchronized ListenerRegistration registerRpcListener( + final T listener) { final ListenerRegistration ret = new AbstractListenerRegistration(listener) { @Override protected void removeRegistration() { @@ -152,12 +159,13 @@ public final class DOMRpcRouter implements AutoCloseable, DOMRpcService, DOMRpcP @Override public void run() { for (final Entry> e : capturedRpcs.entrySet()) { - listener.onRpcAvailable(Collections2.transform(e.getValue(), new Function() { - @Override - public DOMRpcIdentifier apply(final YangInstanceIdentifier input) { - return DOMRpcIdentifier.create(e.getKey(), input); - } - })); + listener.onRpcAvailable(Collections2.transform(e.getValue(), + new Function() { + @Override + public DOMRpcIdentifier apply(final YangInstanceIdentifier input) { + return DOMRpcIdentifier.create(e.getKey(), input); + } + })); } } });