From 79752c40d89ac3d7188620e61a2105bba22e8719 Mon Sep 17 00:00:00 2001 From: Matt Ward Date: Thu, 5 Sep 2013 11:59:17 +0000 Subject: [PATCH] ALF-19916: Lucene transaction tracking running on single node install Reindexing now only happens when there is an active cluster of 2 or more members. git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/alfresco/HEAD/root@54975 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261 --- .../Search/lucene/index-recovery-context.xml | 6 +- .../repo/node/index/IndexRecoveryJob.java | 60 ------------------- .../repo/node/index/NoOpIndexRecoveryJob.java | 45 ++++++++++++++ 3 files changed, 48 insertions(+), 63 deletions(-) delete mode 100644 source/java/org/alfresco/repo/node/index/IndexRecoveryJob.java create mode 100644 source/java/org/alfresco/repo/node/index/NoOpIndexRecoveryJob.java diff --git a/config/alfresco/subsystems/Search/lucene/index-recovery-context.xml b/config/alfresco/subsystems/Search/lucene/index-recovery-context.xml index cf60dc7217..c39a65db03 100644 --- a/config/alfresco/subsystems/Search/lucene/index-recovery-context.xml +++ b/config/alfresco/subsystems/Search/lucene/index-recovery-context.xml @@ -125,7 +125,7 @@ - org.alfresco.repo.node.index.IndexRecoveryJob + org.alfresco.repo.node.index.NoOpIndexRecoveryJob @@ -166,7 +166,7 @@ - org.alfresco.repo.node.index.IndexRecoveryJob + org.alfresco.repo.node.index.NoOpIndexRecoveryJob @@ -205,7 +205,7 @@ - org.alfresco.repo.node.index.IndexRecoveryJob + org.alfresco.repo.node.index.NoOpIndexRecoveryJob diff --git a/source/java/org/alfresco/repo/node/index/IndexRecoveryJob.java b/source/java/org/alfresco/repo/node/index/IndexRecoveryJob.java deleted file mode 100644 index bb87a0f7ba..0000000000 --- a/source/java/org/alfresco/repo/node/index/IndexRecoveryJob.java +++ /dev/null @@ -1,60 +0,0 @@ -/* - * Copyright (C) 2005-2010 Alfresco Software Limited. - * - * This file is part of Alfresco - * - * Alfresco 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 3 of the License, or - * (at your option) any later version. - * - * Alfresco 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 Alfresco. If not, see . - */ -package org.alfresco.repo.node.index; - -import org.quartz.Job; -import org.quartz.JobDataMap; -import org.quartz.JobExecutionContext; -import org.quartz.JobExecutionException; - -/** - * Forces a index recovery using the {@link IndexRecovery recovery component} passed - * in via the job detail. - *

- * Nothing is done if the cluster name property alfresco.cluster.name has not been set. - * - * @author Derek Hulley - */ -public class IndexRecoveryJob implements Job -{ - public static final String KEY_INDEX_RECOVERY_COMPONENT = "indexRecoveryComponent"; - public static final String KEY_CLUSTER_ENABLED = "clusterEnabled"; - - /** - * Forces a full index recovery using the {@link IndexRecovery recovery component} passed - * in via the job detail. - */ - public void execute(JobExecutionContext context) throws JobExecutionException - { - JobDataMap map = context.getJobDetail().getJobDataMap(); - IndexRecovery indexRecoveryComponent = (IndexRecovery) map.get(KEY_INDEX_RECOVERY_COMPONENT); - if (indexRecoveryComponent == null) - { - throw new JobExecutionException("Missing job data: " + KEY_INDEX_RECOVERY_COMPONENT); - } - boolean clusterEnabled = map.getBooleanValue(KEY_CLUSTER_ENABLED); - if (!clusterEnabled) - { - // Nothing to do when clustering disabled. - return; - } - // reindex - indexRecoveryComponent.reindex(); - } -} diff --git a/source/java/org/alfresco/repo/node/index/NoOpIndexRecoveryJob.java b/source/java/org/alfresco/repo/node/index/NoOpIndexRecoveryJob.java new file mode 100644 index 0000000000..649d0c8790 --- /dev/null +++ b/source/java/org/alfresco/repo/node/index/NoOpIndexRecoveryJob.java @@ -0,0 +1,45 @@ +/* + * Copyright (C) 2005-2010 Alfresco Software Limited. + * + * This file is part of Alfresco + * + * Alfresco 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 3 of the License, or + * (at your option) any later version. + * + * Alfresco 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 Alfresco. If not, see . + */ +package org.alfresco.repo.node.index; + +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; +import org.quartz.Job; +import org.quartz.JobExecutionContext; +import org.quartz.JobExecutionException; + +/** + * A do-nothing implementation of the {@link Job} interface. This behaviour is overriden + * in the enterprise edition when clustering is enabled. + * + * @author Matt Ward + */ +public class NoOpIndexRecoveryJob implements Job +{ + private static final Log log = LogFactory.getLog(NoOpIndexRecoveryJob.class); + + public void execute(JobExecutionContext context) throws JobExecutionException + { + if (log.isDebugEnabled()) + { + log.debug("Skipping reindexing."); + } + // NOOP + } +}