X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=blobdiff_plain;f=netconf%2Fsal-netconf-connector%2Fsrc%2Fmain%2Fjava%2Forg%2Fopendaylight%2Fnetconf%2Fsal%2Fconnect%2Fnetconf%2FNetconfStateSchemasResolverImpl.java;h=63deb8ed6fb035a9db003e8b570751980c8d9d9d;hb=f402dcd49a468e018192c96151bef3a0cdf70d62;hp=c2947d9860a8a50b981e4787e5479da283155411;hpb=50351b4cb37a1998cfaef53ff584aeb767c25f50;p=netconf.git diff --git a/netconf/sal-netconf-connector/src/main/java/org/opendaylight/netconf/sal/connect/netconf/NetconfStateSchemasResolverImpl.java b/netconf/sal-netconf-connector/src/main/java/org/opendaylight/netconf/sal/connect/netconf/NetconfStateSchemasResolverImpl.java index c2947d9860..63deb8ed6f 100644 --- a/netconf/sal-netconf-connector/src/main/java/org/opendaylight/netconf/sal/connect/netconf/NetconfStateSchemasResolverImpl.java +++ b/netconf/sal-netconf-connector/src/main/java/org/opendaylight/netconf/sal/connect/netconf/NetconfStateSchemasResolverImpl.java @@ -5,7 +5,6 @@ * 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.netconf.sal.connect.netconf; import org.opendaylight.netconf.sal.connect.api.NetconfDeviceSchemas; @@ -13,24 +12,26 @@ import org.opendaylight.netconf.sal.connect.api.NetconfDeviceSchemasResolver; import org.opendaylight.netconf.sal.connect.netconf.listener.NetconfSessionPreferences; import org.opendaylight.netconf.sal.connect.netconf.sal.NetconfDeviceRpc; import org.opendaylight.netconf.sal.connect.util.RemoteDeviceId; -import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.library.rev160409.ModulesState; +import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.library.rev160621.ModulesState; import org.opendaylight.yangtools.yang.common.QName; +import org.opendaylight.yangtools.yang.model.api.EffectiveModelContext; /** * Default implementation resolving schemas QNames from netconf-state or from modules-state. */ public final class NetconfStateSchemasResolverImpl implements NetconfDeviceSchemasResolver { + private static final QName YANG_LIBRARY_CAPABILITY = QName.create(ModulesState.QNAME, "ietf-yang-library").intern(); @Override public NetconfDeviceSchemas resolve(final NetconfDeviceRpc deviceRpc, - final NetconfSessionPreferences remoteSessionCapabilities, - final RemoteDeviceId id) { + final NetconfSessionPreferences remoteSessionCapabilities, + final RemoteDeviceId id, final EffectiveModelContext schemaContext) { if (remoteSessionCapabilities.isMonitoringSupported()) { - return NetconfStateSchemas.create(deviceRpc, remoteSessionCapabilities, id); - } else if (remoteSessionCapabilities.containsModuleCapability(QName.create(ModulesState.QNAME, - "ietf-yang-library"))) { - return LibraryModulesSchemas.create(deviceRpc, id); + return NetconfStateSchemas.create(deviceRpc, remoteSessionCapabilities, id, schemaContext); } - return NetconfStateSchemas.EMPTY; + + // FIXME: I think we should prefer YANG library here + return remoteSessionCapabilities.containsModuleCapability(YANG_LIBRARY_CAPABILITY) + ? LibraryModulesSchemas.create(deviceRpc, id) : NetconfStateSchemas.EMPTY; } }