X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=blobdiff_plain;f=opendaylight%2Fnetconf%2Fconfig-persister-impl%2Fsrc%2Fmain%2Fjava%2Forg%2Fopendaylight%2Fcontroller%2Fnetconf%2Fpersist%2Fimpl%2FUtil.java;h=322a9b753b123c006a4298b3209163b9ea82e9ed;hb=31ea7166f7cf572b3d2c51e2749bb94e8f8af821;hp=b17309123c8081ce081b178539d66ea68bfdb116;hpb=a92d9d6a21a0f6ca8d2153795721f500eaf29ee9;p=controller.git diff --git a/opendaylight/netconf/config-persister-impl/src/main/java/org/opendaylight/controller/netconf/persist/impl/Util.java b/opendaylight/netconf/config-persister-impl/src/main/java/org/opendaylight/controller/netconf/persist/impl/Util.java index b17309123c..322a9b753b 100644 --- a/opendaylight/netconf/config-persister-impl/src/main/java/org/opendaylight/controller/netconf/persist/impl/Util.java +++ b/opendaylight/netconf/config-persister-impl/src/main/java/org/opendaylight/controller/netconf/persist/impl/Util.java @@ -8,24 +8,46 @@ package org.opendaylight.controller.netconf.persist.impl; -import java.util.concurrent.Executors; -import java.util.concurrent.ScheduledExecutorService; -import java.util.concurrent.ThreadFactory; +import org.opendaylight.controller.netconf.client.NetconfClient; +import org.opendaylight.controller.netconf.client.NetconfClientDispatcher; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import java.util.Set; public final class Util { + private static final Logger logger = LoggerFactory.getLogger(Util.class); + - public static ScheduledExecutorService getExecutorServiceWithThreadName(final String threadNamePrefix, - int threadCount) { - return Executors.newScheduledThreadPool(threadCount, new ThreadFactory() { + public static boolean isSubset(NetconfClient netconfClient, Set expectedCaps) { + return isSubset(netconfClient.getCapabilities(), expectedCaps); - private int i = 1; + } + + private static boolean isSubset(Set currentCapabilities, Set expectedCaps) { + for (String exCap : expectedCaps) { + if (currentCapabilities.contains(exCap) == false) + return false; + } + return true; + } - @Override - public Thread newThread(Runnable r) { - Thread thread = new Thread(r); - thread.setName(threadNamePrefix + ":" + i++); - return thread; + public static void closeClientAndDispatcher(NetconfClient client) { + NetconfClientDispatcher dispatcher = client.getNetconfClientDispatcher(); + Exception fromClient = null; + try { + client.close(); + } catch (Exception e) { + fromClient = e; + } finally { + try { + dispatcher.close(); + } catch (Exception e) { + if (fromClient != null) { + e.addSuppressed(fromClient); + } + throw new RuntimeException("Error closing temporary client ", e); } - }); + } } }