You are viewing a plain text version of this content. The canonical link for it is here.
Posted to oak-commits@jackrabbit.apache.org by ch...@apache.org on 2017/08/11 10:24:08 UTC
svn commit: r1804769 -
/jackrabbit/oak/trunk/oak-run/src/main/java/org/apache/jackrabbit/oak/exporter/CNDStreamWriter.java
Author: chetanm
Date: Fri Aug 11 10:24:07 2017
New Revision: 1804769
URL: http://svn.apache.org/viewvc?rev=1804769&view=rev
Log:
OAK-6545 - Tooling to serialize NodeState as json along with blobs
Strip common types codes
Modified:
jackrabbit/oak/trunk/oak-run/src/main/java/org/apache/jackrabbit/oak/exporter/CNDStreamWriter.java
Modified: jackrabbit/oak/trunk/oak-run/src/main/java/org/apache/jackrabbit/oak/exporter/CNDStreamWriter.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-run/src/main/java/org/apache/jackrabbit/oak/exporter/CNDStreamWriter.java?rev=1804769&r1=1804768&r2=1804769&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-run/src/main/java/org/apache/jackrabbit/oak/exporter/CNDStreamWriter.java (original)
+++ jackrabbit/oak/trunk/oak-run/src/main/java/org/apache/jackrabbit/oak/exporter/CNDStreamWriter.java Fri Aug 11 10:24:07 2017
@@ -22,15 +22,32 @@ package org.apache.jackrabbit.oak.export
import java.io.Closeable;
import java.io.IOException;
import java.io.PrintWriter;
+import java.util.Set;
import com.google.common.base.Strings;
+import com.google.common.collect.ImmutableSet;
import org.apache.jackrabbit.oak.commons.json.JsopBuilder;
import org.apache.jackrabbit.oak.commons.json.JsopWriter;
import static com.google.common.base.Preconditions.checkNotNull;
import static com.google.common.base.Preconditions.checkState;
+/**
+ * Writes nodes in CND format
+ *
+ * <pre>
+ * + projects
+ * - jcr:primaryType = "sling:OrderedFolder"
+ * - jcr:mixinTypes = ["rep:AccessControllable"]
+ * - jcr:createdBy = "admin"
+ * - jcr:created = "2017-01-26T08:02:08.602+05:30"
+ * - sling:resourceType = "sling/projects"
+ * + rep:policy
+ * - jcr:primaryType = "rep:ACL"
+ * </pre>
+ */
class CNDStreamWriter implements JsopWriter, Closeable {
+ private static final Set<String> COMMON_TYPE_CODES = ImmutableSet.of("nam:", "dat:");
private enum State {NONE, STARTED, BEGIN, END}
private final PrintWriter w;
private State arrayState = State.NONE;
@@ -99,7 +116,7 @@ class CNDStreamWriter implements JsopWri
@Override
public JsopWriter value(String value) {
- return encodedValue(JsopBuilder.encode(value));
+ return encodedValue(JsopBuilder.encode(stripTypeCode(value)));
}
@Override
@@ -148,12 +165,24 @@ class CNDStreamWriter implements JsopWri
}
private void optionalResetArrayState() {
+ //Check that not within array
checkState(arrayState == State.END || arrayState == State.NONE);
if (arrayState == State.END) {
arrayState = State.NONE;
}
}
+ private static String stripTypeCode(String value) {
+ if (value != null) {
+ for (String code : COMMON_TYPE_CODES){
+ if (value.startsWith(code)){
+ return value.substring(code.length());
+ }
+ }
+ }
+ return value;
+ }
+
//Unsupported operation. These are also not used by JsonSerializer
@Override