ONOS-6080
Dynamic Config Svc : Demo1 end to end integration and dry runs
Change-Id: Ied90252fe786fc6331b710c3ae977f9b9016232c
diff --git a/apps/config/src/main/java/org/onosproject/config/ResourceIdParser.java b/apps/config/src/main/java/org/onosproject/config/ResourceIdParser.java
index 089aeff..f993550 100755
--- a/apps/config/src/main/java/org/onosproject/config/ResourceIdParser.java
+++ b/apps/config/src/main/java/org/onosproject/config/ResourceIdParser.java
@@ -28,17 +28,17 @@
/**
* Utilities to work on the ResourceId.
*/
-
+//FIXME add javadocs
public final class ResourceIdParser {
public static final String ROOT = "root";
public static final String NM_SEP = "#";
public static final String VAL_SEP = "@";
public static final String KEY_SEP = "$";
- public static final String EL_SEP = ".";
+ public static final String EL_SEP = "|";
public static final String VAL_CHK = "\\@";
public static final String KEY_CHK = "\\$";
-
+ public static final String NM_CHK = "\\#";
private ResourceIdParser() {
@@ -100,7 +100,6 @@
return (path + EL_SEP + key);
}
- //DONE
public static String appendKeyLeaf(String path, KeyLeaf key) {
StringBuilder bldr = new StringBuilder();
bldr.append(key.leafSchema().name());
@@ -187,7 +186,6 @@
bldr.append(key.schemaId().name());
bldr.append(NM_SEP);
bldr.append(key.schemaId().namespace());
- bldr.append(NM_SEP);
Iterator<KeyLeaf> iter = key.keyLeafs().iterator();
KeyLeaf next;
while (iter.hasNext()) {
@@ -218,14 +216,16 @@
name.substring(name.indexOf(NM_SEP) + 1, name.indexOf(VAL_SEP)),
name.substring(name.indexOf(VAL_SEP) + 1));
} else if (name.contains(KEY_SEP)) {
- resBldr.addBranchPointSchema(name.substring(0, name.indexOf(NM_SEP)),
- name.substring(name.indexOf(NM_SEP) + 1, name.indexOf(KEY_SEP)));
- String[] keys = name.split(KEY_SEP);
+ String[] keys = name.split(KEY_CHK);
+ String[] nm = keys[0].split(NM_CHK);
+ resBldr.addBranchPointSchema(nm[0], nm[1]);
for (int i = 1; i < keys.length; i++) {
String key = keys[i];
- resBldr.addKeyLeaf(key.substring(0, key.indexOf(NM_SEP)),
- key.substring(key.indexOf(NM_SEP) + 1, key.lastIndexOf(NM_SEP)),
- key.substring(name.lastIndexOf(NM_SEP) + 1));
+ String[] el = keys[i].split(NM_CHK);
+ if (el.length != 3) {
+ throw new FailedException("Malformed event subject, cannot parse");
+ }
+ resBldr.addKeyLeaf(el[0], el[1], el[2]);
}
} else {
resBldr.addBranchPointSchema(name.substring(0, name.indexOf(NM_SEP)),
diff --git a/apps/config/src/main/java/org/onosproject/config/impl/DistributedDynamicConfigStore.java b/apps/config/src/main/java/org/onosproject/config/impl/DistributedDynamicConfigStore.java
index 11dce6b..e4fcb0e 100644
--- a/apps/config/src/main/java/org/onosproject/config/impl/DistributedDynamicConfigStore.java
+++ b/apps/config/src/main/java/org/onosproject/config/impl/DistributedDynamicConfigStore.java
@@ -249,7 +249,7 @@
//String tempPath = ResourceIdParser.appendKeyLeaf(spath, keyLeaf);
//LeafNode lfnd = readLeaf(tempPath);
superBldr.addKeyLeaf(keyLeaf.leafSchema().name(),
- keyLeaf.leafSchema().namespace(), keyLeaf.leafValue());
+ keyLeaf.leafSchema().namespace(), String.valueOf(keyLeaf.leafValue()));
}
readInner(superBldr, spath);
retVal = superBldr.build();
@@ -273,7 +273,7 @@
throw new FailedException("Inner node cannot have empty children map");
}
entries.forEach((k, v) -> {
- String[] names = k.split(ResourceIdParser.NM_SEP);
+ String[] names = k.split(ResourceIdParser.NM_CHK);
String name = names[0];
String nmSpc = ResourceIdParser.getNamespace(names[1]);
String keyVal = ResourceIdParser.getKeyVal(names[1]);
@@ -303,7 +303,7 @@
for (int i = 1; i < keys.length; i++) {
//String curKey = ResourceIdParser.appendKeyLeaf(tempPath, keys[i]);
//LeafNode lfnd = readLeaf(curKey);
- String[] keydata = keys[i].split(ResourceIdParser.NM_SEP);
+ String[] keydata = keys[i].split(ResourceIdParser.NM_CHK);
tempBldr.addKeyLeaf(keydata[0], keydata[1], keydata[2]);
}
readInner(tempBldr, tempPath);