logger.trace("{}: Session advertised capabilities: {}", id, netconfSessionPreferences);
if(overrideNetconfCapabilities.isPresent()) {
- netconfSessionPreferences = netconfSessionPreferences.replaceModuleCaps(overrideNetconfCapabilities.get());
+ netconfSessionPreferences = netconfSessionPreferences.addModuleCaps(overrideNetconfCapabilities.get());
logger.debug("{}: Session capabilities overridden, capabilities that will be used: {}", id, netconfSessionPreferences);
}
|| containsNonModuleCapability(NetconfMessageTransformUtil.IETF_NETCONF_MONITORING.getNamespace().toString());
}
- public NetconfSessionPreferences replaceModuleCaps(final NetconfSessionPreferences netconfSessionModuleCapabilities) {
- final Set<QName> moduleBasedCaps = Sets.newHashSet(netconfSessionModuleCapabilities.getModuleBasedCaps());
-
- // Preserve monitoring module, since it indicates support for ietf-netconf-monitoring
- if(containsModuleCapability(NetconfMessageTransformUtil.IETF_NETCONF_MONITORING)) {
- moduleBasedCaps.add(NetconfMessageTransformUtil.IETF_NETCONF_MONITORING);
- }
- return new NetconfSessionPreferences(getNonModuleCaps(), moduleBasedCaps);
+ public NetconfSessionPreferences addModuleCaps(final NetconfSessionPreferences netconfSessionModuleCapabilities) {
+ final HashSet<QName> mergedCaps = Sets.newHashSetWithExpectedSize(moduleBasedCaps.size() + netconfSessionModuleCapabilities.getModuleBasedCaps().size());
+ mergedCaps.addAll(moduleBasedCaps);
+ mergedCaps.addAll(netconfSessionModuleCapabilities.getModuleBasedCaps());
+ return new NetconfSessionPreferences(getNonModuleCaps(), mergedCaps);
}
public static NetconfSessionPreferences fromNetconfSession(final NetconfClientSession session) {
final NetconfSessionPreferences sessionCaps2 = NetconfSessionPreferences.fromStrings(caps2);
assertCaps(sessionCaps2, 1, 2);
- final NetconfSessionPreferences merged = sessionCaps1.replaceModuleCaps(sessionCaps2);
- assertCaps(merged, 2, 2 + 1 /*Preserved monitoring*/);
+ final NetconfSessionPreferences merged = sessionCaps1.addModuleCaps(sessionCaps2);
+ assertCaps(merged, 2, 2 + 1 /*Preserved monitoring*/ + 2 /*already present*/);
for (final QName qName : sessionCaps2.getModuleBasedCaps()) {
assertThat(merged.getModuleBasedCaps(), hasItem(qName));
}