You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@jackrabbit.apache.org by md...@apache.org on 2011/09/16 17:17:57 UTC

svn commit: r1171619 - in /jackrabbit/sandbox/jackrabbit-mk/jackrabbit-jcr2spi/src/main/java/org/apache/jackrabbit/jcr2spi/hierarchy: EntryFactory.java HierarchyManager.java NodeEntry.java

Author: mduerig
Date: Fri Sep 16 15:17:56 2011
New Revision: 1171619

URL: http://svn.apache.org/viewvc?rev=1171619&view=rev
Log:
Microkernel based Jackrabbit prototype (WIP) 
simplify initialisation   

Modified:
    jackrabbit/sandbox/jackrabbit-mk/jackrabbit-jcr2spi/src/main/java/org/apache/jackrabbit/jcr2spi/hierarchy/EntryFactory.java
    jackrabbit/sandbox/jackrabbit-mk/jackrabbit-jcr2spi/src/main/java/org/apache/jackrabbit/jcr2spi/hierarchy/HierarchyManager.java
    jackrabbit/sandbox/jackrabbit-mk/jackrabbit-jcr2spi/src/main/java/org/apache/jackrabbit/jcr2spi/hierarchy/NodeEntry.java

Modified: jackrabbit/sandbox/jackrabbit-mk/jackrabbit-jcr2spi/src/main/java/org/apache/jackrabbit/jcr2spi/hierarchy/EntryFactory.java
URL: http://svn.apache.org/viewvc/jackrabbit/sandbox/jackrabbit-mk/jackrabbit-jcr2spi/src/main/java/org/apache/jackrabbit/jcr2spi/hierarchy/EntryFactory.java?rev=1171619&r1=1171618&r2=1171619&view=diff
==============================================================================
--- jackrabbit/sandbox/jackrabbit-mk/jackrabbit-jcr2spi/src/main/java/org/apache/jackrabbit/jcr2spi/hierarchy/EntryFactory.java (original)
+++ jackrabbit/sandbox/jackrabbit-mk/jackrabbit-jcr2spi/src/main/java/org/apache/jackrabbit/jcr2spi/hierarchy/EntryFactory.java Fri Sep 16 15:17:56 2011
@@ -23,11 +23,12 @@ import org.apache.jackrabbit.spi.Name;
 import org.apache.jackrabbit.spi.Path;
 import org.apache.jackrabbit.spi.PathFactory;
 import org.apache.jackrabbit.spi.commons.conversion.NamePathResolver;
+import org.apache.jackrabbit.spi.commons.name.NameConstants;
 
 /**
  * {@code EntryFactory}...
  */
-public class EntryFactory {
+public final class EntryFactory {
 
     /**
      * IdFactory to create an ItemId based on the parent NodeId.
@@ -36,22 +37,22 @@ public class EntryFactory {
 
     private final PathFactory pathFactory;
 
-    private final NodeEntry rootEntry;
-
     /**
-     * Listener to creation and uid-changes of node entries.
+     * The item state factory to create the the item state.
      */
-    private final NodeEntryListener listener;
+    private final TransientItemStateFactory itemStateFactory;
 
     /**
-     * The item state factory to create the the item state.
+     * Listener to creation and uid-changes of node entries.
      */
-    private final TransientItemStateFactory isf;
+    private final NodeEntryListener listener;
 
     /**
      * NamePathResolver used to generate human readable error messages.
      */
-    private NamePathResolver resolver;
+    private final NamePathResolver namePathResolver;
+
+    private final NodeEntry rootEntry;
 
     /**
      * Strategy used for item state invalidation (refresh)
@@ -61,35 +62,35 @@ public class EntryFactory {
     /**
      * Create a new instance of the {@code EntryFactory}.
      *
-     * @param isf
+     * @param itemStateFactory
      * @param idFactory
      * @param listener
      * @param pathFactory
      */
-    public EntryFactory(TransientItemStateFactory isf, IdFactory idFactory, NodeEntryListener listener,
-        PathFactory pathFactory) {
+    public EntryFactory(TransientItemStateFactory itemStateFactory, IdFactory idFactory, NodeEntryListener listener,
+        PathFactory pathFactory, NamePathResolver namePathResolver) {
         
         this.idFactory = idFactory;
         this.pathFactory = pathFactory;
-        this.isf = isf;
+        this.itemStateFactory = itemStateFactory;
         this.listener = listener;
+        this.namePathResolver = namePathResolver;
 
         invalidationStrategy = new NodeEntry.LazyInvalidation();
-        rootEntry = NodeEntry.createRootEntry(this);
+        rootEntry = createNodeEntry(null, NameConstants.ROOT, null);
     }
 
     /**
      * @return the root entry.
      */
-    public NodeEntry createRootEntry() {
+    public NodeEntry getRootEntry() {
         return rootEntry;
     }
 
     public NodeEntry createNodeEntry(NodeEntry parent, Name qName, String uniqueId) {
-        if (!(parent instanceof NodeEntry)) {
-            throw new IllegalArgumentException();
-        }
-        return NodeEntry.createNodeEntry(parent, qName, uniqueId, this);
+        NodeEntry entry = new NodeEntry(parent, qName, uniqueId, this);
+        notifyEntryCreated(entry);
+        return entry;
     }
 
     public PropertyEntry createPropertyEntry(NodeEntry parent, Name qName) {
@@ -108,7 +109,7 @@ public class EntryFactory {
     }
 
     public TransientItemStateFactory getItemStateFactory() {
-        return isf;
+        return itemStateFactory;
     }
 
     public void notifyEntryCreated(NodeEntry entry) {
@@ -129,21 +130,14 @@ public class EntryFactory {
     //--------------------------------------------------------------------------
 
     /**
-     * @param resolver
-     */
-    void setResolver(NamePathResolver resolver) {
-        this.resolver = resolver;
-    }
-
-    /**
      * @param path
      * @return jcr presentation of the specified path.
      */
     String saveGetJCRPath(Path path) {
-        if (resolver == null) {
+        if (namePathResolver == null) {
             return path.toString();
         } else {
-            return LogUtil.safeGetJCRPath(path, resolver);
+            return LogUtil.safeGetJCRPath(path, namePathResolver);
         }
     }
 

Modified: jackrabbit/sandbox/jackrabbit-mk/jackrabbit-jcr2spi/src/main/java/org/apache/jackrabbit/jcr2spi/hierarchy/HierarchyManager.java
URL: http://svn.apache.org/viewvc/jackrabbit/sandbox/jackrabbit-mk/jackrabbit-jcr2spi/src/main/java/org/apache/jackrabbit/jcr2spi/hierarchy/HierarchyManager.java?rev=1171619&r1=1171618&r2=1171619&view=diff
==============================================================================
--- jackrabbit/sandbox/jackrabbit-mk/jackrabbit-jcr2spi/src/main/java/org/apache/jackrabbit/jcr2spi/hierarchy/HierarchyManager.java (original)
+++ jackrabbit/sandbox/jackrabbit-mk/jackrabbit-jcr2spi/src/main/java/org/apache/jackrabbit/jcr2spi/hierarchy/HierarchyManager.java Fri Sep 16 15:17:56 2011
@@ -50,7 +50,7 @@ public class HierarchyManager {
             NamePathResolver namePathResolver) {
 
         uniqueIdResolver = new UniqueIdResolver(isf);
-        rootEntry = new EntryFactory(isf, idFactory, uniqueIdResolver, pathFactory).createRootEntry();
+        rootEntry = new EntryFactory(isf, idFactory, uniqueIdResolver, pathFactory, namePathResolver).getRootEntry();
         this.idFactory = idFactory;
         this.namePathResolver = namePathResolver;
     }

Modified: jackrabbit/sandbox/jackrabbit-mk/jackrabbit-jcr2spi/src/main/java/org/apache/jackrabbit/jcr2spi/hierarchy/NodeEntry.java
URL: http://svn.apache.org/viewvc/jackrabbit/sandbox/jackrabbit-mk/jackrabbit-jcr2spi/src/main/java/org/apache/jackrabbit/jcr2spi/hierarchy/NodeEntry.java?rev=1171619&r1=1171618&r2=1171619&view=diff
==============================================================================
--- jackrabbit/sandbox/jackrabbit-mk/jackrabbit-jcr2spi/src/main/java/org/apache/jackrabbit/jcr2spi/hierarchy/NodeEntry.java (original)
+++ jackrabbit/sandbox/jackrabbit-mk/jackrabbit-jcr2spi/src/main/java/org/apache/jackrabbit/jcr2spi/hierarchy/NodeEntry.java Fri Sep 16 15:17:56 2011
@@ -167,35 +167,15 @@ public class NodeEntry extends Hierarchy
      * @param name      the name of the child node.
      * @param factory   the entry factory.
      */
-    private NodeEntry(NodeEntry parent, Name name, String uniqueID, EntryFactory factory) {
+    NodeEntry(NodeEntry parent, Name name, String uniqueID, EntryFactory factory) {
         super(parent, name, factory);
-        this.uniqueID = uniqueID; // NOTE: don't use setUniqueID (for mod only)
+        this.uniqueID = uniqueID; 
 
         properties = new ChildPropertyEntriesImpl(this, factory);
         childNodeEntries = new ChildNodeEntriesImpl(this, factory, null);
 
         propertiesInAttic = new HashMap<Name, PropertyEntry>();
         childNodeAttic = new ChildNodeAttic();
-
-        factory.notifyEntryCreated(this);
-    }
-
-    /**
-     * @return the entry corresponding to the root node.
-     */
-    static NodeEntry createRootEntry(EntryFactory factory) {
-        return new NodeEntry(null, NameConstants.ROOT, null, factory);
-    }
-
-    /**
-     * @param parent
-     * @param name
-     * @param uniqueId
-     * @param factory
-     * @return the created entry.
-     */
-    static NodeEntry createNodeEntry(NodeEntry parent, Name name, String uniqueId, EntryFactory factory) {
-        return new NodeEntry(parent, name, uniqueId, factory);
     }
 
     //-----------------------------------------------------< HierarchyEntry >---