From b7aec4a2806119965e823b3aa2153becd60e87f4 Mon Sep 17 00:00:00 2001 From: David Caruana Date: Wed, 25 Jan 2006 15:41:19 +0000 Subject: [PATCH] Importer - allow imported node references/paths to be searched for within committed repository only or committed repository and current import transaction. git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/alfresco/HEAD/root@2202 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261 --- .../alfresco/repo/importer/ExportSourceImporter.java | 5 +++++ .../org/alfresco/repo/importer/ImporterBootstrap.java | 9 +++++++++ .../org/alfresco/repo/importer/ImporterComponent.java | 2 +- .../org/alfresco/service/cmr/view/ImporterBinding.java | 10 +++++++++- 4 files changed, 24 insertions(+), 2 deletions(-) diff --git a/source/java/org/alfresco/repo/importer/ExportSourceImporter.java b/source/java/org/alfresco/repo/importer/ExportSourceImporter.java index 751c6df4d4..95aef73326 100644 --- a/source/java/org/alfresco/repo/importer/ExportSourceImporter.java +++ b/source/java/org/alfresco/repo/importer/ExportSourceImporter.java @@ -197,6 +197,11 @@ public class ExportSourceImporter implements ImporterJobSPI return null; } + public boolean allowReferenceWithinTransaction() + { + return false; + } + }; } diff --git a/source/java/org/alfresco/repo/importer/ImporterBootstrap.java b/source/java/org/alfresco/repo/importer/ImporterBootstrap.java index 62e8b2ad94..9f1287f1bc 100644 --- a/source/java/org/alfresco/repo/importer/ImporterBootstrap.java +++ b/source/java/org/alfresco/repo/importer/ImporterBootstrap.java @@ -439,6 +439,15 @@ public class ImporterBootstrap // always use create new strategy for bootstrap import return UUID_BINDING.CREATE_NEW; } + + /* + * (non-Javadoc) + * @see org.alfresco.service.cmr.view.ImporterBinding#searchWithinTransaction() + */ + public boolean allowReferenceWithinTransaction() + { + return true; + } } /** diff --git a/source/java/org/alfresco/repo/importer/ImporterComponent.java b/source/java/org/alfresco/repo/importer/ImporterComponent.java index df677ce493..4bbd412542 100644 --- a/source/java/org/alfresco/repo/importer/ImporterComponent.java +++ b/source/java/org/alfresco/repo/importer/ImporterComponent.java @@ -632,7 +632,7 @@ public class ImporterComponent searchParameters.addStore(importedRef.context.getNodeRef().getStoreRef()); searchParameters.setLanguage(SearchService.LANGUAGE_LUCENE); searchParameters.setQuery("PATH:\"" + importedRef.value + "\""); - searchParameters.excludeDataInTheCurrentTransaction(false); + searchParameters.excludeDataInTheCurrentTransaction((binding == null) ? true : !binding.allowReferenceWithinTransaction()); ResultSet resultSet = searchService.query(searchParameters); try { diff --git a/source/java/org/alfresco/service/cmr/view/ImporterBinding.java b/source/java/org/alfresco/service/cmr/view/ImporterBinding.java index 8146a9d4d7..603bf6ce3f 100644 --- a/source/java/org/alfresco/service/cmr/view/ImporterBinding.java +++ b/source/java/org/alfresco/service/cmr/view/ImporterBinding.java @@ -41,7 +41,15 @@ public interface ImporterBinding public UUID_BINDING getUUIDBinding(); /** - * Gets a value for the specified name - to support simple name / value binding + * Gets whether the search for imported node references should search within the import + * transaction or not. + * + * @return true => search within import transaction; false => only search existing committed items + */ + public boolean allowReferenceWithinTransaction(); + + /** + * Gets a value for the specified name - to support simple name / value substitution * * @param key the value name * @return the value