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/10/14 12:21:29 UTC

svn commit: r1183276 - in /jackrabbit/sandbox/jackrabbit-mk/jackrabbit-jcr2spi/src/main/java/org/apache/jackrabbit/jcr2spi: ./ state/

Author: mduerig
Date: Fri Oct 14 10:21:29 2011
New Revision: 1183276

URL: http://svn.apache.org/viewvc?rev=1183276&view=rev
Log:
Microkernel based Jackrabbit prototype (WIP)
correct exception handling for node references

Modified:
    jackrabbit/sandbox/jackrabbit-mk/jackrabbit-jcr2spi/src/main/java/org/apache/jackrabbit/jcr2spi/ItemImpl.java
    jackrabbit/sandbox/jackrabbit-mk/jackrabbit-jcr2spi/src/main/java/org/apache/jackrabbit/jcr2spi/state/ItemState.java
    jackrabbit/sandbox/jackrabbit-mk/jackrabbit-jcr2spi/src/main/java/org/apache/jackrabbit/jcr2spi/state/ItemStateFactory.java
    jackrabbit/sandbox/jackrabbit-mk/jackrabbit-jcr2spi/src/main/java/org/apache/jackrabbit/jcr2spi/state/NodeState.java
    jackrabbit/sandbox/jackrabbit-mk/jackrabbit-jcr2spi/src/main/java/org/apache/jackrabbit/jcr2spi/state/TransientISFactory.java
    jackrabbit/sandbox/jackrabbit-mk/jackrabbit-jcr2spi/src/main/java/org/apache/jackrabbit/jcr2spi/state/WorkspaceItemStateFactory.java

Modified: jackrabbit/sandbox/jackrabbit-mk/jackrabbit-jcr2spi/src/main/java/org/apache/jackrabbit/jcr2spi/ItemImpl.java
URL: http://svn.apache.org/viewvc/jackrabbit/sandbox/jackrabbit-mk/jackrabbit-jcr2spi/src/main/java/org/apache/jackrabbit/jcr2spi/ItemImpl.java?rev=1183276&r1=1183275&r2=1183276&view=diff
==============================================================================
--- jackrabbit/sandbox/jackrabbit-mk/jackrabbit-jcr2spi/src/main/java/org/apache/jackrabbit/jcr2spi/ItemImpl.java (original)
+++ jackrabbit/sandbox/jackrabbit-mk/jackrabbit-jcr2spi/src/main/java/org/apache/jackrabbit/jcr2spi/ItemImpl.java Fri Oct 14 10:21:29 2011
@@ -236,8 +236,8 @@ public abstract class ItemImpl<STATE_TYP
         }
 
         switch (state.getStatus()) {
-            //   Notify listeners about an update (status was MODIFIED before)
-            //   or a simple refresh without modification (status was INVALIDATED).
+            // Notify listeners about an update (status was MODIFIED before)
+            // or a simple refresh without modification (status was INVALIDATED).
             case EXISTING:
                 if (previousStatus == Status.INVALIDATED || previousStatus == Status.MODIFIED) {
                     notifyUpdated(previousStatus == Status.MODIFIED);

Modified: jackrabbit/sandbox/jackrabbit-mk/jackrabbit-jcr2spi/src/main/java/org/apache/jackrabbit/jcr2spi/state/ItemState.java
URL: http://svn.apache.org/viewvc/jackrabbit/sandbox/jackrabbit-mk/jackrabbit-jcr2spi/src/main/java/org/apache/jackrabbit/jcr2spi/state/ItemState.java?rev=1183276&r1=1183275&r2=1183276&view=diff
==============================================================================
--- jackrabbit/sandbox/jackrabbit-mk/jackrabbit-jcr2spi/src/main/java/org/apache/jackrabbit/jcr2spi/state/ItemState.java (original)
+++ jackrabbit/sandbox/jackrabbit-mk/jackrabbit-jcr2spi/src/main/java/org/apache/jackrabbit/jcr2spi/state/ItemState.java Fri Oct 14 10:21:29 2011
@@ -35,10 +35,6 @@ import java.util.Collection;
  * {@code ItemState} represents the state of an {@code Item}.
  */
 public abstract class ItemState<ENTRY_TYPE extends HierarchyEntry<?>> {
-
-    /**
-     * Logger instance
-     */
     private static final Logger log = LoggerFactory.getLogger(ItemState.class);
 
     /**

Modified: jackrabbit/sandbox/jackrabbit-mk/jackrabbit-jcr2spi/src/main/java/org/apache/jackrabbit/jcr2spi/state/ItemStateFactory.java
URL: http://svn.apache.org/viewvc/jackrabbit/sandbox/jackrabbit-mk/jackrabbit-jcr2spi/src/main/java/org/apache/jackrabbit/jcr2spi/state/ItemStateFactory.java?rev=1183276&r1=1183275&r2=1183276&view=diff
==============================================================================
--- jackrabbit/sandbox/jackrabbit-mk/jackrabbit-jcr2spi/src/main/java/org/apache/jackrabbit/jcr2spi/state/ItemStateFactory.java (original)
+++ jackrabbit/sandbox/jackrabbit-mk/jackrabbit-jcr2spi/src/main/java/org/apache/jackrabbit/jcr2spi/state/ItemStateFactory.java Fri Oct 14 10:21:29 2011
@@ -119,7 +119,7 @@ public interface ItemStateFactory {
      * returned or not.
      * @return reference property identifiers
      */
-    Iterator<PropertyId> getNodeReferences(NodeState nodeState, Name propertyName, boolean weak);
+    Iterator<PropertyId> getNodeReferences(NodeState nodeState, Name propertyName, boolean weak) throws RepositoryException;
 
     /**
      * Adds the given {@code ItemStateCreationListener}.

Modified: jackrabbit/sandbox/jackrabbit-mk/jackrabbit-jcr2spi/src/main/java/org/apache/jackrabbit/jcr2spi/state/NodeState.java
URL: http://svn.apache.org/viewvc/jackrabbit/sandbox/jackrabbit-mk/jackrabbit-jcr2spi/src/main/java/org/apache/jackrabbit/jcr2spi/state/NodeState.java?rev=1183276&r1=1183275&r2=1183276&view=diff
==============================================================================
--- jackrabbit/sandbox/jackrabbit-mk/jackrabbit-jcr2spi/src/main/java/org/apache/jackrabbit/jcr2spi/state/NodeState.java (original)
+++ jackrabbit/sandbox/jackrabbit-mk/jackrabbit-jcr2spi/src/main/java/org/apache/jackrabbit/jcr2spi/state/NodeState.java Fri Oct 14 10:21:29 2011
@@ -297,7 +297,7 @@ public class NodeState extends ItemState
      * returned or not.
      * @return reference property identifiers
      */
-    public Iterator<PropertyId> getNodeReferences(Name propertyName, boolean weak) {
+    public Iterator<PropertyId> getNodeReferences(Name propertyName, boolean weak) throws RepositoryException {
         return isf.getNodeReferences(this, propertyName, weak);
     }
 

Modified: jackrabbit/sandbox/jackrabbit-mk/jackrabbit-jcr2spi/src/main/java/org/apache/jackrabbit/jcr2spi/state/TransientISFactory.java
URL: http://svn.apache.org/viewvc/jackrabbit/sandbox/jackrabbit-mk/jackrabbit-jcr2spi/src/main/java/org/apache/jackrabbit/jcr2spi/state/TransientISFactory.java?rev=1183276&r1=1183275&r2=1183276&view=diff
==============================================================================
--- jackrabbit/sandbox/jackrabbit-mk/jackrabbit-jcr2spi/src/main/java/org/apache/jackrabbit/jcr2spi/state/TransientISFactory.java (original)
+++ jackrabbit/sandbox/jackrabbit-mk/jackrabbit-jcr2spi/src/main/java/org/apache/jackrabbit/jcr2spi/state/TransientISFactory.java Fri Oct 14 10:21:29 2011
@@ -26,13 +26,12 @@ import org.apache.jackrabbit.spi.Propert
 import org.apache.jackrabbit.spi.QNodeDefinition;
 import org.apache.jackrabbit.spi.QPropertyDefinition;
 import org.apache.jackrabbit.spi.QValue;
+import org.apache.jackrabbit.spi.commons.util.Iterators;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
 import javax.jcr.RepositoryException;
-import java.util.Collections;
 import java.util.Iterator;
-import java.util.Set;
 
 /**
  * {@code TransientISFactory}...
@@ -110,12 +109,15 @@ public final class TransientISFactory ex
     }
 
     @Override
-    public Iterator<PropertyId> getNodeReferences(NodeState nodeState, Name propertyName, boolean weak) {
+    public Iterator<PropertyId> getNodeReferences(NodeState nodeState, Name propertyName, boolean weak)
+            throws RepositoryException {
+        
         if (nodeState.getStatus() == Status.NEW) {
-            Set<PropertyId> t = Collections.emptySet();
-            return t.iterator();
+            return Iterators.empty();
+        }
+        else {
+            return workspaceStateFactory.getNodeReferences(nodeState, propertyName, weak);
         }
-        return workspaceStateFactory.getNodeReferences(nodeState, propertyName, weak);
     }
 
     //------------------------------------------< ItemStateCreationListener >---

Modified: jackrabbit/sandbox/jackrabbit-mk/jackrabbit-jcr2spi/src/main/java/org/apache/jackrabbit/jcr2spi/state/WorkspaceItemStateFactory.java
URL: http://svn.apache.org/viewvc/jackrabbit/sandbox/jackrabbit-mk/jackrabbit-jcr2spi/src/main/java/org/apache/jackrabbit/jcr2spi/state/WorkspaceItemStateFactory.java?rev=1183276&r1=1183275&r2=1183276&view=diff
==============================================================================
--- jackrabbit/sandbox/jackrabbit-mk/jackrabbit-jcr2spi/src/main/java/org/apache/jackrabbit/jcr2spi/state/WorkspaceItemStateFactory.java (original)
+++ jackrabbit/sandbox/jackrabbit-mk/jackrabbit-jcr2spi/src/main/java/org/apache/jackrabbit/jcr2spi/state/WorkspaceItemStateFactory.java Fri Oct 14 10:21:29 2011
@@ -34,6 +34,7 @@ import org.apache.jackrabbit.spi.Propert
 import org.apache.jackrabbit.spi.RepositoryService;
 import org.apache.jackrabbit.spi.SessionInfo;
 import org.apache.jackrabbit.spi.commons.name.NameConstants;
+import org.apache.jackrabbit.spi.commons.util.Iterators;
 import org.apache.jackrabbit.spi.commons.util.Unchecked;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
@@ -42,10 +43,8 @@ import javax.jcr.ItemNotFoundException;
 import javax.jcr.PathNotFoundException;
 import javax.jcr.RepositoryException;
 import java.util.ArrayList;
-import java.util.Collections;
 import java.util.Iterator;
 import java.util.List;
-import java.util.Set;
 
 /**
  * {@code WorkspaceItemStateFactory}...
@@ -162,24 +161,19 @@ public class WorkspaceItemStateFactory e
     }
 
     @Override
-    public Iterator<PropertyId> getNodeReferences(NodeState nodeState, Name propertyName, boolean weak) {
+    public Iterator<PropertyId> getNodeReferences(NodeState nodeState, Name propertyName, boolean weak)
+            throws RepositoryException {
+        
         NodeEntry entry = nodeState.getHierarchyEntry();
 
         // Shortcut
         if (entry.getUniqueID() == null || !entry.hasPropertyEntry(NameConstants.JCR_UUID)) {
             // for sure not referenceable
-            Set<PropertyId> t = Collections.emptySet();
-            return t.iterator();
+            return Iterators.empty();
         }
 
         // Has a unique ID and is potentially mix:referenceable. Try to retrieve references
-        try {
-            return service.getReferences(sessionInfo, entry.getWorkspaceId(), propertyName, weak);
-        } catch (RepositoryException e) {
-            log.debug("Unable to determine references to {}", nodeState);
-            Set<PropertyId> t = Collections.emptySet();
-            return t.iterator();
-        }
+        return service.getReferences(sessionInfo, entry.getWorkspaceId(), propertyName, weak);
     }
 
     //------------------------------------------------------------< private >---