You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@jackrabbit.apache.org by st...@apache.org on 2011/04/29 18:43:02 UTC
svn commit: r1097879 - in
/jackrabbit/sandbox/microkernel/src/main/java/org/apache/jackrabbit/mk:
MicroKernelImpl.java Repository.java
Author: stefan
Date: Fri Apr 29 16:43:02 2011
New Revision: 1097879
URL: http://svn.apache.org/viewvc?rev=1097879&view=rev
Log:
MicroKernel prototype (WIP)
Modified:
jackrabbit/sandbox/microkernel/src/main/java/org/apache/jackrabbit/mk/MicroKernelImpl.java
jackrabbit/sandbox/microkernel/src/main/java/org/apache/jackrabbit/mk/Repository.java
Modified: jackrabbit/sandbox/microkernel/src/main/java/org/apache/jackrabbit/mk/MicroKernelImpl.java
URL: http://svn.apache.org/viewvc/jackrabbit/sandbox/microkernel/src/main/java/org/apache/jackrabbit/mk/MicroKernelImpl.java?rev=1097879&r1=1097878&r2=1097879&view=diff
==============================================================================
--- jackrabbit/sandbox/microkernel/src/main/java/org/apache/jackrabbit/mk/MicroKernelImpl.java (original)
+++ jackrabbit/sandbox/microkernel/src/main/java/org/apache/jackrabbit/mk/MicroKernelImpl.java Fri Apr 29 16:43:02 2011
@@ -105,16 +105,16 @@ public class MicroKernelImpl implements
StringBuilder buf = new StringBuilder();
buf.append("[");
for (Commit commit : history) {
- if (buf.charAt(buf.length() - 1) != '[') {
- buf.append(",{");
- } else {
- buf.append("{");
- }
+ buf.append("{");
buf.append("\"id\":\"");
buf.append(commit.getId());
buf.append("\",\"ts\":\"");
buf.append(commit.getCommitTS());
- buf.append("\"}");
+ buf.append("\"},");
+ }
+ // trim redundant trailing comma
+ if (buf.charAt(buf.length() - 1) == ',') {
+ buf.deleteCharAt(buf.length() - 1);
}
buf.append("]");
return buf.toString();
@@ -173,13 +173,17 @@ public class MicroKernelImpl implements
pos++;
continue;
}
- if (pos - offset > count) {
+ if (pos - offset >= count) {
break;
}
toJson(rep.getStore().getNode(entry.getValue()), entry.getKey(), depth, buf);
buf.append(',');
pos++;
}
+ // trim redundant trailing comma
+ if (buf.charAt(buf.length() - 1) == ',') {
+ buf.deleteCharAt(buf.length() - 1);
+ }
buf.append(']');
return buf.toString();
} catch (Exception e) {
@@ -301,16 +305,15 @@ public class MicroKernelImpl implements
buf.append(prop.getKey());
buf.append("\":\"");
buf.append(prop.getValue());
- buf.append("\"");
+ buf.append("\",");
}
- buf.append("\":childNodeCount\":\"");
+ buf.append("\":childNodeCount\":");
long childCount = node.getChildNodeCount();
buf.append(childCount);
- buf.append("\"");
+ buf.append(",");
if (childCount > 0 && depth > 0) {
depth--;
- buf.append(',');
for (Map.Entry<String, String> child : node.getChildNodeEntries().entrySet()) {
buf.append('"');
String childName = child.getKey();
@@ -318,8 +321,13 @@ public class MicroKernelImpl implements
buf.append("\":");
String childId = child.getValue();
toJson(rep.getStore().getNode(childId), childName, depth, buf);
+ buf.append(',');
}
}
+ // trim redundant trailing comma
+ if (buf.charAt(buf.length() - 1) == ',') {
+ buf.deleteCharAt(buf.length() - 1);
+ }
buf.append("}");
}
}
Modified: jackrabbit/sandbox/microkernel/src/main/java/org/apache/jackrabbit/mk/Repository.java
URL: http://svn.apache.org/viewvc/jackrabbit/sandbox/microkernel/src/main/java/org/apache/jackrabbit/mk/Repository.java?rev=1097879&r1=1097878&r2=1097879&view=diff
==============================================================================
--- jackrabbit/sandbox/microkernel/src/main/java/org/apache/jackrabbit/mk/Repository.java (original)
+++ jackrabbit/sandbox/microkernel/src/main/java/org/apache/jackrabbit/mk/Repository.java Fri Apr 29 16:43:02 2011
@@ -110,16 +110,19 @@ public class Repository {
Commit commit = store.getCommit(revId);
- String[] names = path.split("/");
+ if (path.equals("/")) {
+ return new String[] { commit.getRootNodeId() };
+ }
+ String[] names = path.substring(1).split("/");
String[] ids = new String[names.length + 1];
// get root node
ids[0] = commit.getRootNodeId();
Node parent = store.getNode(ids[0]);
// traverse path and store id of each element
- for (int i = 1; i <= names.length; i++) {
- ids[i] = parent.getChildNodeEntries().get(names[i]);
- parent = store.getNode(ids[i]);
+ for (int i = 0; i < names.length; i++) {
+ ids[i + 1] = parent.getChildNodeEntries().get(names[i]);
+ parent = store.getNode(ids[i + 1]);
}
return ids;
}