You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@jackrabbit.apache.org by ju...@apache.org on 2010/05/28 13:31:26 UTC

svn commit: r949152 - /jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/RepositoryImpl.java

Author: jukka
Date: Fri May 28 11:31:25 2010
New Revision: 949152

URL: http://svn.apache.org/viewvc?rev=949152&view=rev
Log:
JCR-2640: Internal repository context

Restore factory methods that subclasses can use to override the default namespace and node type registries.

Modified:
    jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/RepositoryImpl.java

Modified: jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/RepositoryImpl.java
URL: http://svn.apache.org/viewvc/jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/RepositoryImpl.java?rev=949152&r1=949151&r2=949152&view=diff
==============================================================================
--- jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/RepositoryImpl.java (original)
+++ jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/RepositoryImpl.java Fri May 28 11:31:25 2010
@@ -98,7 +98,6 @@ import org.apache.jackrabbit.core.securi
 import org.apache.jackrabbit.core.state.CacheManager;
 import org.apache.jackrabbit.core.state.ChangeLog;
 import org.apache.jackrabbit.core.state.ISMLocking;
-import org.apache.jackrabbit.core.state.ItemStateCacheFactory;
 import org.apache.jackrabbit.core.state.ItemStateException;
 import org.apache.jackrabbit.core.state.ManagedMLRUItemStateCacheFactory;
 import org.apache.jackrabbit.core.state.SharedItemStateManager;
@@ -291,10 +290,8 @@ public class RepositoryImpl extends Abst
             initRepositoryDescriptors();
 
             // create registries
-            context.setNamespaceRegistry(
-                    new NamespaceRegistryImpl(context.getFileSystem()));
-            context.setNodeTypeRegistry(new NodeTypeRegistry(
-                    context.getNamespaceRegistry(), context.getFileSystem()));
+            context.setNamespaceRegistry(createNamespaceRegistry());
+            context.setNodeTypeRegistry(createNodeTypeRegistry());
 
             // Create item state cache manager
             context.setItemStateCacheFactory(
@@ -400,6 +397,33 @@ public class RepositoryImpl extends Abst
     }
 
     /**
+     * Protected factory method for creating the namespace registry.
+     * Called by the constructor after the repository file system has
+     * been initialised.
+     *
+     * @return namespace registry
+     * @throws RepositoryException if the namespace registry can not be created
+     */
+    protected NamespaceRegistryImpl createNamespaceRegistry()
+            throws RepositoryException {
+        return new NamespaceRegistryImpl(context.getFileSystem());
+    }
+
+    /**
+     * Protected factory method for creating the node type registry.
+     * Called by the constructor after the repository file system and
+     * namespace registry have been initialised.
+     *
+     * @return node type registry
+     * @throws RepositoryException if the node type registry can not be created
+     */
+    protected NodeTypeRegistry createNodeTypeRegistry()
+            throws RepositoryException {
+        return new NodeTypeRegistry(
+                context.getNamespaceRegistry(), context.getFileSystem());
+    }
+
+    /**
      * Returns the internal component context of this repository.
      * This package-private method should only be used when there is
      * no other reasonable way to access the repository context.
@@ -528,7 +552,7 @@ public class RepositoryImpl extends Abst
     private NodeId loadRootNodeId() throws RepositoryException {
         try {
             FileSystemResource uuidFile = new FileSystemResource(
-                    context.getFileSystem(), "meta/rootUUID");
+                    context.getFileSystem(), "/meta/rootUUID");
             if (uuidFile.exists()) {
                 // Load uuid of the repository's root node. It is stored in
                 // text format (36 characters) for better readability.