From 77a79cf2de89abedd2f530c914b9c89b714d4ddc Mon Sep 17 00:00:00 2001 From: Steven Glover Date: Fri, 14 Oct 2011 16:29:01 +0000 Subject: [PATCH] ALF-10419: o performance improvements: disable/enable auditing behaviour per-transaction rather than per-node o add "disable rules" checkbox to GUI and support disabling of rules during import git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/alfresco/HEAD/root@31243 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261 --- .../bulkfilesystemimport/ui.get.html.ftl | 3 +++ .../AbstractBulkFileSystemImportWebScript.java | 11 +++++++++-- .../copy/BulkFilesystemImportWebScript.java | 14 +++++++++----- 3 files changed, 21 insertions(+), 7 deletions(-) diff --git a/config/alfresco/templates/webscripts/org/alfresco/repository/bulkfilesystemimport/ui.get.html.ftl b/config/alfresco/templates/webscripts/org/alfresco/repository/bulkfilesystemimport/ui.get.html.ftl index c56de0568b..659ef4c20a 100644 --- a/config/alfresco/templates/webscripts/org/alfresco/repository/bulkfilesystemimport/ui.get.html.ftl +++ b/config/alfresco/templates/webscripts/org/alfresco/repository/bulkfilesystemimport/ui.get.html.ftl @@ -81,6 +81,9 @@   + + (unchecked means rules are enabled during the import) + (unchecked means skip files that already exist in the repository) diff --git a/source/java/org/alfresco/repo/web/scripts/bulkimport/AbstractBulkFileSystemImportWebScript.java b/source/java/org/alfresco/repo/web/scripts/bulkimport/AbstractBulkFileSystemImportWebScript.java index 05fac888b1..371c940483 100644 --- a/source/java/org/alfresco/repo/web/scripts/bulkimport/AbstractBulkFileSystemImportWebScript.java +++ b/source/java/org/alfresco/repo/web/scripts/bulkimport/AbstractBulkFileSystemImportWebScript.java @@ -30,11 +30,14 @@ import java.net.UnknownHostException; import java.util.Arrays; import java.util.Date; +import org.alfresco.repo.bulkimport.BulkFilesystemImporter; import org.alfresco.repo.model.Repository; import org.alfresco.service.cmr.model.FileFolderService; import org.alfresco.service.cmr.model.FileInfo; import org.alfresco.service.cmr.model.FileNotFoundException; import org.alfresco.service.cmr.repository.NodeRef; +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; import org.springframework.extensions.webscripts.DeclarativeWebScript; import org.springframework.extensions.webscripts.WebScriptException; @@ -43,6 +46,8 @@ import org.springframework.extensions.webscripts.WebScriptException; */ public class AbstractBulkFileSystemImportWebScript extends DeclarativeWebScript { + protected static final Log logger = LogFactory.getLog(BulkFilesystemImporter.class); + protected static final String WEB_SCRIPT_URI_BULK_FILESYSTEM_IMPORT_STATUS = "/bulk/import/filesystem/status"; protected static final String PARAMETER_TARGET_NODEREF = "targetNodeRef"; @@ -55,13 +60,15 @@ public class AbstractBulkFileSystemImportWebScript extends DeclarativeWebScript protected static final String PARAMETER_REPLACE_EXISTING = "replaceExisting"; protected static final String PARAMETER_VALUE_REPLACE_EXISTING = "replaceExisting"; protected static final String PARAMETER_SOURCE_DIRECTORY = "sourceDirectory"; - + protected static final String PARAMETER_DISABLE_RULES = "disableRules"; + protected static final String PARAMETER_VALUE_DISABLE_RULES = "disableRules"; + protected static final String IMPORT_ALREADY_IN_PROGRESS_MODEL_KEY = "importInProgress"; protected static final String IMPORT_ALREADY_IN_PROGRESS_ERROR_KEY ="bfsit.error.importAlreadyInProgress"; protected static final String PARAMETER_BATCH_SIZE = "batchSize"; protected static final String PARAMETER_NUM_THREADS = "numThreads"; - + protected FileFolderService fileFolderService; protected Repository repository; diff --git a/source/java/org/alfresco/repo/web/scripts/bulkimport/copy/BulkFilesystemImportWebScript.java b/source/java/org/alfresco/repo/web/scripts/bulkimport/copy/BulkFilesystemImportWebScript.java index 6ab39babf4..5d5a90942c 100644 --- a/source/java/org/alfresco/repo/web/scripts/bulkimport/copy/BulkFilesystemImportWebScript.java +++ b/source/java/org/alfresco/repo/web/scripts/bulkimport/copy/BulkFilesystemImportWebScript.java @@ -36,8 +36,6 @@ import org.alfresco.repo.bulkimport.impl.StreamingNodeImporterFactory; import org.alfresco.repo.web.scripts.bulkimport.AbstractBulkFileSystemImportWebScript; import org.alfresco.service.cmr.model.FileNotFoundException; import org.alfresco.service.cmr.repository.NodeRef; -import org.apache.commons.logging.Log; -import org.apache.commons.logging.LogFactory; import org.springframework.extensions.surf.util.I18NUtil; import org.springframework.extensions.webscripts.Cache; import org.springframework.extensions.webscripts.Status; @@ -51,8 +49,6 @@ import org.springframework.extensions.webscripts.WebScriptRequest; */ public class BulkFilesystemImportWebScript extends AbstractBulkFileSystemImportWebScript { - private final static Log logger = LogFactory.getLog(BulkFilesystemImportWebScript.class); - private MultiThreadedBulkFilesystemImporter bulkImporter; private StreamingNodeImporterFactory nodeImporterFactory; @@ -79,6 +75,7 @@ public class BulkFilesystemImportWebScript extends AbstractBulkFileSystemImportW String replaceExistingStr = null; String batchSizeStr = null; String numThreadsStr = null; + String disableRulesStr = null; cache.setNeverCache(true); @@ -91,6 +88,7 @@ public class BulkFilesystemImportWebScript extends AbstractBulkFileSystemImportW boolean replaceExisting = false; int batchSize = bulkImporter.getDefaultBatchSize(); int numThreads = bulkImporter.getDefaultNumThreads(); + boolean disableRules = false; // Retrieve, validate and convert parameters targetNodeRefStr = request.getParameter(PARAMETER_TARGET_NODEREF); @@ -99,6 +97,7 @@ public class BulkFilesystemImportWebScript extends AbstractBulkFileSystemImportW replaceExistingStr = request.getParameter(PARAMETER_REPLACE_EXISTING); batchSizeStr = request.getParameter(PARAMETER_BATCH_SIZE); numThreadsStr = request.getParameter(PARAMETER_NUM_THREADS); + disableRulesStr = request.getParameter(PARAMETER_DISABLE_RULES); targetNodeRef = getTargetNodeRef(targetNodeRefStr, targetPath); @@ -114,9 +113,13 @@ public class BulkFilesystemImportWebScript extends AbstractBulkFileSystemImportW replaceExisting = PARAMETER_VALUE_REPLACE_EXISTING.equals(replaceExistingStr); } + if (disableRulesStr != null && disableRulesStr.trim().length() > 0) + { + disableRules = PARAMETER_VALUE_DISABLE_RULES.equals(disableRulesStr); + } + // Initiate the import NodeImporter nodeImporter = nodeImporterFactory.getNodeImporter(sourceDirectory); - //bulkImporter.asyncBulkImport(targetNodeRef, nodeImporter, replaceExisting); BulkImportParameters bulkImportParameters = new BulkImportParameters(); if (numThreadsStr != null && numThreadsStr.trim().length() > 0) @@ -155,6 +158,7 @@ public class BulkFilesystemImportWebScript extends AbstractBulkFileSystemImportW bulkImportParameters.setReplaceExisting(replaceExisting); bulkImportParameters.setTarget(targetNodeRef); + bulkImportParameters.setDisableRulesService(disableRules); bulkImporter.asyncBulkImport(bulkImportParameters, nodeImporter);