[exo-jcr-commits] exo-jcr SVN: r579 - jcr/branches/1.12.0-JBC/component/core/src/main/java/org/exoplatform/services/jcr/impl/storage/jbosscache.

do-not-reply at jboss.org do-not-reply at jboss.org
Thu Nov 12 03:30:41 EST 2009


Author: areshetnyak
Date: 2009-11-12 03:30:40 -0500 (Thu, 12 Nov 2009)
New Revision: 579

Modified:
   jcr/branches/1.12.0-JBC/component/core/src/main/java/org/exoplatform/services/jcr/impl/storage/jbosscache/JDBCCacheLoader.java
Log:
EXOJCR-201 : The JDBCCacheLoader was changed.

Modified: jcr/branches/1.12.0-JBC/component/core/src/main/java/org/exoplatform/services/jcr/impl/storage/jbosscache/JDBCCacheLoader.java
===================================================================
--- jcr/branches/1.12.0-JBC/component/core/src/main/java/org/exoplatform/services/jcr/impl/storage/jbosscache/JDBCCacheLoader.java	2009-11-12 08:20:53 UTC (rev 578)
+++ jcr/branches/1.12.0-JBC/component/core/src/main/java/org/exoplatform/services/jcr/impl/storage/jbosscache/JDBCCacheLoader.java	2009-11-12 08:30:40 UTC (rev 579)
@@ -88,7 +88,7 @@
     */
    public void put(List<Modification> modifications) throws Exception
    {
-     System.out.println(modifications);
+     LOG.info(modifications);
      
      // Prepare modifications list.
      // Will be changed Modification to ModificationEx and set operation type (ADD or UPDATE). 
@@ -98,38 +98,37 @@
      
      try
      {
-        for (int i=0; i<modifications.size(); i++)
+        for (Modification m : modifications)
         {
-           ModificationEx m = (ModificationEx) modifications.get(i);  
            switch (m.getType())
            {
               case PUT_DATA:
-                 System.out.println(m);
+                 LOG.info(m);
                  break;
               case PUT_DATA_ERASE:
-                 System.out.println(m);
+                 LOG.info(m);
                  break;
               case PUT_KEY_VALUE:
-                 System.out.println(m);
+                 LOG.info(m);
                  
-                 if (m.getOperaionType() == JCROperaionType.ADD)
+                 if (m.getOldValue() != null)
+                    doUpdate(m, jdbcConnection);
+                 else 
                     doAdd(m, jdbcConnection);
-                 else if (m.getOperaionType() == JCROperaionType.UPDATE)
-                    doUpdate(m, jdbcConnection);
                  
                  break;
               case REMOVE_DATA:
-                 System.out.println(m);
+                 LOG.info(m);
                  break;
               case REMOVE_KEY_VALUE:
-                 System.out.println(m);
+                 LOG.info(m);
                  break;
               case REMOVE_NODE:
-                 System.out.println(m);
+                 LOG.info(m);
                  doRemove(m, jdbcConnection);
                  break;
               case MOVE:
-                 System.out.println(m);
+                 LOG.info(m);
                  break;
               default:
                  throw new CacheException("Unknown modification " + m.getType());
@@ -206,7 +205,7 @@
     * @throws IllegalStateException
     * @throws RepositoryException
     */
-   private void doAdd(ModificationEx modification, JDBCStorageConnection jdbcConnection)
+   private void doAdd(Modification modification, JDBCStorageConnection jdbcConnection)
       throws IllegalStateException, RepositoryException
    {
       if (modification.getValue() instanceof NodeData)
@@ -232,7 +231,7 @@
     * @throws IllegalStateException
     * @throws RepositoryException
     */
-   private void doUpdate(ModificationEx modification, JDBCStorageConnection jdbcConnection)
+   private void doUpdate(Modification modification, JDBCStorageConnection jdbcConnection)
       throws IllegalStateException, RepositoryException
    {
       if (modification.getValue() instanceof NodeData)
@@ -270,13 +269,13 @@
          {
             ItemData itemData = null;
 
-            //Check add or update node data
+            //Check add or update node data.
             if (modifications.get(i).getValue() instanceof NodeData)
             {
                NodeData nodeData = (NodeData) modifications.get(i).getValue();
                itemData = jdbcConnection.getItemData(nodeData.getIdentifier());
                
-               // Set oldValueData for update node
+               // Set oldValueData for update node.
                if (itemData != null) 
                   modifications.get(i).setOldValue(itemData);
             }
@@ -285,18 +284,21 @@
                PropertyData propertyData = (PropertyData) modifications.get(i).getValue();
                itemData = jdbcConnection.getItemData(propertyData.getIdentifier());
                
-               // Set oldValueData for update property
+               // Set oldValueData for update property.
                if (itemData != null) 
                   modifications.get(i).setOldValue(itemData);
-            } else {
-               modifications.set(i, new ModificationEx(modifications.get(i)));
-               continue;
-            }
+            } 
          }
-         else if (modifications.get(i).getType() == ModificationType.REMOVE_KEY_VALUE)
+         else if (modifications.get(i).getType() == ModificationType.REMOVE_NODE)
          {
-            (ItemData)(modifications.get(i).getValue());
-            ItemData removedItemData = jdbcConnection.getItemData(.getIdentifier()));
+            if (modifications.get(i).getValue() instanceof ItemData) {
+               String id = ((ItemData) (modifications.get(i).getValue())).getIdentifier();
+               ItemData removedItemData = jdbcConnection.getItemData(id);
+               
+               // Set valueData for update property or node.
+               if (removedItemData != null) 
+                  modifications.get(i).setValue(removedItemData);
+            }
          }
       }
    }



More information about the exo-jcr-commits mailing list