[exo-jcr-commits] exo-jcr SVN: r491 - in jcr/branches/1.12.0-JBC/component/core/src/main/java/org/exoplatform/services/jcr/impl: storage/jbosscache and 1 other directory.
do-not-reply at jboss.org
do-not-reply at jboss.org
Fri Nov 6 11:14:01 EST 2009
Author: tolusha
Date: 2009-11-06 11:14:01 -0500 (Fri, 06 Nov 2009)
New Revision: 491
Modified:
jcr/branches/1.12.0-JBC/component/core/src/main/java/org/exoplatform/services/jcr/impl/core/lock/LockManagerImpl.java
jcr/branches/1.12.0-JBC/component/core/src/main/java/org/exoplatform/services/jcr/impl/storage/jbosscache/LockCacheLoader.java
Log:
EXOJCR-205: first implementation LockCacheLoader
Modified: jcr/branches/1.12.0-JBC/component/core/src/main/java/org/exoplatform/services/jcr/impl/core/lock/LockManagerImpl.java
===================================================================
--- jcr/branches/1.12.0-JBC/component/core/src/main/java/org/exoplatform/services/jcr/impl/core/lock/LockManagerImpl.java 2009-11-06 16:02:42 UTC (rev 490)
+++ jcr/branches/1.12.0-JBC/component/core/src/main/java/org/exoplatform/services/jcr/impl/core/lock/LockManagerImpl.java 2009-11-06 16:14:01 UTC (rev 491)
@@ -375,6 +375,7 @@
* @seeorg.exoplatform.services.jcr.dataflow.persistent.ItemsPersistenceListener#onSaveItems(org.
* exoplatform.services.jcr.dataflow.ItemStateChangesLog)
*/
+ @Deprecated
public void onSaveItems(ItemStateChangesLog changesLog)
{
List<PlainChangesLog> chengesLogList = new ArrayList<PlainChangesLog>();
@@ -680,8 +681,10 @@
*
* @param nodeIdentifier
* @throws LockException
+ *
+ * TODO: Changed from private to public. Need for LockCacheLoader.
*/
- private synchronized void internalLock(String nodeIdentifier) throws LockException
+ public synchronized void internalLock(String nodeIdentifier) throws LockException
{
LockData ldata = pendingLocks.get(nodeIdentifier);
if (ldata != null)
@@ -741,8 +744,10 @@
* @param owner
* String
* @return LockData
+ *
+ * TODO: Changed from private to public. Need for LockCacheLoader.
*/
- private synchronized LockData createRemoteLock(String sessionId, String nodeIdentifier, String lockToken,
+ public synchronized LockData createRemoteLock(String sessionId, String nodeIdentifier, String lockToken,
boolean isDeep, boolean sessionScoped, String owner)
{
LockData lData = new LockData(nodeIdentifier, lockToken, isDeep, sessionScoped, owner, lockTimeOut);
@@ -799,4 +804,12 @@
{
removeExpired();
}
+
+ /**
+ * TODO: Added. Need for LockCacheLoader..
+ */
+ public boolean hasPendingLocks(String nodeIdentifier)
+ {
+ return pendingLocks.containsKey(nodeIdentifier);
+ }
}
Modified: jcr/branches/1.12.0-JBC/component/core/src/main/java/org/exoplatform/services/jcr/impl/storage/jbosscache/LockCacheLoader.java
===================================================================
--- jcr/branches/1.12.0-JBC/component/core/src/main/java/org/exoplatform/services/jcr/impl/storage/jbosscache/LockCacheLoader.java 2009-11-06 16:02:42 UTC (rev 490)
+++ jcr/branches/1.12.0-JBC/component/core/src/main/java/org/exoplatform/services/jcr/impl/storage/jbosscache/LockCacheLoader.java 2009-11-06 16:14:01 UTC (rev 491)
@@ -16,9 +16,15 @@
*/
package org.exoplatform.services.jcr.impl.storage.jbosscache;
+import org.exoplatform.services.jcr.datamodel.InternalQName;
+import org.exoplatform.services.jcr.datamodel.PropertyData;
+import org.exoplatform.services.jcr.impl.Constants;
+import org.exoplatform.services.jcr.impl.core.lock.LockManager;
+import org.exoplatform.services.jcr.impl.core.lock.LockManagerImpl;
import org.jboss.cache.CacheException;
import org.jboss.cache.Modification;
+import java.util.ArrayList;
import java.util.List;
/**
@@ -32,43 +38,78 @@
public class LockCacheLoader extends AbstractWriteOnlyCacheLoader
{
+ private LockManagerImpl lockManager;
+
/**
* {@inheritDoc}
*/
@Override
public void put(List<Modification> modifications) throws Exception
{
+ LockChanges lockChanges = new LockChanges();
+
for (Modification m : modifications)
{
- switch (m.getType())
+ // TODO $properties
+ if (m.getFqn().hasElement(JBossCacheStorage.PROPS))
{
- case PUT_DATA :
- // put(m.getFqn(), m.getData());
- break;
- case PUT_DATA_ERASE :
- // removeData(m.getFqn());
- // put(m.getFqn(), m.getData());
- break;
- case PUT_KEY_VALUE :
- // put(m.getFqn(), m.getKey(), m.getValue());
- break;
- case REMOVE_DATA :
- // removeData(m.getFqn());
- break;
- case REMOVE_KEY_VALUE :
- // remove(m.getFqn(), m.getKey());
- break;
- case REMOVE_NODE :
- // remove(m.getFqn());
- break;
- case MOVE :
- // involve moving all children too
- // move(m.getFqn(), m.getFqn2());
- break;
- default :
- throw new CacheException("Unknown modification " + m.getType());
+ switch (m.getType())
+ {
+ case PUT_DATA :
+ break;
+ case PUT_KEY_VALUE :
+ if (m.getKey().equals(JBossCacheStorage.ITEM_DATA))
+ {
+ PropertyData propertyData = (PropertyData)m.getValue();
+ InternalQName propertyName = propertyData.getQPath().getName();
+
+ if (propertyName.equals(Constants.JCR_LOCKISDEEP) || propertyName.equals(Constants.JCR_LOCKOWNER))
+ {
+ }
+ }
+ break;
+ case REMOVE_DATA :
+ break;
+ case REMOVE_KEY_VALUE :
+ break;
+ case REMOVE_NODE :
+ break;
+ case MOVE :
+ break;
+ default :
+ throw new CacheException("Unknown modification " + m.getType());
+ }
}
}
}
+ private void processLock()
+ {
+ // String nodeIdentifier = data.getParentIdentifier();
+ // if (lockManager.hasPendingLocks(nodeIdentifier))
+ // {
+ // lockManager.internalLock(nodeIdentifier);
+ // }
+ // else
+ // {
+ //
+ // }
+ }
+
+ private void processUnLock()
+ {
+
+ }
+
+ /**
+ *
+ */
+ private class LockChanges
+ {
+ PropertyData lockIsDeepData;
+
+ PropertyData lockOwnerData;
+
+ }
+
}
More information about the exo-jcr-commits
mailing list