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 al...@apache.org on 2015/10/07 12:14:30 UTC
svn commit: r1707225 - in
/jackrabbit/oak/trunk/oak-run/src/main/java/org/apache/jackrabbit/oak/explorer:
Explorer.java NodeStoreTree.java
Author: alexparvulescu
Date: Wed Oct 7 10:14:29 2015
New Revision: 1707225
URL: http://svn.apache.org/viewvc?rev=1707225&view=rev
Log:
OAK-3484 Oak Explorer: add property type to reference output
Modified:
jackrabbit/oak/trunk/oak-run/src/main/java/org/apache/jackrabbit/oak/explorer/Explorer.java
jackrabbit/oak/trunk/oak-run/src/main/java/org/apache/jackrabbit/oak/explorer/NodeStoreTree.java
Modified: jackrabbit/oak/trunk/oak-run/src/main/java/org/apache/jackrabbit/oak/explorer/Explorer.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-run/src/main/java/org/apache/jackrabbit/oak/explorer/Explorer.java?rev=1707225&r1=1707224&r2=1707225&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-run/src/main/java/org/apache/jackrabbit/oak/explorer/Explorer.java (original)
+++ jackrabbit/oak/trunk/oak-run/src/main/java/org/apache/jackrabbit/oak/explorer/Explorer.java Wed Oct 7 10:14:29 2015
@@ -42,7 +42,6 @@ import javax.swing.UIManager;
import javax.swing.UIManager.LookAndFeelInfo;
import org.apache.commons.io.IOUtils;
-import org.apache.jackrabbit.oak.plugins.segment.file.FileStore.ReadOnlyStore;
import org.apache.jackrabbit.oak.plugins.segment.file.JournalReader;
import com.google.common.collect.Lists;
Modified: jackrabbit/oak/trunk/oak-run/src/main/java/org/apache/jackrabbit/oak/explorer/NodeStoreTree.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-run/src/main/java/org/apache/jackrabbit/oak/explorer/NodeStoreTree.java?rev=1707225&r1=1707224&r2=1707225&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-run/src/main/java/org/apache/jackrabbit/oak/explorer/NodeStoreTree.java (original)
+++ jackrabbit/oak/trunk/oak-run/src/main/java/org/apache/jackrabbit/oak/explorer/NodeStoreTree.java Wed Oct 7 10:14:29 2015
@@ -71,6 +71,11 @@ import org.apache.jackrabbit.oak.spi.sta
public class NodeStoreTree extends JPanel implements TreeSelectionListener,
Closeable {
+ private static final long serialVersionUID = 1L;
+
+ private final static int MAX_CHAR_DISPLAY = Integer.getInteger(
+ "max.char.display", 60);
+
private final String path;
private ReadOnlyStore store;
@@ -152,10 +157,15 @@ public class NodeStoreTree extends JPane
sb.append(sns.getRecordId().toString());
sb.append(newline);
}
- log.setText(sb.toString());
+ setText(sb.toString());
}
}
+ private void setText(String s) {
+ log.setText(s);
+ log.setCaretPosition(0);
+ }
+
private void addChildren(DefaultMutableTreeNode parent) {
NamePathModel model = (NamePathModel) parent.getUserObject();
if (model.isLoaded()) {
@@ -311,7 +321,7 @@ public class NodeStoreTree extends JPane
sb.append("----------");
}
- log.setText(sb.toString());
+ setText(sb.toString());
}
private String toString(PropertyState ps, int index, String tarFile) {
@@ -332,20 +342,23 @@ public class NodeStoreTree extends JPane
return info;
} else if (ps.getType().tag() == PropertyType.STRING) {
- String value = ps.getValue(Type.STRING, index);
- if (value.length() > 60) {
- value = value.substring(0, 57) + "... (" + value.length()
- + " chars)";
- }
- String escaped = builder().setSafeRange(' ', '~')
- .addEscape('"', "\\\"").addEscape('\\', "\\\\").build()
- .escape(value);
- return '"' + escaped + '"';
+ return displayString(ps.getValue(Type.STRING, index));
} else {
return ps.getValue(Type.STRING, index);
}
}
+ private static String displayString(String value) {
+ if (MAX_CHAR_DISPLAY > 0 && value.length() > MAX_CHAR_DISPLAY) {
+ value = value.substring(0, MAX_CHAR_DISPLAY) + "... ("
+ + value.length() + " chars)";
+ }
+ String escaped = builder().setSafeRange(' ', '~')
+ .addEscape('"', "\\\"").addEscape('\\', "\\\\").build()
+ .escape(value);
+ return '"' + escaped + '"';
+ }
+
private String safeGetReference(Blob b) {
try {
return b.getReference();
@@ -429,7 +442,7 @@ public class NodeStoreTree extends JPane
sb.append("Error getting tar graph:").append(e).append(newline);
}
- log.setText(sb.toString());
+ setText(sb.toString());
}
private static Set<UUID> getReferencedUUIDs(FileStore store) {
@@ -448,7 +461,7 @@ public class NodeStoreTree extends JPane
try {
id = UUID.fromString(sid.trim());
} catch (IllegalArgumentException e) {
- log.setText(e.getMessage());
+ setText(e.getMessage());
return;
}
StringBuilder sb = new StringBuilder();
@@ -472,7 +485,7 @@ public class NodeStoreTree extends JPane
sb.append(newline);
}
}
- log.setText(sb.toString());
+ setText(sb.toString());
}
public static void filterNodeStates(Set<UUID> uuids, List<String> paths,
@@ -484,10 +497,20 @@ public class NodeStoreTree extends JPane
RecordId recordId = sps.getRecordId();
UUID id = recordId.getSegmentId().asUUID();
if (uuids.contains(id)) {
- localPaths.add(path + ps + " [SegmentPropertyState<"
- + ps.getType() + ">@" + recordId + "]");
+ if (ps.getType().tag() == PropertyType.STRING) {
+ // only shows the first value, do we need more?
+ String val = displayString(ps.getValue(Type.STRING, 0));
+ localPaths.add(path + ps.getName() + " = " + val
+ + " [SegmentPropertyState<" + ps.getType()
+ + ">@" + recordId + "]");
+ } else {
+ localPaths.add(path + ps + " [SegmentPropertyState<"
+ + ps.getType() + ">@" + recordId + "]");
+ }
+
}
if (ps.getType().tag() == PropertyType.BINARY) {
+ //look for extra segment references
for (int i = 0; i < ps.count(); i++) {
Blob b = ps.getValue(Type.BINARY, i);
for (SegmentId sbid : SegmentBlob.getBulkSegmentIds(b)) {
@@ -528,7 +551,7 @@ public class NodeStoreTree extends JPane
sb.append("Unknown argument: ");
sb.append(input);
sb.append(newline);
- log.setText("Usage <recordId> <recordId> [<path>]");
+ setText("Usage <recordId> <recordId> [<path>]");
return;
}
@@ -537,7 +560,7 @@ public class NodeStoreTree extends JPane
sb.append("Unknown argument: ");
sb.append(input);
sb.append(newline);
- log.setText("Usage <recordId> <recordId> [<path>]");
+ setText("Usage <recordId> <recordId> [<path>]");
return;
}
RecordId id1 = null;
@@ -552,7 +575,7 @@ public class NodeStoreTree extends JPane
sb.append("Error: ");
sb.append(ex.getMessage());
sb.append(newline);
- log.setText(sb.toString());
+ setText(sb.toString());
return;
}
String path = "/";
@@ -577,7 +600,7 @@ public class NodeStoreTree extends JPane
sb.append("--------");
sb.append(newline);
sb.append(JsopBuilder.prettyPrint(JsopDiff.diffToJsop(node1, node2)));
- log.setText(sb.toString());
+ setText(sb.toString());
}
public boolean revert(String revision) {
@@ -590,7 +613,7 @@ public class NodeStoreTree extends JPane
try {
refreshModel();
if (!rollback) {
- log.setText("Switched head revision to " + revision);
+ setText("Switched head revision to " + revision);
}
} catch (SegmentNotFoundException e) {
StringBuilder sb = new StringBuilder();
@@ -602,7 +625,7 @@ public class NodeStoreTree extends JPane
sb.append(newline);
sb.append("Will rollback to ");
sb.append(head);
- log.setText(sb.toString());
+ setText(sb.toString());
return safeRevert(head, true);
}
if (rollback) {