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 md...@apache.org on 2012/04/21 17:39:52 UTC
svn commit: r1328695 - in /jackrabbit/oak/trunk:
oak-core/src/main/java/org/apache/jackrabbit/oak/namepath/
oak-core/src/test/java/org/apache/jackrabbit/oak/namepath/
oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/
oak-jcr/src/test/java/org/apache...
Author: mduerig
Date: Sat Apr 21 15:39:52 2012
New Revision: 1328695
URL: http://svn.apache.org/viewvc?rev=1328695&view=rev
Log:
OAK-61: Implement JCR path handling
- Rename NamespaceRegistry in oak-core to NamespaceMappings to avoid naming conflict with javax.jcr.NamespaceRegistry
- Add methods for enumerating namespaces to NamespaceMappings
- Use NamespaceMappings in oak-core in NamespaceRegistryImpl
- Enable namespace test in RepositoryTest
Added:
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/namepath/NamespaceMappings.java
- copied, changed from r1328633, jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/namepath/NamespaceRegistry.java
Removed:
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/namepath/NamespaceRegistry.java
Modified:
jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/namepath/NameSpaceRegistryTest.java
jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/NamespaceRegistryImpl.java
jackrabbit/oak/trunk/oak-jcr/src/test/java/org/apache/jackrabbit/oak/jcr/RepositoryTest.java
Copied: jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/namepath/NamespaceMappings.java (from r1328633, jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/namepath/NamespaceRegistry.java)
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/namepath/NamespaceMappings.java?p2=jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/namepath/NamespaceMappings.java&p1=jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/namepath/NamespaceRegistry.java&r1=1328633&r2=1328695&rev=1328695&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/namepath/NamespaceRegistry.java (original)
+++ jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/namepath/NamespaceMappings.java Sat Apr 21 15:39:52 2012
@@ -31,7 +31,7 @@ import java.util.Map;
*
* TODO: expose the relevant methods through the Oak API.
*/
-public class NamespaceRegistry {
+public class NamespaceMappings {
private final Map<String, String> jcr2NsMap = new HashMap<String, String>();
private final Map<String, String> ns2MkMap = new HashMap<String, String>();
private final Map<String, String> mk2JcrMap = new HashMap<String, String>();
@@ -117,8 +117,24 @@ public class NamespaceRegistry {
public String getJcrPrefix(String namespace) {
return mk2JcrMap.get(ns2MkMap.get(namespace));
}
-
- //------------------------------------------------------------< internal >---
+
+ /**
+ * Return the registered namespaces
+ * @return
+ */
+ public String[] getNamespaces() {
+ return jcr2NsMap.values().toArray(new String[jcr2NsMap.size()]);
+ }
+
+ /**
+ * Return the registered jcr prefixes
+ * @return
+ */
+ public String[] getJcrPrefixes() {
+ return jcr2NsMap.keySet().toArray(new String[jcr2NsMap.size()]);
+ }
+
+ //------------------------------------------------------------< internal >---
/**
* Retrieve the jcr prefix which maps to {@code mkPrefix} if any
Modified: jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/namepath/NameSpaceRegistryTest.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/namepath/NameSpaceRegistryTest.java?rev=1328695&r1=1328694&r2=1328695&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/namepath/NameSpaceRegistryTest.java (original)
+++ jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/namepath/NameSpaceRegistryTest.java Sat Apr 21 15:39:52 2012
@@ -26,7 +26,7 @@ public class NameSpaceRegistryTest {
@Test
public void nameSpaceRegistry() {
- NamespaceRegistry r = new NamespaceRegistry();
+ NamespaceMappings r = new NamespaceMappings();
r.registerNamespace("p", "n");
assertEquals(r.getNamespace("p"), "n");
Modified: jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/NamespaceRegistryImpl.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/NamespaceRegistryImpl.java?rev=1328695&r1=1328694&r2=1328695&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/NamespaceRegistryImpl.java (original)
+++ jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/NamespaceRegistryImpl.java Sat Apr 21 15:39:52 2012
@@ -16,54 +16,52 @@
*/
package org.apache.jackrabbit.oak.jcr;
+import org.apache.jackrabbit.oak.namepath.NamespaceMappings;
+
import javax.jcr.NamespaceException;
import javax.jcr.NamespaceRegistry;
import javax.jcr.RepositoryException;
-import java.util.HashMap;
-import java.util.Map;
/**
* A naive implementation of {@link NamespaceRegistry}, hard-wiring the
* predefined namespaces for now.
+ * TODO use API only
*/
public class NamespaceRegistryImpl implements NamespaceRegistry {
- private final Map<String, String> map;
-
+ NamespaceMappings nsMappings = new NamespaceMappings();
+
public NamespaceRegistryImpl() {
- map = new HashMap<String, String>();
- map.put(PREFIX_EMPTY, NAMESPACE_EMPTY);
- map.put(PREFIX_JCR, NAMESPACE_JCR);
- map.put(PREFIX_MIX, NAMESPACE_MIX);
- map.put(PREFIX_NT, NAMESPACE_NT);
- map.put(PREFIX_XML, NAMESPACE_XML);
- map.put("sv", "http://www.jcp.org/jcr/sv/1.0");
+ nsMappings.registerNamespace(PREFIX_EMPTY, NAMESPACE_EMPTY);
+ nsMappings.registerNamespace(PREFIX_JCR, NAMESPACE_JCR);
+ nsMappings.registerNamespace(PREFIX_MIX, NAMESPACE_MIX);
+ nsMappings.registerNamespace(PREFIX_NT, NAMESPACE_NT);
+ nsMappings.registerNamespace(PREFIX_XML, NAMESPACE_XML);
+ nsMappings.registerNamespace("sv", "http://www.jcp.org/jcr/sv/1.0");
}
@Override
public void registerNamespace(String prefix, String uri) throws RepositoryException {
- // TODO
- throw new UnsupportedOperationException();
+ nsMappings.registerNamespace(prefix, uri);
}
@Override
public void unregisterNamespace(String prefix) throws RepositoryException {
- // TODO
- throw new UnsupportedOperationException();
+ nsMappings.unregisterJcrPrefix(prefix);
}
@Override
public String[] getPrefixes() throws RepositoryException {
- return map.keySet().toArray(new String[map.size()]);
+ return nsMappings.getJcrPrefixes();
}
@Override
public String[] getURIs() throws RepositoryException {
- return map.values().toArray(new String[map.size()]);
+ return nsMappings.getNamespaces();
}
@Override
public String getURI(String prefix) throws RepositoryException {
- String result = map.get(prefix);
+ String result = nsMappings.getNamespace(prefix);
if (result == null) {
throw new NamespaceException();
}
@@ -72,11 +70,10 @@ public class NamespaceRegistryImpl imple
@Override
public String getPrefix(String uri) throws RepositoryException {
- for (Map.Entry<String, String> entry : map.entrySet()) {
- if (entry.getValue().equals(uri)) {
- return entry.getKey();
- }
+ String result = nsMappings.getJcrPrefix(uri);
+ if (result == null) {
+ throw new NamespaceException();
}
- throw new NamespaceException();
+ return result;
}
}
Modified: jackrabbit/oak/trunk/oak-jcr/src/test/java/org/apache/jackrabbit/oak/jcr/RepositoryTest.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-jcr/src/test/java/org/apache/jackrabbit/oak/jcr/RepositoryTest.java?rev=1328695&r1=1328694&r2=1328695&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-jcr/src/test/java/org/apache/jackrabbit/oak/jcr/RepositoryTest.java (original)
+++ jackrabbit/oak/trunk/oak-jcr/src/test/java/org/apache/jackrabbit/oak/jcr/RepositoryTest.java Sat Apr 21 15:39:52 2012
@@ -1312,7 +1312,6 @@ public class RepositoryTest extends Abst
assertFalse(ntMgr.hasNodeType("foo"));
}
- @Ignore // TODO implement node type support
@Test
public void nameSpaceRegistry() throws RepositoryException {
NamespaceRegistry nsReg = getSession().getWorkspace().getNamespaceRegistry();