import java.io.InputStream;
import java.io.InputStreamReader;
import java.nio.charset.StandardCharsets;
+import java.util.Collections;
import java.util.HashSet;
import java.util.Optional;
import java.util.Set;
import org.opendaylight.controller.md.sal.dom.api.DOMDataBroker;
import org.opendaylight.controller.md.sal.dom.api.DOMRpcService;
import org.opendaylight.controller.sal.core.api.model.SchemaService;
+import org.opendaylight.netconf.api.capability.BasicCapability;
import org.opendaylight.netconf.api.capability.Capability;
import org.opendaylight.netconf.api.capability.YangModuleCapability;
import org.opendaylight.netconf.api.monitoring.CapabilityListener;
public class MdsalNetconfOperationServiceFactory implements NetconfOperationServiceFactory, AutoCloseable {
private static final Logger LOG = LoggerFactory.getLogger(MdsalNetconfOperationServiceFactory.class);
+ private static final BasicCapability VALIDATE_CAPABILITY =
+ new BasicCapability("urn:ietf:params:netconf:capability:validate:1.0");
private final DOMDataBroker dataBroker;
private final DOMRpcService rpcService;
@Override
public AutoCloseable registerCapabilityListener(final CapabilityListener listener) {
+ // Advertise validate capability only if DOMDataBroker provides DOMDataTransactionValidator
+ if (dataBroker.getSupportedExtensions().get(DOMDataTransactionValidator.class) != null) {
+ listener.onCapabilitiesChanged(Collections.singleton(VALIDATE_CAPABILITY), Collections.emptySet());
+ }
+ // Advertise namespaces of supported YANG models as NETCONF capabilities
return currentSchemaContext.registerCapabilityListener(listener);
}
}