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 re...@apache.org on 2012/05/02 16:16:28 UTC
svn commit: r1333055 - in /jackrabbit/oak/trunk: oak-it/jcr/pom.xml
oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/namespace/NamespaceRegistryImpl.java
Author: reschke
Date: Wed May 2 14:16:27 2012
New Revision: 1333055
URL: http://svn.apache.org/viewvc?rev=1333055&view=rev
Log:
OAK-6: minor NamespaceRegistry fixes, update test exclusions
Modified:
jackrabbit/oak/trunk/oak-it/jcr/pom.xml
jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/namespace/NamespaceRegistryImpl.java
Modified: jackrabbit/oak/trunk/oak-it/jcr/pom.xml
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-it/jcr/pom.xml?rev=1333055&r1=1333054&r2=1333055&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-it/jcr/pom.xml (original)
+++ jackrabbit/oak/trunk/oak-it/jcr/pom.xml Wed May 2 14:16:27 2012
@@ -48,7 +48,6 @@ org.apache.jackrabbit.test.api.NodeDisco
org.apache.jackrabbit.test.api.SessionReadMethodsTest#testGetNodeByUUIDFailure
org.apache.jackrabbit.test.api.PathTest
org.apache.jackrabbit.test.api.AddNodeTest
-org.apache.jackrabbit.test.api.NamespaceRegistryTest
org.apache.jackrabbit.test.api.ReferencesTest
org.apache.jackrabbit.test.api.SessionTest
org.apache.jackrabbit.test.api.SessionUUIDTest
Modified: jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/namespace/NamespaceRegistryImpl.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/namespace/NamespaceRegistryImpl.java?rev=1333055&r1=1333054&r2=1333055&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/namespace/NamespaceRegistryImpl.java (original)
+++ jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/namespace/NamespaceRegistryImpl.java Wed May 2 14:16:27 2012
@@ -16,6 +16,8 @@
*/
package org.apache.jackrabbit.oak.jcr.namespace;
+import java.util.Locale;
+
import javax.jcr.NamespaceException;
import javax.jcr.NamespaceRegistry;
import javax.jcr.RepositoryException;
@@ -39,6 +41,8 @@ public class NamespaceRegistryImpl imple
@Override
public void registerNamespace(String prefix, String uri)
throws RepositoryException {
+ checkMutablePrefix(prefix);
+ checkMutableURI(uri);
try {
nsMappings.registerNamespace(prefix, uri);
} catch (CommitFailedException e) {
@@ -50,7 +54,11 @@ public class NamespaceRegistryImpl imple
@Override
public void unregisterNamespace(String prefix) throws RepositoryException {
+ checkMutablePrefix(prefix);
try {
+ if (nsMappings.getURI(prefix) == null) {
+ throw new NamespaceException("prefix '" + prefix + "' is unused");
+ }
nsMappings.unregisterNamespace(prefix);
} catch (CommitFailedException e) {
throw new RepositoryException(
@@ -110,4 +118,18 @@ public class NamespaceRegistryImpl imple
+ uri, e);
}
}
+
+ private void checkMutablePrefix(String prefix) throws NamespaceException {
+ if ("jcr".equals(prefix) || "nt".equals(prefix) || "mix".equals(prefix) || "sv".equals(prefix)
+ || prefix.toLowerCase(Locale.ENGLISH).startsWith("xml")) {
+ throw new NamespaceException("Can not map or remap prefix '" + prefix + "'");
+ }
+ }
+
+ private void checkMutableURI(String uri) throws NamespaceException {
+ if ("http://www.jcp.org/jcr/1.0".equals(uri) || "http://www.jcp.org/jcr/nt/1.0".equals(uri)
+ || "http://www.jcp.org/jcr/mix/1.0".equals(uri) || "http://www.jcp.org/jcr/sv/1.0".equals(uri)) {
+ throw new NamespaceException("Can not map or remap uri '" + uri + "'");
+ }
+ }
}