You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@jackrabbit.apache.org by an...@apache.org on 2009/05/28 17:21:04 UTC
svn commit: r779624 - in /jackrabbit/trunk/jackrabbit-spi-commons/src:
main/java/org/apache/jackrabbit/spi/commons/conversion/
test/java/org/apache/jackrabbit/spi/commons/name/
Author: angela
Date: Thu May 28 15:21:03 2009
New Revision: 779624
URL: http://svn.apache.org/viewvc?rev=779624&view=rev
Log:
JCR-2028: JCR Path
JCR-1712: JCR Names
removed check for ' and " as they aren't invalid any more with JCR 2.0
Modified:
jackrabbit/trunk/jackrabbit-spi-commons/src/main/java/org/apache/jackrabbit/spi/commons/conversion/NameParser.java
jackrabbit/trunk/jackrabbit-spi-commons/src/main/java/org/apache/jackrabbit/spi/commons/conversion/PathParser.java
jackrabbit/trunk/jackrabbit-spi-commons/src/test/java/org/apache/jackrabbit/spi/commons/name/JcrName.java
jackrabbit/trunk/jackrabbit-spi-commons/src/test/java/org/apache/jackrabbit/spi/commons/name/JcrPath.java
Modified: jackrabbit/trunk/jackrabbit-spi-commons/src/main/java/org/apache/jackrabbit/spi/commons/conversion/NameParser.java
URL: http://svn.apache.org/viewvc/jackrabbit/trunk/jackrabbit-spi-commons/src/main/java/org/apache/jackrabbit/spi/commons/conversion/NameParser.java?rev=779624&r1=779623&r2=779624&view=diff
==============================================================================
--- jackrabbit/trunk/jackrabbit-spi-commons/src/main/java/org/apache/jackrabbit/spi/commons/conversion/NameParser.java (original)
+++ jackrabbit/trunk/jackrabbit-spi-commons/src/main/java/org/apache/jackrabbit/spi/commons/conversion/NameParser.java Thu May 28 15:21:03 2009
@@ -94,7 +94,7 @@
throw new IllegalNameException("'" + c + "' not valid name start");
}
trailingSpaces = true;
- } else if (Character.isWhitespace(c) || c == '[' || c == ']' || c == '*' || c == '\'' || c == '\"') {
+ } else if (Character.isWhitespace(c) || c == '[' || c == ']' || c == '*' || c == '|') {
throw new IllegalNameException("'" + c + "' not allowed in name");
} else if (c == '/') {
if (state == STATE_URI_START) {
Modified: jackrabbit/trunk/jackrabbit-spi-commons/src/main/java/org/apache/jackrabbit/spi/commons/conversion/PathParser.java
URL: http://svn.apache.org/viewvc/jackrabbit/trunk/jackrabbit-spi-commons/src/main/java/org/apache/jackrabbit/spi/commons/conversion/PathParser.java?rev=779624&r1=779623&r2=779624&view=diff
==============================================================================
--- jackrabbit/trunk/jackrabbit-spi-commons/src/main/java/org/apache/jackrabbit/spi/commons/conversion/PathParser.java (original)
+++ jackrabbit/trunk/jackrabbit-spi-commons/src/main/java/org/apache/jackrabbit/spi/commons/conversion/PathParser.java Thu May 28 15:21:03 2009
@@ -401,10 +401,8 @@
throw new MalformedPathException("'" + jcrPath + "' is not a valid path. Whitespace not a allowed in name.");
}
case '*':
- case '\'':
- case '\"':
+ case '|':
if (state != STATE_IDENTIFIER) {
- // TODO for JCR 2.0 remove limitation of ' and "
throw new MalformedPathException("'" + jcrPath + "' is not a valid path. '" + c + "' not a valid name character.");
}
case '{':
Modified: jackrabbit/trunk/jackrabbit-spi-commons/src/test/java/org/apache/jackrabbit/spi/commons/name/JcrName.java
URL: http://svn.apache.org/viewvc/jackrabbit/trunk/jackrabbit-spi-commons/src/test/java/org/apache/jackrabbit/spi/commons/name/JcrName.java?rev=779624&r1=779623&r2=779624&view=diff
==============================================================================
--- jackrabbit/trunk/jackrabbit-spi-commons/src/test/java/org/apache/jackrabbit/spi/commons/name/JcrName.java (original)
+++ jackrabbit/trunk/jackrabbit-spi-commons/src/test/java/org/apache/jackrabbit/spi/commons/name/JcrName.java Thu May 28 15:21:03 2009
@@ -39,6 +39,17 @@
list.add(new JcrName("...", "", "..."));
list.add(new JcrName(".a.", "", ".a."));
+ // valid names since jcr 2.0
+ list.add(new JcrName("a'", "", "a'")); // single quote
+ list.add(new JcrName("'a", "", "'a"));
+ list.add(new JcrName("ab'c", "", "ab'c"));
+ list.add(new JcrName("prefix:ab'c", "prefix", "ab'c"));
+
+ list.add(new JcrName("a\"", "", "a\"")); // double quote
+ list.add(new JcrName("\"a", "", "\"a"));
+ list.add(new JcrName("ab\"c", "", "ab\"c"));
+ list.add(new JcrName("prefix:ab\"c", "prefix", "ab\"c"));
+
// expanded names
list.add(new JcrName("{}a", "", "a"));
list.add(new JcrName("{}name", "", "name"));
@@ -60,11 +71,22 @@
list.add(new JcrName("prefix:name "));
list.add(new JcrName("pre fix:name"));
list.add(new JcrName("prefix :name"));
+
list.add(new JcrName("name/name"));
+
list.add(new JcrName("name[name"));
list.add(new JcrName("name]name"));
+ list.add(new JcrName("name[]"));
+ list.add(new JcrName("name[123]"));
+
list.add(new JcrName("name*name"));
+
list.add(new JcrName("prefix:name:name"));
+
+ list.add(new JcrName("name|name"));
+ list.add(new JcrName("|name"));
+ list.add(new JcrName("name|"));
+ list.add(new JcrName("prefix:name|name"));
}
private static JcrName[] tests = (JcrName[]) list.toArray(new JcrName[list.size()]);
Modified: jackrabbit/trunk/jackrabbit-spi-commons/src/test/java/org/apache/jackrabbit/spi/commons/name/JcrPath.java
URL: http://svn.apache.org/viewvc/jackrabbit/trunk/jackrabbit-spi-commons/src/test/java/org/apache/jackrabbit/spi/commons/name/JcrPath.java?rev=779624&r1=779623&r2=779624&view=diff
==============================================================================
--- jackrabbit/trunk/jackrabbit-spi-commons/src/test/java/org/apache/jackrabbit/spi/commons/name/JcrPath.java (original)
+++ jackrabbit/trunk/jackrabbit-spi-commons/src/test/java/org/apache/jackrabbit/spi/commons/name/JcrPath.java Thu May 28 15:21:03 2009
@@ -46,6 +46,10 @@
list.add(new JcrPath("/a/..../", "/a/....", NOR|VAL));
list.add(new JcrPath("/a/b:.a./", "/a/b:.a.", NOR|VAL));
+ // ... containing special characters allowed since JCR 2.0
+ list.add(new JcrPath("/name's[2]/'name[2]", NOR|VAL));
+ list.add(new JcrPath("/\"name\"[2]/name[2]", NOR|VAL));
+
// relative paths
list.add(new JcrPath("a/b/c/", "a/b/c", NOR|VAL));
list.add(new JcrPath("a/b/c", NOR|VAL));
@@ -74,6 +78,16 @@
list.add(new JcrPath("/..", "/..", 0));
list.add(new JcrPath("/a/b/../../..", "/a/b/../../..", 0));
+ list.add(new JcrPath("/prefix:*name"));
+ list.add(new JcrPath("/prefix:n*ame"));
+ list.add(new JcrPath("/prefix:|name"));
+ list.add(new JcrPath("/prefix:n|ame"));
+
+ list.add(new JcrPath("/name[2]\""));
+ list.add(new JcrPath("/name[2]\"/name"));
+ list.add(new JcrPath("/name[2]'"));
+ list.add(new JcrPath("/name[2]'/name"));
+
// normalized, relative paths
list.add(new JcrPath(".", ".", NOR|VAL));
list.add(new JcrPath("..", "..", NOR|VAL));