You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@jackrabbit.apache.org by th...@apache.org on 2011/12/12 15:33:10 UTC
svn commit: r1213255 -
/jackrabbit/sandbox/microkernel/src/test/java/org/apache/jackrabbit/mk/MultiMkTestBase.java
Author: thomasm
Date: Mon Dec 12 14:33:10 2011
New Revision: 1213255
URL: http://svn.apache.org/viewvc?rev=1213255&view=rev
Log:
Test.
Modified:
jackrabbit/sandbox/microkernel/src/test/java/org/apache/jackrabbit/mk/MultiMkTestBase.java
Modified: jackrabbit/sandbox/microkernel/src/test/java/org/apache/jackrabbit/mk/MultiMkTestBase.java
URL: http://svn.apache.org/viewvc/jackrabbit/sandbox/microkernel/src/test/java/org/apache/jackrabbit/mk/MultiMkTestBase.java?rev=1213255&r1=1213254&r2=1213255&view=diff
==============================================================================
--- jackrabbit/sandbox/microkernel/src/test/java/org/apache/jackrabbit/mk/MultiMkTestBase.java (original)
+++ jackrabbit/sandbox/microkernel/src/test/java/org/apache/jackrabbit/mk/MultiMkTestBase.java Mon Dec 12 14:33:10 2011
@@ -25,14 +25,19 @@ import org.apache.jackrabbit.mk.api.Micr
import org.apache.jackrabbit.mk.json.JsopBuilder;
import org.apache.jackrabbit.mk.json.JsopReader;
import org.apache.jackrabbit.mk.json.JsopTokenizer;
+import org.apache.jackrabbit.mk.mem.NodeImpl;
+import org.apache.jackrabbit.mk.mem.NodeMap;
import org.junit.After;
import org.junit.Before;
import org.junit.runners.Parameterized.Parameters;
public class MultiMkTestBase {
+ private static final boolean PROFILE = false;
+
public MicroKernel mk;
protected String url;
+ private Profiler prof;
public MultiMkTestBase(String url) {
this.url = url;
@@ -50,34 +55,25 @@ public class MultiMkTestBase {
@Before
public void setUp() throws Exception {
- mk = MicroKernelFactory.getInstance(url + ";clean");
- // clean all existing content
- String result = mk.getNodes("/", mk.getHeadRevision(), 0, 0, -1);
- List<String> names = new ArrayList<String>();
- JsopReader t = new JsopTokenizer(result);
- t.read('{');
- if (!t.matches('}')) {
- do {
- String key = t.readString();
- if (key.charAt(0) != ':') {
- names.add(key);
- }
- t.read(':');
- t.readRawValue();
- } while (t.matches(','));
- t.read('}');
+ mk = MicroKernelFactory.getInstance(url);
+ cleanRepository(mk);
+
+ String root = mk.getNodes("/", mk.getHeadRevision());
+ if (!root.equals("{\":childNodeCount\":0}")) {
+ System.out.println("Last mk not disposed: " + root);
}
- if (!names.isEmpty()) {
- StringBuilder buf = new StringBuilder();
- for (String name : names) {
- buf.append("- \"").append(name).append("\"\n");
- }
- mk.commit("/", buf.toString(), mk.getHeadRevision(), null);
+ if (PROFILE) {
+ prof = new Profiler();
+ prof.interval = 1;
+ prof.startCollecting();
}
}
@After
public void tearDown() throws InterruptedException {
+ if (prof != null) {
+ System.out.println(prof.getTop(5));
+ }
mk.dispose();
}
@@ -97,4 +93,42 @@ public class MultiMkTestBase {
return mk.nodeExists("/:info", mk.getHeadRevision());
}
+ private static void cleanRepository(MicroKernel mk) {
+ String result = mk.getNodes("/", mk.getHeadRevision(), 0, 0, -1);
+ List<String> names = new ArrayList<String>();
+ List<String> properties = new ArrayList<String>();
+ JsopReader t = new JsopTokenizer(result);
+ t.read('{');
+ if (!t.matches('}')) {
+ do {
+ String key = t.readString();
+ t.read(':');
+ if (t.matches('{')) {
+ names.add(key);
+ NodeImpl.parse(new NodeMap(), t, 0);
+ } else {
+ if (!key.equals(":childNodeCount")) {
+ properties.add(key);
+ }
+ t.readRawValue();
+ }
+ } while (t.matches(','));
+ t.read('}');
+ }
+ if (!names.isEmpty()) {
+ JsopBuilder buff = new JsopBuilder();
+ for (String name : names) {
+ buff.tag('-').value(name).newline();
+ }
+ mk.commit("/", buff.toString(), mk.getHeadRevision(), null);
+ }
+ if (!properties.isEmpty()) {
+ JsopBuilder buff = new JsopBuilder();
+ for (String property : properties) {
+ buff.tag('^').key(property).value(null).newline();
+ }
+ mk.commit("/", buff.toString(), mk.getHeadRevision(), null);
+ }
+ }
+
}