[exo-jcr-commits] exo-jcr SVN: r711 - in jcr/branches/1.12.0-JBC/component/core/src: main/java/org/exoplatform/services/jcr/impl/core and 7 other directories.

do-not-reply at jboss.org do-not-reply at jboss.org
Tue Nov 17 06:05:04 EST 2009


Author: nzamosenchuk
Date: 2009-11-17 06:05:04 -0500 (Tue, 17 Nov 2009)
New Revision: 711

Added:
   jcr/branches/1.12.0-JBC/component/core/src/main/java/org/exoplatform/services/jcr/dataflow/LockPlainChangesLogImpl.java
Modified:
   jcr/branches/1.12.0-JBC/component/core/src/main/java/org/exoplatform/services/jcr/dataflow/ItemDataConsumer.java
   jcr/branches/1.12.0-JBC/component/core/src/main/java/org/exoplatform/services/jcr/impl/core/SessionDataManager.java
   jcr/branches/1.12.0-JBC/component/core/src/main/java/org/exoplatform/services/jcr/impl/dataflow/persistent/ACLInheritanceSupportedWorkspaceDataManager.java
   jcr/branches/1.12.0-JBC/component/core/src/main/java/org/exoplatform/services/jcr/impl/dataflow/persistent/WorkspacePersistentDataManager.java
   jcr/branches/1.12.0-JBC/component/core/src/main/java/org/exoplatform/services/jcr/impl/dataflow/session/LocalWorkspaceStorageDataManagerProxy.java
   jcr/branches/1.12.0-JBC/component/core/src/main/java/org/exoplatform/services/jcr/impl/dataflow/session/TransactionableDataManager.java
   jcr/branches/1.12.0-JBC/component/core/src/main/java/org/exoplatform/services/jcr/impl/storage/inmemory/InmemoryStorageConnection.java
   jcr/branches/1.12.0-JBC/component/core/src/main/java/org/exoplatform/services/jcr/impl/storage/jbosscache/JBossCacheStorage.java
   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/JBossCacheTreeStorageConnection.java
   jcr/branches/1.12.0-JBC/component/core/src/main/java/org/exoplatform/services/jcr/impl/storage/jbosscache/JBossCacheWorkspaceDataContainer.java
   jcr/branches/1.12.0-JBC/component/core/src/main/java/org/exoplatform/services/jcr/impl/storage/jdbc/JDBCStorageConnection.java
   jcr/branches/1.12.0-JBC/component/core/src/main/java/org/exoplatform/services/jcr/storage/WorkspaceStorageConnection.java
   jcr/branches/1.12.0-JBC/component/core/src/test/java/org/exoplatform/services/jcr/impl/storage/jbosscache/JBossCacheStorageConnectionTest.java
   jcr/branches/1.12.0-JBC/component/core/src/test/java/org/exoplatform/services/jcr/impl/storage/jbosscache/ObservationCacheLoaderTest.java
Log:
EXOJCR-242: ItemDataConsumer and WorkspaceStorageConnection (and all their implementators) extended with getLockData() and getLocksData().

Modified: jcr/branches/1.12.0-JBC/component/core/src/main/java/org/exoplatform/services/jcr/dataflow/ItemDataConsumer.java
===================================================================
--- jcr/branches/1.12.0-JBC/component/core/src/main/java/org/exoplatform/services/jcr/dataflow/ItemDataConsumer.java	2009-11-17 09:58:24 UTC (rev 710)
+++ jcr/branches/1.12.0-JBC/component/core/src/main/java/org/exoplatform/services/jcr/dataflow/ItemDataConsumer.java	2009-11-17 11:05:04 UTC (rev 711)
@@ -22,6 +22,7 @@
 import org.exoplatform.services.jcr.datamodel.NodeData;
 import org.exoplatform.services.jcr.datamodel.PropertyData;
 import org.exoplatform.services.jcr.datamodel.QPathEntry;
+import org.exoplatform.services.jcr.impl.core.lock.LockData;
 
 import java.util.List;
 
@@ -56,6 +57,13 @@
    ItemData getItemData(String identifier) throws RepositoryException;
 
    /**
+    * @param identifier
+    * @return
+    *    LockData by given node uuid, or null if not present
+    */
+   LockData getLockData(String identifier) throws RepositoryException;
+
+   /**
     * @param parentIdentifier
     * @return children data
     */
@@ -79,4 +87,10 @@
     * @throws RepositoryException
     */
    List<PropertyData> getReferencesData(String identifier, boolean skipVersionStorage) throws RepositoryException;
+
+   /**
+    * @return
+    *    List of all locks.
+    */
+   List<LockData> getLocksData() throws RepositoryException;
 }

Added: jcr/branches/1.12.0-JBC/component/core/src/main/java/org/exoplatform/services/jcr/dataflow/LockPlainChangesLogImpl.java
===================================================================
--- jcr/branches/1.12.0-JBC/component/core/src/main/java/org/exoplatform/services/jcr/dataflow/LockPlainChangesLogImpl.java	                        (rev 0)
+++ jcr/branches/1.12.0-JBC/component/core/src/main/java/org/exoplatform/services/jcr/dataflow/LockPlainChangesLogImpl.java	2009-11-17 11:05:04 UTC (rev 711)
@@ -0,0 +1,57 @@
+/*
+ * Copyright (C) 2009 eXo Platform SAS.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package org.exoplatform.services.jcr.dataflow;
+
+import org.exoplatform.services.jcr.impl.core.lock.LockData;
+
+import java.util.ArrayList;
+
+/**
+ * This plain changes log is used to pass lock information through DataManager down to
+ * workspace persistent storage   
+ * 
+ * @author <a href="mailto:nikolazius at gmail.com">Nikolay Zamosenchuk</a>
+ * @version $Id$
+ *
+ */
+public class LockPlainChangesLogImpl extends PlainChangesLogImpl
+{
+   protected LockData lockData = null;
+
+   /**
+    * @param arrayList
+    * @param id
+    * @param lock
+    */
+   public LockPlainChangesLogImpl(ArrayList<ItemState> arrayList, String id, int lock)
+   {
+      super(arrayList, id, lock);
+   }
+
+   public LockData getLockData()
+   {
+      return lockData;
+   }
+
+   public void setLockData(LockData lockData)
+   {
+      this.lockData = lockData;
+   }
+
+}


Property changes on: jcr/branches/1.12.0-JBC/component/core/src/main/java/org/exoplatform/services/jcr/dataflow/LockPlainChangesLogImpl.java
___________________________________________________________________
Name: svn:mime-type
   + text/plain
Name: svn:keywords
   + Id
Name: svn:eol-style
   + native

Modified: jcr/branches/1.12.0-JBC/component/core/src/main/java/org/exoplatform/services/jcr/impl/core/SessionDataManager.java
===================================================================
--- jcr/branches/1.12.0-JBC/component/core/src/main/java/org/exoplatform/services/jcr/impl/core/SessionDataManager.java	2009-11-17 09:58:24 UTC (rev 710)
+++ jcr/branches/1.12.0-JBC/component/core/src/main/java/org/exoplatform/services/jcr/impl/core/SessionDataManager.java	2009-11-17 11:05:04 UTC (rev 711)
@@ -33,6 +33,7 @@
 import org.exoplatform.services.jcr.datamodel.QPath;
 import org.exoplatform.services.jcr.datamodel.QPathEntry;
 import org.exoplatform.services.jcr.impl.Constants;
+import org.exoplatform.services.jcr.impl.core.lock.LockData;
 import org.exoplatform.services.jcr.impl.core.nodetype.NodeTypeManagerImpl;
 import org.exoplatform.services.jcr.impl.core.version.ChildVersionRemoveVisitor;
 import org.exoplatform.services.jcr.impl.core.version.VersionHistoryImpl;
@@ -1891,4 +1892,20 @@
          return -i1.getData().getQPath().compareTo(i2.getData().getQPath());
       }
    }
+
+   /**
+    * @see org.exoplatform.services.jcr.dataflow.ItemDataConsumer#getLockData(java.lang.String)
+    */
+   public LockData getLockData(String identifier) throws RepositoryException
+   {
+      return transactionableManager.getLockData(identifier);
+   }
+
+   /**
+    * @see org.exoplatform.services.jcr.dataflow.ItemDataConsumer#getLocksData()
+    */
+   public List<LockData> getLocksData() throws RepositoryException
+   {
+      return transactionableManager.getLocksData();
+   }
 }

Modified: jcr/branches/1.12.0-JBC/component/core/src/main/java/org/exoplatform/services/jcr/impl/dataflow/persistent/ACLInheritanceSupportedWorkspaceDataManager.java
===================================================================
--- jcr/branches/1.12.0-JBC/component/core/src/main/java/org/exoplatform/services/jcr/impl/dataflow/persistent/ACLInheritanceSupportedWorkspaceDataManager.java	2009-11-17 09:58:24 UTC (rev 710)
+++ jcr/branches/1.12.0-JBC/component/core/src/main/java/org/exoplatform/services/jcr/impl/dataflow/persistent/ACLInheritanceSupportedWorkspaceDataManager.java	2009-11-17 11:05:04 UTC (rev 711)
@@ -25,6 +25,7 @@
 import org.exoplatform.services.jcr.datamodel.NodeData;
 import org.exoplatform.services.jcr.datamodel.PropertyData;
 import org.exoplatform.services.jcr.datamodel.QPathEntry;
+import org.exoplatform.services.jcr.impl.core.lock.LockData;
 import org.exoplatform.services.log.ExoLogger;
 import org.exoplatform.services.log.Log;
 
@@ -172,4 +173,20 @@
    {
       return persistentManager.getCurrentTime();
    }
+
+   /**
+    * @see org.exoplatform.services.jcr.dataflow.ItemDataConsumer#getLockData(java.lang.String)
+    */
+   public LockData getLockData(String identifier) throws RepositoryException
+   {
+      return persistentManager.getLockData(identifier);
+   }
+
+   /**
+    * @see org.exoplatform.services.jcr.dataflow.ItemDataConsumer#getLocksData()
+    */
+   public List<LockData> getLocksData() throws RepositoryException
+   {
+      return persistentManager.getLocksData();
+   }
 }

Modified: jcr/branches/1.12.0-JBC/component/core/src/main/java/org/exoplatform/services/jcr/impl/dataflow/persistent/WorkspacePersistentDataManager.java
===================================================================
--- jcr/branches/1.12.0-JBC/component/core/src/main/java/org/exoplatform/services/jcr/impl/dataflow/persistent/WorkspacePersistentDataManager.java	2009-11-17 09:58:24 UTC (rev 710)
+++ jcr/branches/1.12.0-JBC/component/core/src/main/java/org/exoplatform/services/jcr/impl/dataflow/persistent/WorkspacePersistentDataManager.java	2009-11-17 11:05:04 UTC (rev 711)
@@ -34,6 +34,7 @@
 import org.exoplatform.services.jcr.datamodel.QPath;
 import org.exoplatform.services.jcr.datamodel.QPathEntry;
 import org.exoplatform.services.jcr.impl.Constants;
+import org.exoplatform.services.jcr.impl.core.lock.LockData;
 import org.exoplatform.services.jcr.impl.dataflow.TransientItemData;
 import org.exoplatform.services.jcr.impl.storage.SystemDataContainerHolder;
 import org.exoplatform.services.jcr.storage.WorkspaceDataContainer;
@@ -310,6 +311,32 @@
       }
    }
 
+   public LockData getLockData(String identifier) throws RepositoryException
+   {
+      final WorkspaceStorageConnection con = dataContainer.openConnection();
+      try
+      {
+         return con.getLockData(identifier);
+      }
+      finally
+      {
+         con.close();
+      }
+   }
+
+   public List<LockData> getLocksData() throws RepositoryException
+   {
+      final WorkspaceStorageConnection con = dataContainer.openConnection();
+      try
+      {
+         return con.getLocksData();
+      }
+      finally
+      {
+         con.close();
+      }
+   }
+
    /**
     * {@inheritDoc}
     */

Modified: jcr/branches/1.12.0-JBC/component/core/src/main/java/org/exoplatform/services/jcr/impl/dataflow/session/LocalWorkspaceStorageDataManagerProxy.java
===================================================================
--- jcr/branches/1.12.0-JBC/component/core/src/main/java/org/exoplatform/services/jcr/impl/dataflow/session/LocalWorkspaceStorageDataManagerProxy.java	2009-11-17 09:58:24 UTC (rev 710)
+++ jcr/branches/1.12.0-JBC/component/core/src/main/java/org/exoplatform/services/jcr/impl/dataflow/session/LocalWorkspaceStorageDataManagerProxy.java	2009-11-17 11:05:04 UTC (rev 711)
@@ -31,6 +31,7 @@
 import org.exoplatform.services.jcr.datamodel.PropertyData;
 import org.exoplatform.services.jcr.datamodel.QPathEntry;
 import org.exoplatform.services.jcr.datamodel.ValueData;
+import org.exoplatform.services.jcr.impl.core.lock.LockData;
 import org.exoplatform.services.jcr.impl.core.value.ValueFactoryImpl;
 import org.exoplatform.services.jcr.impl.dataflow.AbstractValueData;
 import org.exoplatform.services.jcr.impl.dataflow.TransientItemData;
@@ -246,4 +247,20 @@
       }
       return copyOfChildsProperties;
    }
+
+   /**
+    * @see org.exoplatform.services.jcr.dataflow.ItemDataConsumer#getLockData(java.lang.String)
+    */
+   public LockData getLockData(String identifier) throws RepositoryException
+   {
+      return storageDataManager.getLockData(identifier);
+   }
+
+   /**
+    * @see org.exoplatform.services.jcr.dataflow.ItemDataConsumer#getLocksData()
+    */
+   public List<LockData> getLocksData() throws RepositoryException
+   {
+      return storageDataManager.getLocksData();
+   }
 }

Modified: jcr/branches/1.12.0-JBC/component/core/src/main/java/org/exoplatform/services/jcr/impl/dataflow/session/TransactionableDataManager.java
===================================================================
--- jcr/branches/1.12.0-JBC/component/core/src/main/java/org/exoplatform/services/jcr/impl/dataflow/session/TransactionableDataManager.java	2009-11-17 09:58:24 UTC (rev 710)
+++ jcr/branches/1.12.0-JBC/component/core/src/main/java/org/exoplatform/services/jcr/impl/dataflow/session/TransactionableDataManager.java	2009-11-17 11:05:04 UTC (rev 711)
@@ -28,6 +28,7 @@
 import org.exoplatform.services.jcr.datamodel.PropertyData;
 import org.exoplatform.services.jcr.datamodel.QPathEntry;
 import org.exoplatform.services.jcr.impl.core.SessionImpl;
+import org.exoplatform.services.jcr.impl.core.lock.LockData;
 import org.exoplatform.services.jcr.impl.dataflow.persistent.LocalWorkspaceDataManagerStub;
 import org.exoplatform.services.log.ExoLogger;
 import org.exoplatform.services.log.Log;
@@ -262,4 +263,21 @@
       return storageDataManager;
    }
 
+   /**
+    * @see org.exoplatform.services.jcr.dataflow.ItemDataConsumer#getLockData(java.lang.String)
+    */
+   public LockData getLockData(String identifier) throws RepositoryException
+   {
+      return storageDataManager.getLockData(identifier);
+   }
+
+   /**
+    * @see org.exoplatform.services.jcr.dataflow.ItemDataConsumer#getLocksData()
+    */
+   public List<LockData> getLocksData() throws RepositoryException
+   {
+      // TODO Auto-generated method stub
+      return storageDataManager.getLocksData();
+   }
+
 }

Modified: jcr/branches/1.12.0-JBC/component/core/src/main/java/org/exoplatform/services/jcr/impl/storage/inmemory/InmemoryStorageConnection.java
===================================================================
--- jcr/branches/1.12.0-JBC/component/core/src/main/java/org/exoplatform/services/jcr/impl/storage/inmemory/InmemoryStorageConnection.java	2009-11-17 09:58:24 UTC (rev 710)
+++ jcr/branches/1.12.0-JBC/component/core/src/main/java/org/exoplatform/services/jcr/impl/storage/inmemory/InmemoryStorageConnection.java	2009-11-17 11:05:04 UTC (rev 711)
@@ -25,6 +25,7 @@
 import org.exoplatform.services.jcr.datamodel.QPathEntry;
 import org.exoplatform.services.jcr.datamodel.ValueData;
 import org.exoplatform.services.jcr.impl.core.JCRPath;
+import org.exoplatform.services.jcr.impl.core.lock.LockData;
 import org.exoplatform.services.jcr.storage.WorkspaceStorageConnection;
 import org.exoplatform.services.log.ExoLogger;
 import org.exoplatform.services.log.Log;
@@ -259,4 +260,20 @@
 
    }
 
+   /**
+    * @see org.exoplatform.services.jcr.storage.WorkspaceStorageConnection#getLockData(java.lang.String)
+    */
+   public LockData getLockData(String identifier)
+   {
+      return null;
+   }
+
+   /**
+    * @see org.exoplatform.services.jcr.storage.WorkspaceStorageConnection#getLocksData()
+    */
+   public List<LockData> getLocksData()
+   {
+      return null;
+   }
+
 }

Modified: jcr/branches/1.12.0-JBC/component/core/src/main/java/org/exoplatform/services/jcr/impl/storage/jbosscache/JBossCacheStorage.java
===================================================================
--- jcr/branches/1.12.0-JBC/component/core/src/main/java/org/exoplatform/services/jcr/impl/storage/jbosscache/JBossCacheStorage.java	2009-11-17 09:58:24 UTC (rev 710)
+++ jcr/branches/1.12.0-JBC/component/core/src/main/java/org/exoplatform/services/jcr/impl/storage/jbosscache/JBossCacheStorage.java	2009-11-17 11:05:04 UTC (rev 711)
@@ -18,7 +18,6 @@
  */
 package org.exoplatform.services.jcr.impl.storage.jbosscache;
 
-import org.exoplatform.services.jcr.datamodel.QPath;
 import org.exoplatform.services.jcr.datamodel.QPathEntry;
 import org.jboss.cache.Fqn;
 import org.jboss.cache.Node;
@@ -42,7 +41,7 @@
 
    public static final String PROPS = "$PROPS".intern();
 
-   public static final String OBSERVATION = "$OBSERVATION".intern();
+   public static final String LOCKS = "$LOCKS".intern();
 
    public static final String ITEM_DATA = "$data".intern();
 
@@ -51,21 +50,27 @@
    public static final String SESSION_ID = "$sessionId".intern();
 
    public static final String USER_ID = "$userId".intern();
+   
+   public static final String LOCK_DATA = "$lock".intern();
 
    protected final Node<Serializable, Object> nodesRoot;
 
    protected final Node<Serializable, Object> propsRoot;
 
    protected final Node<Serializable, Object> sessionRoot;
+   
+   protected final Node<Serializable, Object> locksRoot;
 
    protected JBossCacheStorage(Node<Serializable, Object> nodesRoot, Node<Serializable, Object> propsRoot,
-      Node<Serializable, Object> sessionRoot)
+      Node<Serializable, Object> sessionRoot, Node<Serializable, Object> locksRoot)
    {
       this.nodesRoot = nodesRoot;
 
       this.propsRoot = propsRoot;
 
       this.sessionRoot = sessionRoot;
+      
+      this.locksRoot = locksRoot; 
    }
 
    /**

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-11-17 09:58:24 UTC (rev 710)
+++ jcr/branches/1.12.0-JBC/component/core/src/main/java/org/exoplatform/services/jcr/impl/storage/jbosscache/JBossCacheStorageConnection.java	2009-11-17 11:05:04 UTC (rev 711)
@@ -21,8 +21,8 @@
 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.QPath;
 import org.exoplatform.services.jcr.datamodel.QPathEntry;
+import org.exoplatform.services.jcr.impl.core.lock.LockData;
 import org.exoplatform.services.jcr.storage.WorkspaceStorageConnection;
 import org.exoplatform.services.log.ExoLogger;
 import org.exoplatform.services.log.Log;
@@ -72,9 +72,9 @@
     * @param cache Cache<Serializable, Object>
     */
    public JBossCacheStorageConnection(Cache<Serializable, Object> cache, Node<Serializable, Object> nodesRoot,
-      Node<Serializable, Object> propsRoot, Node<Serializable, Object> sessionRoot)
+      Node<Serializable, Object> propsRoot, Node<Serializable, Object> sessionRoot, Node<Serializable, Object> locksRoot)
    {
-      super(nodesRoot, propsRoot, sessionRoot);
+      super(nodesRoot, propsRoot, sessionRoot, locksRoot);
 
       this.cache = cache;
    }
@@ -600,4 +600,38 @@
       }
    }
 
+   /**
+    * @see org.exoplatform.services.jcr.storage.WorkspaceStorageConnection#getLockData(java.lang.String)
+    */
+   public LockData getLockData(String identifier)
+   {
+      LockData lockData = null;
+      Node<Serializable, Object> node = locksRoot.getChild(makeNodeFqn(identifier));
+      if (node != null)
+      {
+         lockData = (LockData)node.get(JBossCacheStorage.LOCK_DATA);
+      }
+      return lockData;
+   }
+
+   /**
+    * @see org.exoplatform.services.jcr.storage.WorkspaceStorageConnection#getLocksData()
+    */
+   public List<LockData> getLocksData()
+   {
+      Set<Node<Serializable, Object>> lockSet = locksRoot.getChildren();
+      List<LockData> locksData = new ArrayList<LockData>();
+      for (Node<Serializable, Object> node : lockSet)
+      {
+         if (node != null)
+         {
+            LockData lockData = (LockData)node.get(JBossCacheStorage.LOCK_DATA);
+            if (lockData != null)
+            {
+               locksData.add(lockData);
+            }
+         }
+      }
+      return locksData;
+   }
 }

Modified: jcr/branches/1.12.0-JBC/component/core/src/main/java/org/exoplatform/services/jcr/impl/storage/jbosscache/JBossCacheTreeStorageConnection.java
===================================================================
--- jcr/branches/1.12.0-JBC/component/core/src/main/java/org/exoplatform/services/jcr/impl/storage/jbosscache/JBossCacheTreeStorageConnection.java	2009-11-17 09:58:24 UTC (rev 710)
+++ jcr/branches/1.12.0-JBC/component/core/src/main/java/org/exoplatform/services/jcr/impl/storage/jbosscache/JBossCacheTreeStorageConnection.java	2009-11-17 11:05:04 UTC (rev 711)
@@ -18,18 +18,11 @@
  */
 package org.exoplatform.services.jcr.impl.storage.jbosscache;
 
-import java.io.Serializable;
-import java.util.ArrayList;
-import java.util.List;
-import java.util.Set;
-
-import javax.jcr.InvalidItemStateException;
-import javax.jcr.RepositoryException;
-
 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.QPathEntry;
+import org.exoplatform.services.jcr.impl.core.lock.LockData;
 import org.exoplatform.services.jcr.storage.WorkspaceStorageConnection;
 import org.exoplatform.services.log.ExoLogger;
 import org.exoplatform.services.log.Log;
@@ -37,6 +30,14 @@
 import org.jboss.cache.Fqn;
 import org.jboss.cache.Node;
 
+import java.io.Serializable;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Set;
+
+import javax.jcr.InvalidItemStateException;
+import javax.jcr.RepositoryException;
+
 /**
  * DEPRECATED - DO NOT USE!
  * 
@@ -419,4 +420,20 @@
       }
    }
 
+   /**
+    * @see org.exoplatform.services.jcr.storage.WorkspaceStorageConnection#getLockData(java.lang.String)
+    */
+   public LockData getLockData(String identifier)
+   {
+      throw new UnsupportedOperationException();
+   }
+
+   /**
+    * @see org.exoplatform.services.jcr.storage.WorkspaceStorageConnection#getLocksData()
+    */
+   public List<LockData> getLocksData()
+   {
+      throw new UnsupportedOperationException();
+   }
+
 }

Modified: jcr/branches/1.12.0-JBC/component/core/src/main/java/org/exoplatform/services/jcr/impl/storage/jbosscache/JBossCacheWorkspaceDataContainer.java
===================================================================
--- jcr/branches/1.12.0-JBC/component/core/src/main/java/org/exoplatform/services/jcr/impl/storage/jbosscache/JBossCacheWorkspaceDataContainer.java	2009-11-17 09:58:24 UTC (rev 710)
+++ jcr/branches/1.12.0-JBC/component/core/src/main/java/org/exoplatform/services/jcr/impl/storage/jbosscache/JBossCacheWorkspaceDataContainer.java	2009-11-17 11:05:04 UTC (rev 711)
@@ -73,6 +73,8 @@
 
    private Node<Serializable, Object> session;
 
+   private Node<Serializable, Object> locks;
+
    /**
     * JBossWorkspaceDataContainer  constructor.
     *
@@ -128,6 +130,7 @@
       this.nodes = cacheRoot.addChild(Fqn.fromElements(JBossCacheStorage.NODES));
       this.properties = cacheRoot.addChild(Fqn.fromElements(JBossCacheStorage.PROPS));
       this.session = cacheRoot.addChild(Fqn.fromElements(JBossCacheStorage.SESSION));
+      this.locks = cacheRoot.addChild(Fqn.fromElements(JBossCacheStorage.LOCKS));
       cache.endBatch(true);
    }
 
@@ -177,7 +180,7 @@
       //         throw new RepositoryException("Container is not started");
       //      }
 
-      return new JBossCacheStorageConnection(cache, nodes, properties, session);
+      return new JBossCacheStorageConnection(cache, nodes, properties, session, locks);
    }
 
    /**
@@ -191,7 +194,7 @@
       //         throw new RepositoryException("Container is not started");
       //      }
 
-      return new JBossCacheStorageConnection(cache, nodes, properties, session);
+      return new JBossCacheStorageConnection(cache, nodes, properties, session, locks);
    }
 
    /**

Modified: jcr/branches/1.12.0-JBC/component/core/src/main/java/org/exoplatform/services/jcr/impl/storage/jdbc/JDBCStorageConnection.java
===================================================================
--- jcr/branches/1.12.0-JBC/component/core/src/main/java/org/exoplatform/services/jcr/impl/storage/jdbc/JDBCStorageConnection.java	2009-11-17 09:58:24 UTC (rev 710)
+++ jcr/branches/1.12.0-JBC/component/core/src/main/java/org/exoplatform/services/jcr/impl/storage/jdbc/JDBCStorageConnection.java	2009-11-17 11:05:04 UTC (rev 711)
@@ -33,6 +33,7 @@
 import org.exoplatform.services.jcr.datamodel.QPathEntry;
 import org.exoplatform.services.jcr.datamodel.ValueData;
 import org.exoplatform.services.jcr.impl.Constants;
+import org.exoplatform.services.jcr.impl.core.lock.LockData;
 import org.exoplatform.services.jcr.impl.dataflow.persistent.ByteArrayPersistedValueData;
 import org.exoplatform.services.jcr.impl.dataflow.persistent.CleanableFileStreamValueData;
 import org.exoplatform.services.jcr.impl.storage.JCRInvalidItemStateException;
@@ -698,6 +699,24 @@
    }
 
    /**
+    * @see org.exoplatform.services.jcr.storage.WorkspaceStorageConnection#getLockData(java.lang.String)
+    */
+   public LockData getLockData(String identifier)
+   {
+      // TODO Add logic HERE! Need to store locks some where
+      return null;
+   }
+
+   /**
+    * @see org.exoplatform.services.jcr.storage.WorkspaceStorageConnection#getLocksData()
+    */
+   public List<LockData> getLocksData()
+   {
+      // TODO Add logic HERE! Need to store locks some where
+      return null;
+   }
+
+   /**
     * {@inheritDoc}
     */
    public void addSessionInfo(String sessionId) throws RepositoryException

Modified: jcr/branches/1.12.0-JBC/component/core/src/main/java/org/exoplatform/services/jcr/storage/WorkspaceStorageConnection.java
===================================================================
--- jcr/branches/1.12.0-JBC/component/core/src/main/java/org/exoplatform/services/jcr/storage/WorkspaceStorageConnection.java	2009-11-17 09:58:24 UTC (rev 710)
+++ jcr/branches/1.12.0-JBC/component/core/src/main/java/org/exoplatform/services/jcr/storage/WorkspaceStorageConnection.java	2009-11-17 11:05:04 UTC (rev 711)
@@ -22,6 +22,7 @@
 import org.exoplatform.services.jcr.datamodel.NodeData;
 import org.exoplatform.services.jcr.datamodel.PropertyData;
 import org.exoplatform.services.jcr.datamodel.QPathEntry;
+import org.exoplatform.services.jcr.impl.core.lock.LockData;
 
 import java.util.List;
 
@@ -333,4 +334,17 @@
     * @return boolean, true if connection is open and ready, false - otherwise
     */
    boolean isOpened();
+   
+   /**
+    * @param identifier
+    * @return
+    *    LockData by given node uuid, or null if not present
+    */
+   LockData getLockData(String identifier);
+   
+   /**
+    * @return
+    *    List of all locks.
+    */
+   List<LockData> getLocksData();
 }

Modified: jcr/branches/1.12.0-JBC/component/core/src/test/java/org/exoplatform/services/jcr/impl/storage/jbosscache/JBossCacheStorageConnectionTest.java
===================================================================
--- jcr/branches/1.12.0-JBC/component/core/src/test/java/org/exoplatform/services/jcr/impl/storage/jbosscache/JBossCacheStorageConnectionTest.java	2009-11-17 09:58:24 UTC (rev 710)
+++ jcr/branches/1.12.0-JBC/component/core/src/test/java/org/exoplatform/services/jcr/impl/storage/jbosscache/JBossCacheStorageConnectionTest.java	2009-11-17 11:05:04 UTC (rev 711)
@@ -62,6 +62,8 @@
 
    protected Node<Serializable, Object> session;
 
+   protected Node<Serializable, Object> locks;
+
    protected String jbcConfig;
 
    /**
@@ -88,9 +90,10 @@
       nodes = cacheRoot.addChild(Fqn.fromString(JBossCacheStorage.NODES));
       props = cacheRoot.addChild(Fqn.fromString(JBossCacheStorage.PROPS));
       session = cacheRoot.addChild(Fqn.fromString(JBossCacheStorage.SESSION));
+      locks = cacheRoot.addChild(Fqn.fromString(JBossCacheStorage.SESSION));
 
       // JCR connection
-      conn = new JBossCacheStorageConnection(cache, nodes, props, session);
+      conn = new JBossCacheStorageConnection(cache, nodes, props, session, locks);
    }
 
    protected void initJBCConfig()

Modified: jcr/branches/1.12.0-JBC/component/core/src/test/java/org/exoplatform/services/jcr/impl/storage/jbosscache/ObservationCacheLoaderTest.java
===================================================================
--- jcr/branches/1.12.0-JBC/component/core/src/test/java/org/exoplatform/services/jcr/impl/storage/jbosscache/ObservationCacheLoaderTest.java	2009-11-17 09:58:24 UTC (rev 710)
+++ jcr/branches/1.12.0-JBC/component/core/src/test/java/org/exoplatform/services/jcr/impl/storage/jbosscache/ObservationCacheLoaderTest.java	2009-11-17 11:05:04 UTC (rev 711)
@@ -37,6 +37,7 @@
 import org.exoplatform.services.jcr.datamodel.QPathEntry;
 import org.exoplatform.services.jcr.impl.Constants;
 import org.exoplatform.services.jcr.impl.core.LocationFactory;
+import org.exoplatform.services.jcr.impl.core.lock.LockData;
 import org.exoplatform.services.jcr.impl.core.observation.ListenerCriteria;
 import org.exoplatform.services.jcr.impl.core.observation.ObservationManagerRegistry;
 import org.exoplatform.services.jcr.impl.dataflow.TransientNodeData;
@@ -555,6 +556,22 @@
       {
       }
 
+      /**
+       * @see org.exoplatform.services.jcr.storage.WorkspaceStorageConnection#getLockData(java.lang.String)
+       */
+      public LockData getLockData(String identifier)
+      {
+         return null;
+      }
+
+      /**
+       * @see org.exoplatform.services.jcr.storage.WorkspaceStorageConnection#getLocksData()
+       */
+      public List<LockData> getLocksData()
+      {
+         return null;
+      }
+
    }
 
 }



More information about the exo-jcr-commits mailing list