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/06/01 16:33:34 UTC
svn commit: r1130162 - in /jackrabbit/sandbox/jackrabbit-j3/src:
main/java/org/apache/jackrabbit/j3/mc/ test/java/org/apache/jackrabbit/j3/
Author: thomasm
Date: Wed Jun 1 14:33:33 2011
New Revision: 1130162
URL: http://svn.apache.org/viewvc?rev=1130162&view=rev
Log:
Don't use javax.jcr.PropertyType in the mc package. Also slightly improves performance.
Added:
jackrabbit/sandbox/jackrabbit-j3/src/main/java/org/apache/jackrabbit/j3/mc/PropertyType.java
Modified:
jackrabbit/sandbox/jackrabbit-j3/src/main/java/org/apache/jackrabbit/j3/mc/Bundle.java
jackrabbit/sandbox/jackrabbit-j3/src/main/java/org/apache/jackrabbit/j3/mc/Val.java
jackrabbit/sandbox/jackrabbit-j3/src/test/java/org/apache/jackrabbit/j3/TestAll.java
jackrabbit/sandbox/jackrabbit-j3/src/test/java/org/apache/jackrabbit/j3/TestBundle.java
Modified: jackrabbit/sandbox/jackrabbit-j3/src/main/java/org/apache/jackrabbit/j3/mc/Bundle.java
URL: http://svn.apache.org/viewvc/jackrabbit/sandbox/jackrabbit-j3/src/main/java/org/apache/jackrabbit/j3/mc/Bundle.java?rev=1130162&r1=1130161&r2=1130162&view=diff
==============================================================================
--- jackrabbit/sandbox/jackrabbit-j3/src/main/java/org/apache/jackrabbit/j3/mc/Bundle.java (original)
+++ jackrabbit/sandbox/jackrabbit-j3/src/main/java/org/apache/jackrabbit/j3/mc/Bundle.java Wed Jun 1 14:33:33 2011
@@ -16,7 +16,6 @@
*/
package org.apache.jackrabbit.j3.mc;
-import javax.jcr.PropertyType;
import org.apache.jackrabbit.j3.util.Constants;
import org.apache.jackrabbit.j3.util.ExceptionFactory;
Added: jackrabbit/sandbox/jackrabbit-j3/src/main/java/org/apache/jackrabbit/j3/mc/PropertyType.java
URL: http://svn.apache.org/viewvc/jackrabbit/sandbox/jackrabbit-j3/src/main/java/org/apache/jackrabbit/j3/mc/PropertyType.java?rev=1130162&view=auto
==============================================================================
--- jackrabbit/sandbox/jackrabbit-j3/src/main/java/org/apache/jackrabbit/j3/mc/PropertyType.java (added)
+++ jackrabbit/sandbox/jackrabbit-j3/src/main/java/org/apache/jackrabbit/j3/mc/PropertyType.java Wed Jun 1 14:33:33 2011
@@ -0,0 +1,84 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.jackrabbit.j3.mc;
+
+/**
+ * The property types.
+ */
+public class PropertyType {
+
+ public static final int UNDEFINED = 0, STRING = 1, BINARY = 2, LONG = 3, DOUBLE = 4, DATE = 5, BOOLEAN = 6,
+ NAME = 7, PATH = 8, REFERENCE = 9, WEAKREFERENCE = 10, URI = 11, DECIMAL = 12;
+
+ private static final String[] NAMES = { "undefined", "String", "Binary", "Long", "Double", "Date", "Boolean",
+ "Name", "Path", "Reference", "WeakReference", "URI", "Decimal" };
+
+ public static String nameFromValue(int type) {
+ return NAMES[type];
+ }
+
+ public static int valueFromName(String name) {
+ switch (name.length()) {
+ case 3:
+ if ("URI".equals(name)) {
+ return URI;
+ }
+ break;
+ case 4:
+ if ("Long".equals(name)) {
+ return LONG;
+ } else if ("Date".equals(name)) {
+ return DATE;
+ } else if ("Name".equals(name)) {
+ return NAME;
+ } else if ("Path".equals(name)) {
+ return PATH;
+ }
+ break;
+ case 6:
+ if ("String".equals(name)) {
+ return STRING;
+ } else if ("Double".equals(name)) {
+ return DOUBLE;
+ } else if ("Binary".equals(name)) {
+ return BINARY;
+ }
+ break;
+ case 7:
+ if ("Boolean".equals(name)) {
+ return BOOLEAN;
+ } else if ("Decimal".equals(name)) {
+ return DECIMAL;
+ }
+ break;
+ case 9:
+ if ("Reference".equals(name)) {
+ return REFERENCE;
+ } else if ("undefined".equals(name)) {
+ return UNDEFINED;
+ }
+ break;
+ case 13:
+ if ("WeakReference".equals(name)) {
+ return WEAKREFERENCE;
+ }
+ break;
+ }
+ throw new IllegalArgumentException("unknown type: " + name);
+ }
+
+}
Modified: jackrabbit/sandbox/jackrabbit-j3/src/main/java/org/apache/jackrabbit/j3/mc/Val.java
URL: http://svn.apache.org/viewvc/jackrabbit/sandbox/jackrabbit-j3/src/main/java/org/apache/jackrabbit/j3/mc/Val.java?rev=1130162&r1=1130161&r2=1130162&view=diff
==============================================================================
--- jackrabbit/sandbox/jackrabbit-j3/src/main/java/org/apache/jackrabbit/j3/mc/Val.java (original)
+++ jackrabbit/sandbox/jackrabbit-j3/src/main/java/org/apache/jackrabbit/j3/mc/Val.java Wed Jun 1 14:33:33 2011
@@ -18,7 +18,6 @@ package org.apache.jackrabbit.j3.mc;
import java.util.Arrays;
import java.util.HashMap;
-import javax.jcr.PropertyType;
import org.apache.jackrabbit.j3.json.JsopTokenizer;
import org.apache.jackrabbit.j3.util.Constants;
import org.apache.jackrabbit.j3.util.ExceptionFactory;
Modified: jackrabbit/sandbox/jackrabbit-j3/src/test/java/org/apache/jackrabbit/j3/TestAll.java
URL: http://svn.apache.org/viewvc/jackrabbit/sandbox/jackrabbit-j3/src/test/java/org/apache/jackrabbit/j3/TestAll.java?rev=1130162&r1=1130161&r2=1130162&view=diff
==============================================================================
--- jackrabbit/sandbox/jackrabbit-j3/src/test/java/org/apache/jackrabbit/j3/TestAll.java (original)
+++ jackrabbit/sandbox/jackrabbit-j3/src/test/java/org/apache/jackrabbit/j3/TestAll.java Wed Jun 1 14:33:33 2011
@@ -37,6 +37,8 @@ public class TestAll extends TestCase {
int todo;
+ // data store: encode the length in the identifier (to avoid file reads when requesting the length)
+
// many child nodes
// possibly using a Htree - see also http://en.wikipedia.org/wiki/Htree
Modified: jackrabbit/sandbox/jackrabbit-j3/src/test/java/org/apache/jackrabbit/j3/TestBundle.java
URL: http://svn.apache.org/viewvc/jackrabbit/sandbox/jackrabbit-j3/src/test/java/org/apache/jackrabbit/j3/TestBundle.java?rev=1130162&r1=1130161&r2=1130162&view=diff
==============================================================================
--- jackrabbit/sandbox/jackrabbit-j3/src/test/java/org/apache/jackrabbit/j3/TestBundle.java (original)
+++ jackrabbit/sandbox/jackrabbit-j3/src/test/java/org/apache/jackrabbit/j3/TestBundle.java Wed Jun 1 14:33:33 2011
@@ -16,9 +16,9 @@
*/
package org.apache.jackrabbit.j3;
-import javax.jcr.PropertyType;
import junit.framework.TestCase;
import org.apache.jackrabbit.j3.mc.Bundle;
+import org.apache.jackrabbit.j3.mc.PropertyType;
import org.apache.jackrabbit.j3.mc.Val;
/**
@@ -26,6 +26,13 @@ import org.apache.jackrabbit.j3.mc.Val;
*/
public class TestBundle extends TestCase {
+ public void testPropertyType() {
+ for (int i = PropertyType.UNDEFINED; i <= PropertyType.DECIMAL; i++) {
+ String s = PropertyType.nameFromValue(i);
+ assertEquals(i, PropertyType.valueFromName(s));
+ }
+ }
+
public void testNodeId() {
try {
Val.getNodeId(268435456, 0);
@@ -114,7 +121,7 @@ public class TestBundle extends TestCase
testLength(Val.get(PropertyType.REFERENCE, "abc:def"));
testLength(Val.get(PropertyType.WEAKREFERENCE, "abc:def"));
testLength(Val.get(Val.TYPE_BINARY_REFERENCE, "0x1234"));
- testLength(Val.get("long string with strange characters äöü \u1234"));
+ testLength(Val.get("long string with strange characters ��� \u1234"));
testLength(Val.get(new byte[1024]));
testLength(Val.get(new byte[1024 * 1024]));
testLength(true, Val.get(Val.get("Hello World 1"), Val.get("Hello World 2"), Val.get("Hello World 3")));