[exo-jcr-commits] exo-jcr SVN: r1270 - in jcr/branches/1.12.0-JBCCACHE/exo.jcr.component.core/src: main/java/org/exoplatform/services/jcr/impl/core/query/lucene and 1 other directories.
do-not-reply at jboss.org
do-not-reply at jboss.org
Mon Jan 4 07:11:29 EST 2010
Author: skabashnyuk
Date: 2010-01-04 07:11:29 -0500 (Mon, 04 Jan 2010)
New Revision: 1270
Modified:
jcr/branches/1.12.0-JBCCACHE/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/core/query/jbosscache/JbossCacheIndexUpdateMonitor.java
jcr/branches/1.12.0-JBCCACHE/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/core/query/lucene/DefaultIndexUpdateMonitor.java
jcr/branches/1.12.0-JBCCACHE/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/core/query/lucene/IndexUpdateMonitor.java
jcr/branches/1.12.0-JBCCACHE/exo.jcr.component.core/src/test/java/org/exoplatform/services/jcr/lab/cluster/prepare/TestIndexUpdateMonitor.java
Log:
EXOJCR-331 : Added locks
Modified: jcr/branches/1.12.0-JBCCACHE/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/core/query/jbosscache/JbossCacheIndexUpdateMonitor.java
===================================================================
--- jcr/branches/1.12.0-JBCCACHE/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/core/query/jbosscache/JbossCacheIndexUpdateMonitor.java 2010-01-04 11:33:34 UTC (rev 1269)
+++ jcr/branches/1.12.0-JBCCACHE/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/core/query/jbosscache/JbossCacheIndexUpdateMonitor.java 2010-01-04 12:11:29 UTC (rev 1270)
@@ -69,32 +69,57 @@
}
- public boolean lock(String name, LockType lockType) throws InterruptedException
+ /**
+ * @see org.exoplatform.services.jcr.impl.core.query.lucene.IndexUpdateMonitor#getUpdateInProgress()
+ */
+ public boolean getUpdateInProgress()
{
- LockManager lm = ((CacheSPI<Serializable, Object>)cache).getComponentRegistry().getComponent(LockManager.class);
- return lm.lock(Fqn.fromRelativeFqn(PARAMETER_ROOT, Fqn.fromString(name)), lockType, Integer.MAX_VALUE);
+ Object value = cache.get(PARAMETER_ROOT, PARAMETER_NAME);
+ return value != null ? (Boolean)value : false;
}
- public void unlock(String name)
+ /**
+ * Returns true if the node is locked (either for reading or writing) by anyone, and false otherwise.
+ * @param name
+ * @return
+ */
+ public boolean isLocked(String name)
{
LockManager lm = ((CacheSPI<Serializable, Object>)cache).getComponentRegistry().getComponent(LockManager.class);
- lm.unlock(Fqn.fromRelativeFqn(PARAMETER_ROOT, Fqn.fromString(name)), cache.getInvocationContext()
- .getGlobalTransaction());
+ return lm.isLocked(Fqn.fromRelativeFqn(PARAMETER_ROOT, Fqn.fromString(name)));
}
- public boolean isLocked(String name)
+ /**
+ * Acquires a lock of type lockType, for a given owner
+ * @param name
+ * @param lockType
+ * @return
+ * @throws InterruptedException
+ */
+ public boolean lock(String name, LockType lockType)
{
+
LockManager lm = ((CacheSPI<Serializable, Object>)cache).getComponentRegistry().getComponent(LockManager.class);
- return lm.isLocked(Fqn.fromRelativeFqn(PARAMETER_ROOT, Fqn.fromString(name)));
+ try
+ {
+ return lm.lock(Fqn.fromRelativeFqn(PARAMETER_ROOT, Fqn.fromString(name)), lockType, Integer.MAX_VALUE);
+ }
+ catch (InterruptedException e)
+ {
+ // TODO Auto-generated catch block
+ e.printStackTrace();
+ }
+ return false;
}
/**
- * @see org.exoplatform.services.jcr.impl.core.query.lucene.IndexUpdateMonitor#getUpdateInProgress()
+ * Sets {@link IndexerIoMode} to indexInfos;
+ * @param ioMode
+ * @throws IOException
*/
- public boolean getUpdateInProgress()
+ public void setIoMode(IndexerIoMode ioMode) throws IOException
{
- Object value = cache.get(PARAMETER_ROOT, PARAMETER_NAME);
- return value != null ? (Boolean)value : false;
+ this.ioMode = ioMode;
}
/**
@@ -107,7 +132,7 @@
throw new IllegalStateException("Unable to set updateInProgress value in IndexerIoMode.READ_ONLY mode");
}
- log.info("setUpdateInProgress=" + updateInProgress);
+ // log.info("setUpdateInProgress=" + updateInProgress);
TransactionManager tm = ((CacheSPI<Serializable, Object>)cache).getTransactionManager();
try
{
@@ -145,12 +170,13 @@
}
/**
- * Sets {@link IndexerIoMode} to indexInfos;
- * @param ioMode
- * @throws IOException
+ * Releases the lock passed in
+ * @param name
*/
- public void setIoMode(IndexerIoMode ioMode) throws IOException
+ public void unlock(String name)
{
- this.ioMode = ioMode;
+ LockManager lm = ((CacheSPI<Serializable, Object>)cache).getComponentRegistry().getComponent(LockManager.class);
+ lm.unlock(Fqn.fromRelativeFqn(PARAMETER_ROOT, Fqn.fromString(name)), cache.getInvocationContext()
+ .getGlobalTransaction());
}
}
Modified: jcr/branches/1.12.0-JBCCACHE/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/core/query/lucene/DefaultIndexUpdateMonitor.java
===================================================================
--- jcr/branches/1.12.0-JBCCACHE/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/core/query/lucene/DefaultIndexUpdateMonitor.java 2010-01-04 11:33:34 UTC (rev 1269)
+++ jcr/branches/1.12.0-JBCCACHE/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/core/query/lucene/DefaultIndexUpdateMonitor.java 2010-01-04 12:11:29 UTC (rev 1270)
@@ -19,6 +19,7 @@
package org.exoplatform.services.jcr.impl.core.query.lucene;
import org.exoplatform.services.jcr.impl.core.query.IndexerIoMode;
+import org.jboss.cache.lock.LockType;
import java.io.IOException;
import java.util.concurrent.atomic.AtomicBoolean;
@@ -70,4 +71,27 @@
this.ioMode = ioMode;
}
+ /**
+ * @see org.exoplatform.services.jcr.impl.core.query.lucene.IndexUpdateMonitor#unlock(java.lang.String)
+ */
+ public void unlock(String name)
+ {
+ }
+
+ /**
+ * @see org.exoplatform.services.jcr.impl.core.query.lucene.IndexUpdateMonitor#lock(java.lang.String, org.jboss.cache.lock.LockType)
+ */
+ public boolean lock(String name, LockType lockType)
+ {
+ return false;
+ }
+
+ /**
+ * @see org.exoplatform.services.jcr.impl.core.query.lucene.IndexUpdateMonitor#isLocked(java.lang.String)
+ */
+ public boolean isLocked(String name)
+ {
+ return false;
+ }
+
}
Modified: jcr/branches/1.12.0-JBCCACHE/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/core/query/lucene/IndexUpdateMonitor.java
===================================================================
--- jcr/branches/1.12.0-JBCCACHE/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/core/query/lucene/IndexUpdateMonitor.java 2010-01-04 11:33:34 UTC (rev 1269)
+++ jcr/branches/1.12.0-JBCCACHE/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/core/query/lucene/IndexUpdateMonitor.java 2010-01-04 12:11:29 UTC (rev 1270)
@@ -19,6 +19,7 @@
package org.exoplatform.services.jcr.impl.core.query.lucene;
import org.exoplatform.services.jcr.impl.core.query.IndexerIoMode;
+import org.jboss.cache.lock.LockType;
import java.io.IOException;
@@ -46,4 +47,26 @@
*/
public void setIoMode(IndexerIoMode ioMode) throws IOException;
+ /**
+ * Returns true if the node is locked (either for reading or writing) by anyone, and false otherwise.
+ * @param name
+ * @return
+ */
+ public boolean isLocked(String name);
+
+ /**
+ * Acquires a lock of type lockType, for a given owner
+ * @param name
+ * @param lockType
+ * @return
+ * @throws InterruptedException
+ */
+ public boolean lock(String name, LockType lockType);
+
+ /**
+ * Releases the lock passed in
+ * @param name
+ */
+ public void unlock(String name);
+
}
\ No newline at end of file
Modified: jcr/branches/1.12.0-JBCCACHE/exo.jcr.component.core/src/test/java/org/exoplatform/services/jcr/lab/cluster/prepare/TestIndexUpdateMonitor.java
===================================================================
--- jcr/branches/1.12.0-JBCCACHE/exo.jcr.component.core/src/test/java/org/exoplatform/services/jcr/lab/cluster/prepare/TestIndexUpdateMonitor.java 2010-01-04 11:33:34 UTC (rev 1269)
+++ jcr/branches/1.12.0-JBCCACHE/exo.jcr.component.core/src/test/java/org/exoplatform/services/jcr/lab/cluster/prepare/TestIndexUpdateMonitor.java 2010-01-04 12:11:29 UTC (rev 1270)
@@ -22,6 +22,7 @@
import org.exoplatform.services.jcr.impl.core.query.IndexerIoMode;
import org.exoplatform.services.jcr.impl.core.query.jbosscache.JbossCacheIndexUpdateMonitor;
+import org.exoplatform.services.jcr.impl.core.query.lucene.IndexUpdateMonitor;
import org.exoplatform.services.log.ExoLogger;
import org.exoplatform.services.log.Log;
import org.jboss.cache.Cache;
@@ -47,7 +48,7 @@
*/
private final Log log = ExoLogger.getLogger(TestIndexUpdateMonitor.class);
- private JbossCacheIndexUpdateMonitor indexUpdateMonitor;
+ private IndexUpdateMonitor indexUpdateMonitor;
private Cache<Serializable, Object> cache;
@@ -157,32 +158,23 @@
/**
* @param indexUpdateMonitor
*/
- public LockChecker(JbossCacheIndexUpdateMonitor indexUpdateMonitor, String lockName)
+ public LockChecker(IndexUpdateMonitor indexUpdateMonitor, String lockName)
{
super();
this.indexUpdateMonitor = indexUpdateMonitor;
this.lockName = lockName;
}
- private final JbossCacheIndexUpdateMonitor indexUpdateMonitor;
+ private final IndexUpdateMonitor indexUpdateMonitor;
/**
* @see java.lang.Runnable#run()
*/
public void run()
{
- // TODO Auto-generated method stub
- try
- {
- waiting = true;
- assertTrue(indexUpdateMonitor.lock(lockName, LockType.WRITE));
- waiting = false;
- }
- catch (InterruptedException e)
- {
- // TODO Auto-generated catch block
- e.printStackTrace();
- }
+ waiting = true;
+ assertTrue(indexUpdateMonitor.lock(lockName, LockType.WRITE));
+ waiting = false;
}
}
More information about the exo-jcr-commits
mailing list