[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