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 2007/10/05 16:06:52 UTC

svn commit: r582276 - /jackrabbit/trunk/contrib/spi/spi2jcr/src/main/java/org/apache/jackrabbit/spi2jcr/SessionInfoImpl.java

Author: angela
Date: Fri Oct  5 07:06:50 2007
New Revision: 582276

URL: http://svn.apache.org/viewvc?rev=582276&view=rev
Log:
JCR-1157 : Expose namespace registry via workspace instead via session in spi2jcr. (Apply patch provided by michael duerig)

Modified:
    jackrabbit/trunk/contrib/spi/spi2jcr/src/main/java/org/apache/jackrabbit/spi2jcr/SessionInfoImpl.java

Modified: jackrabbit/trunk/contrib/spi/spi2jcr/src/main/java/org/apache/jackrabbit/spi2jcr/SessionInfoImpl.java
URL: http://svn.apache.org/viewvc/jackrabbit/trunk/contrib/spi/spi2jcr/src/main/java/org/apache/jackrabbit/spi2jcr/SessionInfoImpl.java?rev=582276&r1=582275&r2=582276&view=diff
==============================================================================
--- jackrabbit/trunk/contrib/spi/spi2jcr/src/main/java/org/apache/jackrabbit/spi2jcr/SessionInfoImpl.java (original)
+++ jackrabbit/trunk/contrib/spi/spi2jcr/src/main/java/org/apache/jackrabbit/spi2jcr/SessionInfoImpl.java Fri Oct  5 07:06:50 2007
@@ -17,9 +17,11 @@
 package org.apache.jackrabbit.spi2jcr;
 
 import org.apache.jackrabbit.spi.SessionInfo;
-import org.apache.jackrabbit.name.SessionNamespaceResolver;
+import org.apache.jackrabbit.name.AbstractNamespaceResolver;
 import org.apache.jackrabbit.name.NamespaceResolver;
 
+import javax.jcr.NamespaceException;
+import javax.jcr.NamespaceRegistry;
 import javax.jcr.Session;
 import javax.jcr.RepositoryException;
 import javax.jcr.Credentials;
@@ -55,11 +57,36 @@
      * @param session     the JCR session.
      * @param credentials a copy of the credentials that were used to obtain the
      *                    JCR session.
+     * @throws RepositoryException 
      */
-    SessionInfoImpl(Session session, Credentials credentials) {
+    SessionInfoImpl(Session session, Credentials credentials) throws RepositoryException {
         this.session = session;
-        this.resolver = new SessionNamespaceResolver(session);
         this.credentials = credentials;
+        
+        final NamespaceRegistry nsReg = session.getWorkspace().getNamespaceRegistry();
+       
+        this.resolver = new AbstractNamespaceResolver() {
+            public String getPrefix(String uri) throws NamespaceException {
+                try {
+                    return nsReg.getPrefix(uri);
+                }
+                catch (RepositoryException e) {
+                    // should never get here...
+                    throw new NamespaceException("internal error: failed to resolve namespace uri", e);
+                }
+            }
+
+            public String getURI(String prefix) throws NamespaceException {
+                try {
+                    return nsReg.getURI(prefix);
+                }
+                catch (RepositoryException e) {
+                    // should never get here...
+                    throw new NamespaceException("internal error: failed to resolve namespace prefix", e);
+                }
+            }
+        };
+        
     }
 
     /**