[exo-jcr-commits] exo-jcr SVN: r985 - in jcr/branches/1.12.0-OPT/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl: dataflow/persistent and 1 other directory.

do-not-reply at jboss.org do-not-reply at jboss.org
Thu Dec 10 09:13:57 EST 2009


Author: tolusha
Date: 2009-12-10 09:13:56 -0500 (Thu, 10 Dec 2009)
New Revision: 985

Modified:
   jcr/branches/1.12.0-OPT/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/core/NodeImpl.java
   jcr/branches/1.12.0-OPT/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/core/PropertyImpl.java
   jcr/branches/1.12.0-OPT/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/core/SessionDataManager.java
   jcr/branches/1.12.0-OPT/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/dataflow/persistent/WorkspacePersistentDataManager.java
Log:
EXOJCR-300: adoption

Modified: jcr/branches/1.12.0-OPT/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/core/NodeImpl.java
===================================================================
--- jcr/branches/1.12.0-OPT/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/core/NodeImpl.java	2009-12-10 12:17:44 UTC (rev 984)
+++ jcr/branches/1.12.0-OPT/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/core/NodeImpl.java	2009-12-10 14:13:56 UTC (rev 985)
@@ -2421,14 +2421,23 @@
          // change same name index
          if (sdata.getQPath().getName().equals(srcPath.getName()) && sdata.getQPath().getIndex() != sameNameIndex)
          {
-            newData = ((TransientNodeData)sdata).cloneAsSibling(sameNameIndex);
+            // update with new index
+            QPath siblingPath =
+               QPath.makeChildPath(newData.getQPath().makeParentPath(), newData.getQPath().getName(), sameNameIndex);
+
+            newData =
+               new TransientNodeData(siblingPath, newData.getIdentifier(), newData.getPersistedVersion(), newData
+                  .getPrimaryTypeName(), newData.getMixinTypeNames(), j, newData.getParentIdentifier(), newData
+                  .getACL());
          }
+         else
+         {
+            newData =
+               new TransientNodeData(newData.getQPath(), newData.getIdentifier(), newData.getPersistedVersion(),
+                  newData.getPrimaryTypeName(), newData.getMixinTypeNames(), j, newData.getParentIdentifier(), newData
+                     .getACL());
+         }
 
-         // create update
-         newData =
-            new TransientNodeData(newData.getQPath(), newData.getIdentifier(), newData.getPersistedVersion(), newData
-               .getPrimaryTypeName(), newData.getMixinTypeNames(), j, newData.getParentIdentifier(), newData.getACL());
-
          /*
           * 8.3.7.8 Re-ordering a set of Child Nodes. When an orderBefore(A, B) is
           * performed, an implementation must generate a NODE_REMOVED for node A

Modified: jcr/branches/1.12.0-OPT/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/core/PropertyImpl.java
===================================================================
--- jcr/branches/1.12.0-OPT/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/core/PropertyImpl.java	2009-12-10 12:17:44 UTC (rev 984)
+++ jcr/branches/1.12.0-OPT/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/core/PropertyImpl.java	2009-12-10 14:13:56 UTC (rev 985)
@@ -26,6 +26,7 @@
 import org.exoplatform.services.jcr.datamodel.ItemData;
 import org.exoplatform.services.jcr.datamodel.NodeData;
 import org.exoplatform.services.jcr.datamodel.PropertyData;
+import org.exoplatform.services.jcr.datamodel.ValueData;
 import org.exoplatform.services.jcr.impl.Constants;
 import org.exoplatform.services.jcr.impl.core.nodetype.PropertyDefinitionImpl;
 import org.exoplatform.services.jcr.impl.core.value.BaseValue;
@@ -357,7 +358,7 @@
       {
          throw new ConstraintViolationException("Definition for property " + getPath() + " not found.");
       }
-      
+
       propertyDef = definitions.getDefinition(multiple);
    }
 
@@ -549,8 +550,7 @@
       Value[] values = new Value[propertyData.getValues().size()];
       for (int i = 0; i < values.length; i++)
       {
-         values[i] =
-            valueFactory.loadValue((TransientValueData)propertyData.getValues().get(i), propertyData.getType());
+         values[i] = valueFactory.loadValue((ValueData)propertyData.getValues().get(i), propertyData.getType());
       }
       return values;
    }

Modified: jcr/branches/1.12.0-OPT/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/core/SessionDataManager.java
===================================================================
--- jcr/branches/1.12.0-OPT/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/core/SessionDataManager.java	2009-12-10 12:17:44 UTC (rev 984)
+++ jcr/branches/1.12.0-OPT/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/core/SessionDataManager.java	2009-12-10 14:13:56 UTC (rev 985)
@@ -1038,9 +1038,9 @@
 
       NodeData parentNodeData = (NodeData)dataManager.getItemData(cause.getParentIdentifier());
 
-      TransientNodeData nextSibling =
-         (TransientNodeData)dataManager.getItemData(parentNodeData, new QPathEntry(cause.getQPath().getName(), cause
-            .getQPath().getIndex() + 1));
+      NodeData nextSibling =
+         (NodeData)dataManager.getItemData(parentNodeData, new QPathEntry(cause.getQPath().getName(), cause.getQPath()
+            .getIndex() + 1));
       String reindexedId = null;
       // repeat till next sibling exists and it's not a caused Node (deleted or moved to) or just
       // reindexed
@@ -1048,7 +1048,15 @@
          && !nextSibling.getIdentifier().equals(reindexedId))
       {
          // update with new index
-         NodeData reindexed = nextSibling.cloneAsSibling(nextSibling.getQPath().getIndex() - 1);
+         QPath siblingPath =
+            QPath.makeChildPath(nextSibling.getQPath().makeParentPath(), nextSibling.getQPath().getName(), nextSibling
+               .getQPath().getIndex() - 1);
+
+         NodeData reindexed =
+            new TransientNodeData(siblingPath, nextSibling.getIdentifier(), nextSibling.getPersistedVersion(),
+               nextSibling.getPrimaryTypeName(), nextSibling.getMixinTypeNames(), nextSibling.getOrderNumber(),
+               nextSibling.getParentIdentifier(), nextSibling.getACL());
+
          reindexedId = reindexed.getIdentifier();
 
          ItemState reindexedState = ItemState.createUpdatedState(reindexed);
@@ -1062,7 +1070,7 @@
 
          // next...
          nextSibling =
-            (TransientNodeData)dataManager.getItemData(parentNodeData, new QPathEntry(nextSibling.getQPath().getName(),
+            (NodeData)dataManager.getItemData(parentNodeData, new QPathEntry(nextSibling.getQPath().getName(),
                nextSibling.getQPath().getIndex() + 1));
       }
 

Modified: jcr/branches/1.12.0-OPT/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/dataflow/persistent/WorkspacePersistentDataManager.java
===================================================================
--- jcr/branches/1.12.0-OPT/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/dataflow/persistent/WorkspacePersistentDataManager.java	2009-12-10 12:17:44 UTC (rev 984)
+++ jcr/branches/1.12.0-OPT/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/dataflow/persistent/WorkspacePersistentDataManager.java	2009-12-10 14:13:56 UTC (rev 985)
@@ -416,44 +416,59 @@
             {
                PropertyData prevData = (PropertyData)prevState.getData();
 
-               List<ValueData> values = new ArrayList<ValueData>();
-               for (ValueData vd : prevData.getValues())
-               {
-                  if (vd.isByteArray())
-                  {
-                     values.add(new ByteArrayPersistedValueData(vd.getAsByteArray(), vd.getOrderNumber()));
-                  }
-                  else
-                  {
-                     // TODO ask dest file from VS provider, can be null after
-                     // TODO what if JDBC spool used, i.e. without VS = storage will setPersistedFile()
-                     // TODO for JBC case, the storage connection will evict the replicated Value to read it from the DB
-                     File destFile = null;
-
-                     if (vd instanceof TransientValueData)
-                     {
-                        TransientValueData tvd = (TransientValueData)vd;
-                        // TODO review TransientValueData logic about spool file and stream
-                        values.add(new StreamPersistedValueData(destFile, tvd.getSpoolFile(),
-                           tvd.getSpoolFile() == null ? tvd.getAsStream(false) : null, vd.getOrderNumber()));
-                     }
-                     else if (vd instanceof PersistedValueData)
-                     {
-                        values.add(((PersistedValueData)vd).createTransientCopy());
-                     }
-                     else
-                     {
-                        throw new RepositoryException(
-                           "Unexpected ValueData implementaion on persistent level, only TransientValueData or PersistedValueData allowed. "
-                              + vd.getClass());
-                     }
-                  }
-               }
-
                newData =
                   new PersistedPropertyData(prevData.getIdentifier(), prevData.getQPath(), prevData
                      .getParentIdentifier(), prevData.getPersistedVersion() + 1, prevData.getType(), prevData
-                     .isMultiValued(), values);
+                     .isMultiValued(), prevData.getValues());
+
+               //               if (prevData.getValues() != null)
+               //               {
+               //                  List<ValueData> values = new ArrayList<ValueData>();
+               //                  for (ValueData vd : prevData.getValues())
+               //                  {
+               //                     if (vd.isByteArray())
+               //                     {
+               //                        values.add(new ByteArrayPersistedValueData(vd.getAsByteArray(), vd.getOrderNumber()));
+               //                     }
+               //                     else
+               //                     {
+               //                        // TODO ask dest file from VS provider, can be null after
+               //                        // TODO what if JDBC spool used, i.e. without VS = storage will setPersistedFile()
+               //                        // TODO for JBC case, the storage connection will evict the replicated Value to read it from the DB
+               //                        File destFile = null;
+               //
+               //                        if (vd instanceof TransientValueData)
+               //                        {
+               //                           TransientValueData tvd = (TransientValueData)vd;
+               //                           // TODO review TransientValueData logic about spool file and stream
+               //                           values.add(new StreamPersistedValueData(destFile, tvd.getSpoolFile(),
+               //                              tvd.getSpoolFile() == null ? tvd.getAsStream(false) : null, vd.getOrderNumber()));
+               //                        }
+               //                        else if (vd instanceof PersistedValueData)
+               //                        {
+               //                           values.add(((PersistedValueData)vd).createTransientCopy());
+               //                        }
+               //                        else
+               //                        {
+               //                           throw new RepositoryException(
+               //                              "Unexpected ValueData implementaion on persistent level, only TransientValueData or PersistedValueData allowed. "
+               //                                 + vd.getClass());
+               //                        }
+               //                     }
+               //                  }
+               //
+               //                  newData =
+               //                     new PersistedPropertyData(prevData.getIdentifier(), prevData.getQPath(), prevData
+               //                        .getParentIdentifier(), prevData.getPersistedVersion() + 1, prevData.getType(), prevData
+               //                        .isMultiValued(), values);
+               //               }
+               //               else
+               //               {
+               //                  newData =
+               //                     new PersistedPropertyData(prevData.getIdentifier(), prevData.getQPath(), prevData
+               //                        .getParentIdentifier(), prevData.getPersistedVersion() + 1, prevData.getType(), prevData
+               //                        .isMultiValued(), null);
+               //               }
             }
 
             ItemState itemState =



More information about the exo-jcr-commits mailing list