import com.google.common.base.Preconditions;
import com.google.common.base.Predicate;
import com.google.common.base.Splitter;
+import com.google.common.base.Strings;
import com.google.common.collect.ImmutableSet;
import com.google.common.collect.Iterables;
import com.google.common.collect.Sets;
}
private static QName cachedQName(final String namespace, final String revision, final String moduleName) {
- return QName.cachedReference(QName.create(namespace, revision, moduleName));
+ return QName.create(namespace, revision, moduleName).intern();
}
private static QName cachedQName(final String namespace, final String moduleName) {
- return QName.cachedReference(QName.create(URI.create(namespace), null, moduleName).withoutRevision());
+ return QName.create(URI.create(namespace), null, moduleName).withoutRevision().intern();
}
public static NetconfSessionPreferences fromStrings(final Collection<String> capabilities) {
final String namespace = capability.substring(0, qmark);
final Iterable<String> queryParams = AMP_SPLITTER.split(capability.substring(qmark + 1));
final String moduleName = MODULE_PARAM.from(queryParams);
- if (moduleName == null) {
+ if (Strings.isNullOrEmpty(moduleName)) {
continue;
}
String revision = REVISION_PARAM.from(queryParams);
- if (revision != null) {
+ if (!Strings.isNullOrEmpty(revision)) {
addModuleQName(moduleBasedCaps, nonModuleCaps, capability, cachedQName(namespace, revision, moduleName));
continue;
}
LOG.debug("Netconf device was not reporting revision correctly, trying to get amp;revision=");
revision = BROKEN_REVISON_PARAM.from(queryParams);
- if (revision == null) {
+ if (Strings.isNullOrEmpty(revision)) {
LOG.warn("Netconf device returned revision incorrectly escaped for {}, ignoring it", capability);
addModuleQName(moduleBasedCaps, nonModuleCaps, capability, cachedQName(namespace, moduleName));
} else {
"namespace:2?module=module2",
"namespace:2?module=module2&revision=2012-12-12",
"namespace:2?module=module1&RANDOMSTRING;revision=2013-12-12",
- "namespace:2?module=module2&RANDOMSTRING;revision=2013-12-12" // This one should be ignored(same as first), since revision is in wrong format
+ // Revision parameter present, but no revision defined
+ "namespace:2?module=module4&RANDOMSTRING;revision=",
+ // This one should be ignored(same as first), since revision is in wrong format
+ "namespace:2?module=module2&RANDOMSTRING;revision=2013-12-12"
);
final NetconfSessionPreferences sessionCaps1 = NetconfSessionPreferences.fromStrings(caps1);
- assertCaps(sessionCaps1, 0, 3);
+ assertCaps(sessionCaps1, 0, 4);
}
private void assertCaps(final NetconfSessionPreferences sessionCaps1, final int nonModuleCaps, final int moduleCaps) {