[exo-jcr-commits] exo-jcr SVN: r2462 - in jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr: impl/core and 1 other directories.

do-not-reply at jboss.org do-not-reply at jboss.org
Thu Jun 3 11:50:49 EDT 2010


Author: sergiykarpenko
Date: 2010-06-03 11:50:48 -0400 (Thu, 03 Jun 2010)
New Revision: 2462

Modified:
   jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/datamodel/QPath.java
   jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/datamodel/QPathEntry.java
   jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/core/NodeImpl.java
   jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/dataflow/persistent/jbosscache/JBossCacheWorkspaceStorageCache.java
Log:
EXOJCR-392: EXOJCR-392 and EXOJCR-766 changes reverted

Modified: jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/datamodel/QPath.java
===================================================================
--- jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/datamodel/QPath.java	2010-06-03 15:06:43 UTC (rev 2461)
+++ jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/datamodel/QPath.java	2010-06-03 15:50:48 UTC (rev 2462)
@@ -176,7 +176,7 @@
 
       for (int i = 0; i < ancestorNames.length; i++)
       {
-         if (!names[i].equals(ancestorNames[i]))
+         if (!ancestorNames[i].equals(names[i]))
             return false;
       }
       return true;
@@ -239,7 +239,7 @@
    }
 
    /**
-    * @return last QPathEntry of this path
+    * @return last name of this path
     */
    public InternalQName getName()
    {
@@ -247,7 +247,7 @@
    }
 
    /**
-    * @return index of last QPathEntry of this paths
+    * @return index
     */
    public int getIndex()
    {

Modified: jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/datamodel/QPathEntry.java
===================================================================
--- jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/datamodel/QPathEntry.java	2010-06-03 15:06:43 UTC (rev 2461)
+++ jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/datamodel/QPathEntry.java	2010-06-03 15:50:48 UTC (rev 2462)
@@ -158,18 +158,4 @@
       return getAsString(true);
    }
 
-   @Override
-   public boolean equals(Object o)
-   {
-      boolean result = super.equals(o);
-
-      if (result == true && (o instanceof QPathEntry))
-      {
-         return result && (index == ((QPathEntry)o).getIndex());
-      }
-      else
-      {
-         return result;
-      }
-   }
 }

Modified: jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/core/NodeImpl.java
===================================================================
--- jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/core/NodeImpl.java	2010-06-03 15:06:43 UTC (rev 2461)
+++ jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/core/NodeImpl.java	2010-06-03 15:50:48 UTC (rev 2462)
@@ -2393,14 +2393,18 @@
          NodeData nodeData = siblings.get(i);
          if (srcInd == -1)
          {
-            if (nodeData.getQPath().getName().equals(srcPath.getName()))
+            if (nodeData.getQPath().getName().equals(srcPath.getName())
+               && (nodeData.getQPath().getIndex() == srcPath.getIndex() || srcPath.getIndex() == 0
+                  && nodeData.getQPath().getIndex() == 1))
             {
                srcInd = i;
             }
          }
          if (destPath != null && destInd == -1)
          {
-            if (nodeData.getQPath().getName().equals(destPath.getName()))
+            if (nodeData.getQPath().getName().equals(destPath.getName())
+               && (nodeData.getQPath().getIndex() == destPath.getIndex() || destPath.getIndex() == 0
+                  && nodeData.getQPath().getIndex() == 1))
             {
                destInd = i;
                if (srcInd != -1)
@@ -2462,7 +2466,7 @@
          NodeData sdata = siblings.get(j);
 
          // calculating same name index
-         if (sdata.getQPath().getName().getAsString().equals(srcPath.getName().getAsString()))
+         if (sdata.getQPath().getName().equals(srcPath.getName()))
             ++sameNameIndex;
 
          // skeep unchanged
@@ -2471,8 +2475,7 @@
 
          NodeData newData = sdata;
          // change same name index
-         if (sdata.getQPath().getName().getAsString().equals(srcPath.getName().getAsString())
-            && sdata.getQPath().getIndex() != sameNameIndex)
+         if (sdata.getQPath().getName().equals(srcPath.getName()) && sdata.getQPath().getIndex() != sameNameIndex)
          {
             // update with new index
             QPath siblingPath =

Modified: jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/dataflow/persistent/jbosscache/JBossCacheWorkspaceStorageCache.java
===================================================================
--- jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/dataflow/persistent/jbosscache/JBossCacheWorkspaceStorageCache.java	2010-06-03 15:06:43 UTC (rev 2461)
+++ jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/dataflow/persistent/jbosscache/JBossCacheWorkspaceStorageCache.java	2010-06-03 15:50:48 UTC (rev 2462)
@@ -25,7 +25,6 @@
 import org.exoplatform.services.jcr.dataflow.ItemState;
 import org.exoplatform.services.jcr.dataflow.ItemStateChangesLog;
 import org.exoplatform.services.jcr.dataflow.persistent.WorkspaceStorageCache;
-import org.exoplatform.services.jcr.datamodel.IllegalPathException;
 import org.exoplatform.services.jcr.datamodel.InternalQName;
 import org.exoplatform.services.jcr.datamodel.ItemData;
 import org.exoplatform.services.jcr.datamodel.NodeData;
@@ -903,9 +902,15 @@
                .getIdentifier());
 
             // remove from CHILD_NODES as parent
-            cache.removeNode(makeChildListFqn(childNodes, item.getIdentifier()));
+            Fqn<String> parentFqn = makeChildListFqn(childNodes, item.getIdentifier());
+            Node<Serializable, Object> parent = cache.getNode(parentFqn);
+            if (parent != null && parent.isLeaf())
+            {
+               cache.removeNode(parentFqn);
+            }
 
             // remove from CHILD_NODES_LIST as parent
+
             cache.removeNode(makeChildListFqn(childNodesList, item.getIdentifier()));
 
             // remove from CHILD_PROPS as parent
@@ -1009,87 +1014,11 @@
       int prevNodeIndex = prevNode.getQPath().getEntries()[prevNode.getQPath().getEntries().length - 1].getIndex();
       if (nodeIndex != prevNodeIndex)
       {
-         // its a samename reordering
-         updateTreePath(prevNode.getQPath(), node.getQPath(), null); // don't change ACL, it's same parent
+         updateTreePath(node.getIdentifier(), node.getQPath(), null); // don't change ACL, it's same parent
       }
    }
 
    /**
-    * Check all items in cache - is it descendant of prevRootPath, and update path according newRootPath.
-    * 
-    * @param prevRootPath
-    * @param newRootPath
-    * @param acl
-    */
-   protected void updateTreePath(final QPath prevRootPath, final QPath newRootPath, final AccessControlList acl)
-   {
-      boolean inheritACL = acl != null;
-
-      // check all ITEMS in cache 
-      Node<Serializable, Object> items = cache.getNode(itemsRoot);
-      Set<Object> childrenNames = items.getChildrenNames();
-      Iterator<Object> namesIt = childrenNames.iterator();
-
-      while (namesIt.hasNext())
-      {
-         String id = (String)namesIt.next();
-         ItemData data = (ItemData)cache.get(makeItemFqn(id), ITEM_DATA);
-
-         // check is this descendant of prevRootPath
-         QPath nodeQPath = data.getQPath();
-         if (nodeQPath.isDescendantOf(prevRootPath))
-         {
-
-            //make relative path
-            QPathEntry[] relativePath = null;
-            try
-            {
-               relativePath = nodeQPath.getRelPath(nodeQPath.getDepth() - prevRootPath.getDepth());
-            }
-            catch (IllegalPathException e)
-            {
-               // Do nothing. Never happens.
-            }
-
-            // make new path - no matter  node or property
-            QPath newPath = QPath.makeChildPath(newRootPath, relativePath);
-
-            if (data.isNode())
-            {
-               // update node
-
-               NodeData prevNode = (NodeData)data;
-
-               TransientNodeData newNode =
-                  new TransientNodeData(newPath, prevNode.getIdentifier(), prevNode.getPersistedVersion(), prevNode
-                     .getPrimaryTypeName(), prevNode.getMixinTypeNames(), prevNode.getOrderNumber(), prevNode
-                     .getParentIdentifier(), inheritACL ? acl : prevNode.getACL()); // TODO check ACL
-               // update this node
-               cache.put(makeItemFqn(newNode.getIdentifier()), ITEM_DATA, newNode);
-            }
-            else
-            {
-               //update property
-
-               PropertyData prevProp = (PropertyData)data;
-
-               if (inheritACL
-                  && (prevProp.getQPath().getName().equals(Constants.EXO_PERMISSIONS) || prevProp.getQPath().getName()
-                     .equals(Constants.EXO_OWNER)))
-               {
-                  inheritACL = false;
-               }
-
-               TransientPropertyData newProp =
-                  new TransientPropertyData(newPath, prevProp.getIdentifier(), prevProp.getPersistedVersion(), prevProp
-                     .getType(), prevProp.getParentIdentifier(), prevProp.isMultiValued(), prevProp.getValues());
-               cache.put(makeItemFqn(newProp.getIdentifier()), ITEM_DATA, newProp);
-            }
-         }
-      }
-   }
-
-   /**
     * Update Nodes tree with new path.
     *
     * @param parentId String - root node id of JCR subtree.



More information about the exo-jcr-commits mailing list