[exo-jcr-commits] exo-jcr SVN: r4167 - in jcr/trunk/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
Wed Mar 23 11:10:46 EDT 2011
Author: tolusha
Date: 2011-03-23 11:10:46 -0400 (Wed, 23 Mar 2011)
New Revision: 4167
Modified:
jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/core/query/SearchManager.java
jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/core/query/SystemSearchManager.java
jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/core/query/lucene/MultiIndex.java
jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/core/query/lucene/SearchIndex.java
jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/dataflow/persistent/CacheableWorkspaceDataManager.java
Log:
EXOJCR-1266: no need to stop SearchManager, just stop IndexMerger and flush volatile index
Modified: jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/core/query/SearchManager.java
===================================================================
--- jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/core/query/SearchManager.java 2011-03-23 13:00:02 UTC (rev 4166)
+++ jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/core/query/SearchManager.java 2011-03-23 15:10:46 UTC (rev 4167)
@@ -1130,8 +1130,12 @@
throw new SuspendException("Component already suspended.");
}
+ if (handler instanceof Suspendable)
+ {
+ ((Suspendable)handler).suspend();
+ }
+
isSuspended = true;
- stop();
}
protected void resumeLocally() throws ResumeException
@@ -1141,7 +1145,11 @@
throw new ResumeException("Component is not suspended.");
}
- start();
+ if (handler instanceof Suspendable)
+ {
+ ((Suspendable)handler).resume();
+ }
+
isSuspended = false;
}
Modified: jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/core/query/SystemSearchManager.java
===================================================================
--- jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/core/query/SystemSearchManager.java 2011-03-23 13:00:02 UTC (rev 4166)
+++ jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/core/query/SystemSearchManager.java 2011-03-23 15:10:46 UTC (rev 4167)
@@ -27,7 +27,6 @@
import org.exoplatform.services.jcr.datamodel.NodeData;
import org.exoplatform.services.jcr.datamodel.QPath;
import org.exoplatform.services.jcr.impl.Constants;
-import org.exoplatform.services.jcr.impl.backup.SuspendException;
import org.exoplatform.services.jcr.impl.core.NamespaceRegistryImpl;
import org.exoplatform.services.jcr.impl.dataflow.persistent.WorkspacePersistentDataManager;
import org.exoplatform.services.log.ExoLogger;
@@ -133,11 +132,4 @@
{
return super.getStorageName() + "_" + INDEX_DIR_SUFFIX;
}
-
- @Override
- protected void suspendLocally() throws SuspendException
- {
- super.suspendLocally();
- isStarted = false;
- }
}
Modified: jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/core/query/lucene/MultiIndex.java
===================================================================
--- jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/core/query/lucene/MultiIndex.java 2011-03-23 13:00:02 UTC (rev 4166)
+++ jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/core/query/lucene/MultiIndex.java 2011-03-23 15:10:46 UTC (rev 4167)
@@ -20,7 +20,6 @@
import org.apache.lucene.index.IndexReader;
import org.apache.lucene.index.Term;
import org.apache.lucene.index.TermDocs;
-import org.apache.lucene.store.AlreadyClosedException;
import org.apache.lucene.store.Directory;
import org.exoplatform.commons.utils.PrivilegedFileHelper;
import org.exoplatform.commons.utils.SecurityHelper;
@@ -29,7 +28,9 @@
import org.exoplatform.services.jcr.datamodel.NodeData;
import org.exoplatform.services.jcr.datamodel.NodeDataIndexing;
import org.exoplatform.services.jcr.impl.Constants;
+import org.exoplatform.services.jcr.impl.backup.ResumeException;
import org.exoplatform.services.jcr.impl.backup.SuspendException;
+import org.exoplatform.services.jcr.impl.backup.Suspendable;
import org.exoplatform.services.jcr.impl.core.query.IndexRecovery;
import org.exoplatform.services.jcr.impl.core.query.IndexerIoMode;
import org.exoplatform.services.jcr.impl.core.query.IndexerIoModeHandler;
@@ -98,7 +99,7 @@
* thread and reader threads is done using {@link #updateMonitor} and
* {@link #updateInProgress}.
*/
-public class MultiIndex implements IndexerIoModeListener, IndexUpdateMonitorListener
+public class MultiIndex implements IndexerIoModeListener, IndexUpdateMonitorListener, Suspendable
{
/**
@@ -3619,4 +3620,38 @@
{
}
}
+
+ /**
+ * {@inheritDoc}
+ */
+ public void suspend() throws SuspendException
+ {
+ try
+ {
+ flush();
+ }
+ catch (IOException e)
+ {
+ throw new SuspendException(e);
+ }
+ merger.dispose();
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ public void resume() throws ResumeException
+ {
+ try
+ {
+ indexNames.read();
+ refreshIndexList();
+
+ doInitIndexMerger();
+ }
+ catch (IOException e)
+ {
+ throw new ResumeException(e);
+ }
+ }
}
\ No newline at end of file
Modified: jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/core/query/lucene/SearchIndex.java
===================================================================
--- jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/core/query/lucene/SearchIndex.java 2011-03-23 13:00:02 UTC (rev 4166)
+++ jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/core/query/lucene/SearchIndex.java 2011-03-23 15:10:46 UTC (rev 4167)
@@ -49,6 +49,9 @@
import org.exoplatform.services.jcr.datamodel.PropertyData;
import org.exoplatform.services.jcr.datamodel.QPath;
import org.exoplatform.services.jcr.impl.Constants;
+import org.exoplatform.services.jcr.impl.backup.ResumeException;
+import org.exoplatform.services.jcr.impl.backup.SuspendException;
+import org.exoplatform.services.jcr.impl.backup.Suspendable;
import org.exoplatform.services.jcr.impl.core.LocationFactory;
import org.exoplatform.services.jcr.impl.core.SessionDataManager;
import org.exoplatform.services.jcr.impl.core.SessionImpl;
@@ -96,7 +99,7 @@
* Implements a {@link org.apache.jackrabbit.core.query.QueryHandler} using
* Lucene.
*/
-public class SearchIndex extends AbstractQueryHandler implements IndexerIoModeListener
+public class SearchIndex extends AbstractQueryHandler implements IndexerIoModeListener, Suspendable
{
private static final DefaultQueryNodeFactory DEFAULT_QUERY_NODE_FACTORY = new DefaultQueryNodeFactory();
@@ -2958,4 +2961,26 @@
checkOpen();
index.setOnline(isOnline);
}
+
+ /**
+ * {@inheritDoc}
+ */
+ public void suspend() throws SuspendException
+ {
+ if (index instanceof Suspendable)
+ {
+ ((Suspendable)index).suspend();
+ }
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ public void resume() throws ResumeException
+ {
+ if (index instanceof Suspendable)
+ {
+ ((Suspendable)index).resume();
+ }
+ }
}
Modified: jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/dataflow/persistent/CacheableWorkspaceDataManager.java
===================================================================
--- jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/dataflow/persistent/CacheableWorkspaceDataManager.java 2011-03-23 13:00:02 UTC (rev 4166)
+++ jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/dataflow/persistent/CacheableWorkspaceDataManager.java 2011-03-23 15:10:46 UTC (rev 4167)
@@ -1178,8 +1178,8 @@
throw new ResumeException("Component is not suspended.");
}
+ latcher.countDown();
isSuspended = false;
- latcher.countDown();
}
/**
More information about the exo-jcr-commits
mailing list