Author: areshetnyak
Date: 2009-12-09 06:30:10 -0500 (Wed, 09 Dec 2009)
New Revision: 964
Modified:
jcr/branches/1.12.0-JBC/component/core/src/main/java/org/exoplatform/services/jcr/impl/storage/jbosscache/JBossCacheStorageConnection.java
jcr/branches/1.12.0-JBC/component/core/src/main/java/org/exoplatform/services/jcr/impl/storage/jbosscache/JDBCCacheLoader.java
Log:
EXOJCR-293 : The implementation locks without tree.
Modified:
jcr/branches/1.12.0-JBC/component/core/src/main/java/org/exoplatform/services/jcr/impl/storage/jbosscache/JBossCacheStorageConnection.java
===================================================================
---
jcr/branches/1.12.0-JBC/component/core/src/main/java/org/exoplatform/services/jcr/impl/storage/jbosscache/JBossCacheStorageConnection.java 2009-12-09
11:26:18 UTC (rev 963)
+++
jcr/branches/1.12.0-JBC/component/core/src/main/java/org/exoplatform/services/jcr/impl/storage/jbosscache/JBossCacheStorageConnection.java 2009-12-09
11:30:10 UTC (rev 964)
@@ -1299,7 +1299,7 @@
public LockData getLockData(String identifier) throws RepositoryException
{
LockData lockData = null;
- Node<Serializable, Object> node =
locksRoot.getChild(makeNodeFqn(identifier));
+ Node<Serializable, Object> node =
locksRoot.getChild(Fqn.fromString(identifier));
if (node != null)
{
lockData = (LockData)node.get(JBossCacheStorage.LOCK_DATA);
@@ -1312,21 +1312,8 @@
*/
public List<LockData> getLocksData() throws RepositoryException
{
-// Set<Node<Serializable, Object>> lockSet = getNodes(locksRoot);
+ Set<Node<Serializable, Object>> lockSet = locksRoot.getChildren();
- // TODO Store the id of nodes in attributes of node $Locks. EXOJCR-293
- Set<Node<Serializable, Object>> lockSet = new
HashSet<Node<Serializable,Object>>();
-
- for (Serializable nodeId : locksRoot.getKeys())
- {
- Node<Serializable, Object> node = locksRoot.getChild(makeNodeFqn((String)
nodeId));
-
- if (node != null)
- {
- lockSet.add(node);
- }
- }
-
List<LockData> locksData = new ArrayList<LockData>();
for (Node<Serializable, Object> node : lockSet)
{
@@ -1384,11 +1371,8 @@
throw new RepositoryException("Lock data to write can't be
null!");
}
// addChild will add if absent or return old if present
- Node<Serializable, Object> node =
locksRoot.addChild(makeNodeFqn(lockData.getNodeIdentifier()));
+ Node<Serializable, Object> node =
locksRoot.addChild(Fqn.fromString(lockData.getNodeIdentifier()));
- //TODO Need for optimization getLocksData. EXOJCR-293
- locksRoot.put(lockData.getNodeIdentifier(), JBossCacheStorage.LOCK_NODE_ID);
-
// this will prevent from deleting by eviction.
node.setResident(true);
@@ -1428,10 +1412,7 @@
{
throw new RepositoryException("Item ID to clear lock can't be
null!");
}
- locksRoot.removeChild(makeNodeFqn(identifier));
-
- //TODO Need for optimization getLocksData. EXOJCR-293
- locksRoot.remove(identifier);
+ locksRoot.removeChild(Fqn.fromString(identifier));
}
/**
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-12-09
11:26:18 UTC (rev 963)
+++
jcr/branches/1.12.0-JBC/component/core/src/main/java/org/exoplatform/services/jcr/impl/storage/jbosscache/JDBCCacheLoader.java 2009-12-09
11:30:10 UTC (rev 964)
@@ -200,6 +200,9 @@
private void doRemove(Modification modification, JDBCStorageConnection conn) throws
IllegalStateException,
RepositoryException
{
+ if (modification.getFqn().get(0).equals(JBossCacheStorage.LOCKS))
+ return;
+
Fqn fqn = IdTreeHelper.buildFqn(modification.getFqn());
if (fqn.size() == 2)
@@ -254,8 +257,7 @@
*/
private void doUpdate(Modification m, JDBCStorageConnection conn) throws
IllegalStateException, RepositoryException
{
- // TODO We not persist locks. EXOJCR-293
- if (m.getFqn().get(0).equals(JBossCacheStorage.LOCKS))
+ if (m.getFqn().get(0).equals(JBossCacheStorage.LOCKS))
return;
Fqn fqn = IdTreeHelper.buildFqn(m.getFqn());
@@ -306,7 +308,8 @@
*/
public Map<Object, Object> get(Fqn fqn) throws Exception
{
- Fqn name = (fqn.size() > 1 ? IdTreeHelper.buildFqn(fqn) : fqn);
+ Fqn name = (fqn.size() > 1 ? (fqn.get(0).equals(JBossCacheStorage.LOCKS) ? fqn :
IdTreeHelper.buildFqn(fqn)) : fqn);
+
Map<Object, Object> attrs;
if (name.size() > 1)
Show replies by date