You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@jackrabbit.apache.org by mr...@apache.org on 2009/09/16 16:33:25 UTC
svn commit: r815805 [2/2] - in /jackrabbit/sandbox/JCR-2170: ./
jackrabbit-api/src/main/java/org/apache/jackrabbit/api/
jackrabbit-api/src/main/java/org/apache/jackrabbit/api/management/
jackrabbit-core/ jackrabbit-core/src/main/java/org/apache/jackrab...
Modified: jackrabbit/sandbox/JCR-2170/jackrabbit-spi-commons/src/main/java/org/apache/jackrabbit/spi/commons/conversion/NameParser.java
URL: http://svn.apache.org/viewvc/jackrabbit/sandbox/JCR-2170/jackrabbit-spi-commons/src/main/java/org/apache/jackrabbit/spi/commons/conversion/NameParser.java?rev=815805&r1=815804&r2=815805&view=diff
==============================================================================
--- jackrabbit/sandbox/JCR-2170/jackrabbit-spi-commons/src/main/java/org/apache/jackrabbit/spi/commons/conversion/NameParser.java (original)
+++ jackrabbit/sandbox/JCR-2170/jackrabbit-spi-commons/src/main/java/org/apache/jackrabbit/spi/commons/conversion/NameParser.java Wed Sep 16 14:33:23 2009
@@ -119,24 +119,29 @@
} else if (c == '}') {
if (state == STATE_URI_START || state == STATE_URI) {
String tmp = jcrName.substring(1, i);
- try {
- // make sure the uri is a known namespace uri
- // TODO: since namespace registration does not validate
- // the URI format validation is omitted here
- if (!checkFormat) {
- resolver.getPrefix(tmp);
- }
+ if (tmp.length() == 0 || tmp.indexOf(':') != -1) {
+ // The leading "{...}" part is empty or contains
+ // a colon, so we treat it as a valid namespace URI.
+ // More detailed validity checks (is it well formed,
+ // registered, etc.) are not needed here.
uri = tmp;
state = STATE_NAME_START;
- } catch (NamespaceException e) {
- // unknown uri -> apparently a localname starting with {
- // -> make sure there are no invalid characters
- if (tmp.indexOf(':') == -1 && tmp.indexOf('/') == -1) {
- state = STATE_NAME;
- nameStart = 0;
- } else {
- throw new IllegalNameException("Unknown uri " + tmp + ". But ':' and '/' are not allowed in a local name.");
- }
+ } else if (tmp.equals("internal")) {
+ // As a special Jackrabbit backwards compatibility
+ // feature, support {internal} as a valid URI prefix
+ uri = tmp;
+ state = STATE_NAME_START;
+ } else if (tmp.indexOf('/') == -1) {
+ // The leading "{...}" contains neither a colon nor
+ // a slash, so we can interpret it as a a part of a
+ // normal local name.
+ state = STATE_NAME;
+ nameStart = 0;
+ } else {
+ throw new IllegalNameException(
+ "The URI prefix of the name " + jcrName
+ + " is neither a valid URI nor a valid part"
+ + " of a local name.");
}
} else if (state == STATE_PREFIX_START) {
state = STATE_PREFIX; // prefix start -> validation later on will fail.
Modified: jackrabbit/sandbox/JCR-2170/jackrabbit-spi-commons/src/test/java/org/apache/jackrabbit/spi/commons/conversion/NameParserTest.java
URL: http://svn.apache.org/viewvc/jackrabbit/sandbox/JCR-2170/jackrabbit-spi-commons/src/test/java/org/apache/jackrabbit/spi/commons/conversion/NameParserTest.java?rev=815805&r1=815804&r2=815805&view=diff
==============================================================================
--- jackrabbit/sandbox/JCR-2170/jackrabbit-spi-commons/src/test/java/org/apache/jackrabbit/spi/commons/conversion/NameParserTest.java (original)
+++ jackrabbit/sandbox/JCR-2170/jackrabbit-spi-commons/src/test/java/org/apache/jackrabbit/spi/commons/conversion/NameParserTest.java Wed Sep 16 14:33:23 2009
@@ -123,8 +123,7 @@
valid.add(new String[] {"{http://jackrabbit.apache.org:80}abc", "http://jackrabbit.apache.org:80", "abc"});
valid.add(new String[] {"{http://jackrabbit.apache.org/info}abc", "http://jackrabbit.apache.org/info", "abc"});
valid.add(new String[] {"{jcr:jackrabbit}abc", "jcr:jackrabbit", "abc"});
- valid.add(new String[] {"{/jackrabbit/a/b/c}abc", "/jackrabbit/a/b/c", "abc"});
- valid.add(new String[] {"{abc}def", "abc", "def"});
+ valid.add(new String[] {"{abc:}def", "abc:", "def"});
valid.add(new String[] {"{}abc", "", "abc"});
for (Iterator it = valid.iterator(); it.hasNext();) {
@@ -146,7 +145,7 @@
invalid.add("a{b:c");
invalid.add("a}b:c");
// unknown uri -> but invalid local name with ':' and or '/'
- invalid.add("{http//:test.apache.org}abc");
+ invalid.add("{http//test.apache.org}abc");
invalid.add("{test/test/test}abc");
// invalid local name containing '/'
invalid.add("{http://jackrabbit.apache.org}abc/dfg");
@@ -157,7 +156,6 @@
// invalid local name containing '/'
invalid.add("/a/b/c");
// known uri but local name missing -> must fail.
- invalid.add("{abc}");
invalid.add("{http://jackrabbit.apache.org}");
invalid.add("{}");
@@ -202,7 +200,6 @@
valid.add(new String[] {"{http://jackrabbit.apache.org:80}abc", "http://jackrabbit.apache.org:80", "abc"});
valid.add(new String[] {"{http://jackrabbit.apache.org/info}abc", "http://jackrabbit.apache.org/info", "abc"});
valid.add(new String[] {"{jcr:jackrabbit}abc", "jcr:jackrabbit", "abc"});
- valid.add(new String[] {"{/jackrabbit/a/b/c}abc", "/jackrabbit/a/b/c", "abc"});
valid.add(new String[] {"{abc}def", "abc", "def"});
valid.add(new String[] {"{}abc", "", "abc"});
@@ -231,9 +228,11 @@
// invalid local name containing '/'
invalid.add("/a/b/c");
// known uri but local name missing -> must fail.
- invalid.add("{abc}");
invalid.add("{http://jackrabbit.apache.org}");
invalid.add("{}");
+ // invalid URI part
+ invalid.add("{/jackrabbit/a/b/c}abc");
+
for (Iterator it = invalid.iterator(); it.hasNext();) {
String jcrName = (String) it.next();
Modified: jackrabbit/sandbox/JCR-2170/jackrabbit-spi-commons/src/test/java/org/apache/jackrabbit/spi/commons/name/JcrName.java
URL: http://svn.apache.org/viewvc/jackrabbit/sandbox/JCR-2170/jackrabbit-spi-commons/src/test/java/org/apache/jackrabbit/spi/commons/name/JcrName.java?rev=815805&r1=815804&r2=815805&view=diff
==============================================================================
--- jackrabbit/sandbox/JCR-2170/jackrabbit-spi-commons/src/test/java/org/apache/jackrabbit/spi/commons/name/JcrName.java (original)
+++ jackrabbit/sandbox/JCR-2170/jackrabbit-spi-commons/src/test/java/org/apache/jackrabbit/spi/commons/name/JcrName.java Wed Sep 16 14:33:23 2009
@@ -54,8 +54,10 @@
list.add(new JcrName("{}a", "", "a"));
list.add(new JcrName("{}name", "", "name"));
list.add(new JcrName("{}na me", "", "na me"));
- list.add(new JcrName("{prefix}name", "prefix", "name"));
- list.add(new JcrName("{prefix}na me", "prefix", "na me"));
+ list.add(new JcrName("{uri:}name", "uri:", "name"));
+ list.add(new JcrName("{uri:}na me", "uri:", "na me"));
+ list.add(new JcrName("{nouri}name", "", "{nouri}name"));
+ list.add(new JcrName("{nouri}na me", "", "{nouri}na me"));
list.add(new JcrName("{}...", "", "..."));
list.add(new JcrName("{}.a.", "", ".a."));
Modified: jackrabbit/sandbox/JCR-2170/pom.xml
URL: http://svn.apache.org/viewvc/jackrabbit/sandbox/JCR-2170/pom.xml?rev=815805&r1=815804&r2=815805&view=diff
==============================================================================
--- jackrabbit/sandbox/JCR-2170/pom.xml (original)
+++ jackrabbit/sandbox/JCR-2170/pom.xml Wed Sep 16 14:33:23 2009
@@ -44,7 +44,6 @@
<module>jackrabbit-jcr-commons</module>
<module>jackrabbit-jcr-tests</module>
<module>jackrabbit-core</module>
- <module>jackrabbit-text-extractors</module>
<module>jackrabbit-webdav</module>
<module>jackrabbit-jcr-server</module>
<module>jackrabbit-webapp</module>