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 an...@apache.org on 2012/04/05 13:25:50 UTC

svn commit: r1309769 - in /jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr: RepositoryImpl.java SessionImpl.java

Author: angela
Date: Thu Apr  5 11:25:50 2012
New Revision: 1309769

URL: http://svn.apache.org/viewvc?rev=1309769&view=rev
Log:
OAK-49 - Session.getRepository() should return the object through which the Session was acquired

Modified:
    jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/RepositoryImpl.java
    jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/SessionImpl.java

Modified: jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/RepositoryImpl.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/RepositoryImpl.java?rev=1309769&r1=1309768&r2=1309769&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/RepositoryImpl.java (original)
+++ jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/RepositoryImpl.java Thu Apr  5 11:25:50 2012
@@ -16,6 +16,7 @@
  */
 package org.apache.jackrabbit.oak.jcr;
 
+import org.apache.jackrabbit.commons.SimpleValueFactory;
 import org.apache.jackrabbit.mk.core.MicroKernelImpl;
 import org.apache.jackrabbit.oak.api.Connection;
 import org.apache.jackrabbit.oak.api.RepositoryService;
@@ -40,6 +41,7 @@ public class RepositoryImpl implements R
     private static final Logger log = LoggerFactory.getLogger(RepositoryImpl.class);
 
     private final GlobalContext context;
+    private final Descriptors descriptors = new Descriptors(new SimpleValueFactory());
 
     /**
      * Utility constructor that creates a JCR binding for an initially empty,
@@ -54,40 +56,61 @@ public class RepositoryImpl implements R
     }
 
     //---------------------------------------------------------< Repository >---
+    /**
+     * @see javax.jcr.Repository#getDescriptorKeys()
+     */
     @Override
     public String[] getDescriptorKeys() {
-        // TODO
-        throw new UnsupportedOperationException();
+        return descriptors.getKeys();
     }
 
+    /**
+     * @see Repository#isStandardDescriptor(String)
+     */
     @Override
     public boolean isStandardDescriptor(String key) {
-        // TODO
-        throw new UnsupportedOperationException();
+        return descriptors.isStandardDescriptor(key);
     }
 
+    /**
+     * @see javax.jcr.Repository#getDescriptor(String)
+     */
     @Override
     public String getDescriptor(String key) {
-        // TODO
-        throw new UnsupportedOperationException();
+        try {
+            Value v = getDescriptorValue(key);
+            return v == null
+                    ? null
+                    : v.getString();
+        }
+        catch (RepositoryException e) {
+            log.debug("Error converting value for descriptor with key {} to string", key);
+            return null;
+        }
     }
 
+    /**
+     * @see javax.jcr.Repository#getDescriptorValue(String)
+     */
     @Override
     public Value getDescriptorValue(String key) {
-        // TODO
-        throw new UnsupportedOperationException();
+        return descriptors.getValue(key);
     }
 
+    /**
+     * @see javax.jcr.Repository#getDescriptorValues(String)
+     */
     @Override
     public Value[] getDescriptorValues(String key) {
-        // TODO
-        throw new UnsupportedOperationException();
+        return descriptors.getValues(key);
     }
 
+    /**
+     * @see javax.jcr.Repository#isSingleValueDescriptor(String)
+     */
     @Override
     public boolean isSingleValueDescriptor(String key) {
-        // TODO
-        throw new UnsupportedOperationException();
+        return descriptors.isSingleValueDescriptor(key);
     }
 
     /**
@@ -100,7 +123,7 @@ public class RepositoryImpl implements R
         RepositoryService service = context.getInstance(RepositoryService.class);
         try {
             Connection connection = service.login(credentials, workspaceName);
-            return new SessionImpl(context, connection);
+            return new SessionImpl(context, this, connection);
         } catch (LoginException e) {
             throw new javax.jcr.LoginException(e.getMessage());
         }

Modified: jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/SessionImpl.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/SessionImpl.java?rev=1309769&r1=1309768&r2=1309769&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/SessionImpl.java (original)
+++ jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/SessionImpl.java Thu Apr  5 11:25:50 2012
@@ -69,13 +69,13 @@ public class SessionImpl extends Abstrac
 
     private final SessionContext<SessionImpl> sessionContext = new Context();
 
-    SessionImpl(GlobalContext globalContext, Connection connection) {
+    SessionImpl(GlobalContext globalContext, Repository repository, Connection connection) {
 
         this.globalContext = globalContext;
+        this.repository = repository;
         this.connection = connection;
 
         valueFactory = new ValueFactoryImpl();
-        repository = new RepositoryAdaptor(globalContext.getInstance(Repository.class), valueFactory);
         workspace = new WorkspaceImpl(sessionContext);
 
         transientSpace = new TransientSpace(sessionContext.getWorkspaceName(), sessionContext.getMicrokernel());