From 885ef4faaa65d70495d192de5b516b8648e05139 Mon Sep 17 00:00:00 2001 From: Ross Gale Date: Thu, 23 Nov 2017 11:29:23 +0000 Subject: [PATCH 1/5] RM-5878 add fix and patch for saved search mnt (MNT-15575) --- .../model/recordsModel.xml | 4 + .../patch/rm-patch-v23-context.xml | 10 +++ .../rm-service-context.xml | 1 + .../model/RecordsManagementModel.java | 23 +++-- .../patch/v23/RMv23SavedSearchesPatch.java | 70 +++++++++++++++ .../RecordsManagementSearchServiceImpl.java | 18 +++- .../v23/RMv23SavedSearchesPatchUnitTest.java | 89 +++++++++++++++++++ 7 files changed, 207 insertions(+), 8 deletions(-) create mode 100644 rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/patch/v23/RMv23SavedSearchesPatch.java create mode 100755 rm-server/unit-test/java/org/alfresco/module/org_alfresco_module_rm/patch/v23/RMv23SavedSearchesPatchUnitTest.java diff --git a/rm-server/config/alfresco/module/org_alfresco_module_rm/model/recordsModel.xml b/rm-server/config/alfresco/module/org_alfresco_module_rm/model/recordsModel.xml index 8cbdbed4ff..480311488f 100644 --- a/rm-server/config/alfresco/module/org_alfresco_module_rm/model/recordsModel.xml +++ b/rm-server/config/alfresco/module/org_alfresco_module_rm/model/recordsModel.xml @@ -699,6 +699,10 @@ + + Saved search + + Vital Record Definition diff --git a/rm-server/config/alfresco/module/org_alfresco_module_rm/patch/rm-patch-v23-context.xml b/rm-server/config/alfresco/module/org_alfresco_module_rm/patch/rm-patch-v23-context.xml index 1600a1b836..b1e33c4ec4 100644 --- a/rm-server/config/alfresco/module/org_alfresco_module_rm/patch/rm-patch-v23-context.xml +++ b/rm-server/config/alfresco/module/org_alfresco_module_rm/patch/rm-patch-v23-context.xml @@ -34,4 +34,14 @@ + + + + + + + + \ No newline at end of file diff --git a/rm-server/config/alfresco/module/org_alfresco_module_rm/rm-service-context.xml b/rm-server/config/alfresco/module/org_alfresco_module_rm/rm-service-context.xml index 6b39ea2065..f4834f93a5 100644 --- a/rm-server/config/alfresco/module/org_alfresco_module_rm/rm-service-context.xml +++ b/rm-server/config/alfresco/module/org_alfresco_module_rm/rm-service-context.xml @@ -327,6 +327,7 @@ ]]> + diff --git a/rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/model/RecordsManagementModel.java b/rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/model/RecordsManagementModel.java index d57cc2f818..5e45514ee0 100644 --- a/rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/model/RecordsManagementModel.java +++ b/rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/model/RecordsManagementModel.java @@ -16,6 +16,7 @@ * You should have received a copy of the GNU Lesser General Public License * along with Alfresco. If not, see . */ + package org.alfresco.module.org_alfresco_module_rm.model; import org.alfresco.service.namespace.QName; @@ -149,7 +150,9 @@ public interface RecordsManagementModel extends RecordsManagementCustomModel QName PROP_DISPOSITION_ACTION_ID = QName.createQName(RM_URI, "dispositionActionId"); QName PROP_DISPOSITION_ACTION = QName.createQName(RM_URI, "dispositionAction"); QName PROP_DISPOSITION_AS_OF = QName.createQName(RM_URI, "dispositionAsOf"); - /** A flag indicating that the "disposition as of" date has been manually set and shouldn't be changed. */ + /** + * A flag indicating that the "disposition as of" date has been manually set and shouldn't be changed. + */ QName PROP_MANUALLY_SET_AS_OF = QName.createQName(RM_URI, "manuallySetAsOf"); QName PROP_DISPOSITION_EVENTS_ELIGIBLE = QName.createQName(RM_URI, "dispositionEventsEligible"); QName PROP_DISPOSITION_ACTION_STARTED_AT = QName.createQName(RM_URI, "dispositionActionStartedAt"); @@ -229,13 +232,16 @@ public interface RecordsManagementModel extends RecordsManagementCustomModel QName PROP_RS_DISPOSITION_EVENTS_ELIGIBLE = QName.createQName(RM_URI, "recordSearchDispositionEventsEligible"); QName PROP_RS_DISPOSITION_EVENTS = QName.createQName(RM_URI, "recordSearchDispositionEvents"); QName PROP_RS_VITAL_RECORD_REVIEW_PERIOD = QName.createQName(RM_URI, "recordSearchVitalRecordReviewPeriod"); - QName PROP_RS_VITAL_RECORD_REVIEW_PERIOD_EXPRESSION = QName.createQName(RM_URI, "recordSearchVitalRecordReviewPeriodExpression"); + QName PROP_RS_VITAL_RECORD_REVIEW_PERIOD_EXPRESSION = QName.createQName(RM_URI, + "recordSearchVitalRecordReviewPeriodExpression"); QName PROP_RS_DISPOSITION_PERIOD = QName.createQName(RM_URI, "recordSearchDispositionPeriod"); QName PROP_RS_DISPOSITION_PERIOD_EXPRESSION = QName.createQName(RM_URI, "recordSearchDispositionPeriodExpression"); QName PROP_RS_HAS_DISPOITION_SCHEDULE = QName.createQName(RM_URI, "recordSearchHasDispositionSchedule"); QName PROP_RS_DISPOITION_INSTRUCTIONS = QName.createQName(RM_URI, "recordSearchDispositionInstructions"); QName PROP_RS_DISPOITION_AUTHORITY = QName.createQName(RM_URI, "recordSearchDispositionAuthority"); - /** @depreacted as of 2.2, because disposable items can now be in multiple holds */ + /** + * @depreacted as of 2.2, because disposable items can now be in multiple holds + */ @Deprecated QName PROP_RS_HOLD_REASON = QName.createQName(RM_URI, "recordSearchHoldReason"); @@ -245,9 +251,12 @@ public interface RecordsManagementModel extends RecordsManagementCustomModel // Extended security aspect // @deprecated as of 2.5, because of performance issues - @Deprecated QName ASPECT_EXTENDED_SECURITY = QName.createQName(RM_URI, "extendedSecurity"); - @Deprecated QName PROP_READERS = QName.createQName(RM_URI, "readers"); - @Deprecated QName PROP_WRITERS = QName.createQName(RM_URI, "writers"); + @Deprecated + QName ASPECT_EXTENDED_SECURITY = QName.createQName(RM_URI, "extendedSecurity"); + @Deprecated + QName PROP_READERS = QName.createQName(RM_URI, "readers"); + @Deprecated + QName PROP_WRITERS = QName.createQName(RM_URI, "writers"); // Originating details of a record QName ASPECT_RECORD_ORIGINATING_DETAILS = QName.createQName(RM_URI, "recordOriginatingDetails"); @@ -269,4 +278,6 @@ public interface RecordsManagementModel extends RecordsManagementCustomModel // Countable aspect QName ASPECT_COUNTABLE = QName.createQName(RM_URI, "countable"); QName PROP_COUNT = QName.createQName(RM_URI, "count"); + + QName SAVED_SEARCH_ASPECT = QName.createQName(RM_URI, "savedSearch"); } diff --git a/rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/patch/v23/RMv23SavedSearchesPatch.java b/rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/patch/v23/RMv23SavedSearchesPatch.java new file mode 100644 index 0000000000..100cc60e81 --- /dev/null +++ b/rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/patch/v23/RMv23SavedSearchesPatch.java @@ -0,0 +1,70 @@ +/* + * Copyright (C) 2005-2014 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.module.org_alfresco_module_rm.patch.v23; + +import org.alfresco.module.org_alfresco_module_rm.patch.AbstractModulePatch; +import org.alfresco.module.org_alfresco_module_rm.search.RecordsManagementSearchService; +import org.alfresco.module.org_alfresco_module_rm.search.SavedSearchDetails; +import org.alfresco.service.cmr.repository.NodeService; + +import static org.alfresco.module.org_alfresco_module_rm.model.RecordsManagementModel.SAVED_SEARCH_ASPECT; + +/** + * RM v2.3 patch that adds the saved search aspect. + * + * @author Ross Gale + * @since 2.3 + */ +public class RMv23SavedSearchesPatch extends AbstractModulePatch +{ + /** records management search service */ + private RecordsManagementSearchService recordsManagementSearchService; + + /** node service */ + private NodeService nodeService; + + /** + * @param recordsManagementSearchService records management search service + */ + public void setRecordsManagementSearchService(RecordsManagementSearchService recordsManagementSearchService) + { + this.recordsManagementSearchService = recordsManagementSearchService; + } + + /** + * @param nodeService node service + */ + public void setNodeService(NodeService nodeService) + { + this.nodeService = nodeService; + } + + /** + * @see AbstractModulePatch#applyInternal() + */ + @Override + public void applyInternal() + { + for(SavedSearchDetails savedSearchDetails : recordsManagementSearchService.getSavedSearches("rm")) + { + nodeService.addAspect(savedSearchDetails.getNodeRef(),SAVED_SEARCH_ASPECT,null); + } + } + +} diff --git a/rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/search/RecordsManagementSearchServiceImpl.java b/rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/search/RecordsManagementSearchServiceImpl.java index b3c0dba0f5..c4204f806b 100644 --- a/rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/search/RecordsManagementSearchServiceImpl.java +++ b/rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/search/RecordsManagementSearchServiceImpl.java @@ -34,6 +34,7 @@ import org.alfresco.service.cmr.repository.ChildAssociationRef; import org.alfresco.service.cmr.repository.ContentReader; import org.alfresco.service.cmr.repository.ContentWriter; import org.alfresco.service.cmr.repository.NodeRef; +import org.alfresco.service.cmr.repository.NodeService; import org.alfresco.service.cmr.repository.StoreRef; import org.alfresco.service.cmr.search.ResultSet; import org.alfresco.service.cmr.search.SearchParameters; @@ -49,6 +50,8 @@ import org.json.JSONException; import org.json.JSONObject; import org.springframework.extensions.surf.util.I18NUtil; +import static org.alfresco.module.org_alfresco_module_rm.model.RecordsManagementModel.SAVED_SEARCH_ASPECT; + /** * Records management search service implementation * @@ -73,6 +76,9 @@ public class RecordsManagementSearchServiceImpl implements RecordsManagementSear /** Namespace service */ private NamespaceService namespaceService; + /** Node service */ + private NodeService nodeService; + /** List of report details */ private List reports = new ArrayList(13); @@ -108,7 +114,15 @@ public class RecordsManagementSearchServiceImpl implements RecordsManagementSear this.namespaceService = namespaceService; } - /** + /** + * @param nodeService Node service + */ + public void setNodeService(NodeService nodeService) + { + this.nodeService = nodeService; + } + + /** * @param reportsJSON */ public void setReportsJSON(String reportsJSON) @@ -520,7 +534,7 @@ public class RecordsManagementSearchServiceImpl implements RecordsManagementSear } }, AuthenticationUtil.getSystemUserName()); } - + nodeService.addAspect(searchNode, SAVED_SEARCH_ASPECT, null); // Write the JSON content to search node final NodeRef writableSearchNode = searchNode; AuthenticationUtil.runAs(new RunAsWork() diff --git a/rm-server/unit-test/java/org/alfresco/module/org_alfresco_module_rm/patch/v23/RMv23SavedSearchesPatchUnitTest.java b/rm-server/unit-test/java/org/alfresco/module/org_alfresco_module_rm/patch/v23/RMv23SavedSearchesPatchUnitTest.java new file mode 100755 index 0000000000..2ad10354b7 --- /dev/null +++ b/rm-server/unit-test/java/org/alfresco/module/org_alfresco_module_rm/patch/v23/RMv23SavedSearchesPatchUnitTest.java @@ -0,0 +1,89 @@ +/* + * Copyright (C) 2005-2014 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.module.org_alfresco_module_rm.patch.v23; + + +import org.alfresco.module.org_alfresco_module_rm.search.RecordsManagementSearchServiceImpl; +import org.alfresco.module.org_alfresco_module_rm.search.SavedSearchDetails; +import org.alfresco.module.org_alfresco_module_rm.test.util.BaseUnitTest; +import org.alfresco.repo.version.NodeServiceImpl; +import org.alfresco.service.cmr.repository.NodeRef; +import org.alfresco.service.cmr.repository.NodeService; +import org.junit.Test; +import org.mockito.InjectMocks; +import org.mockito.Mock; +import org.mockito.MockitoAnnotations; + +import java.util.ArrayList; +import java.util.List; + +import static org.alfresco.module.org_alfresco_module_rm.model.RecordsManagementModel.SAVED_SEARCH_ASPECT; +import static org.mockito.Mockito.mockingDetails; +import static org.mockito.Mockito.times; +import static org.mockito.Mockito.verify; +import static org.mockito.Mockito.when; + +/** + * patch.v23 unit test + * + * @author Ross Gale + * @since 2.3 + */ +public class RMv23SavedSearchesPatchUnitTest// extends BaseUnitTest +{ + + @Mock + private NodeService nodeService; + + @Mock + private RecordsManagementSearchServiceImpl recordsManagementSearchService; + + @Mock + private SavedSearchDetails mockSavedSearchDetails1, mockSavedSearchDetails2; + + @InjectMocks + private RMv23SavedSearchesPatch patch; + + /** + * Given that I am upgrading an existing repository to v2.2 + * When I execute the patch + * Then the capabilities are updated + */ + @Test + public void executePatch() + { + MockitoAnnotations.initMocks(this); + NodeRef noderef1 = new NodeRef("foo://123/456"); + NodeRef noderef2 = new NodeRef("bar://123/456"); + List searches = new ArrayList<>(); + searches.add(mockSavedSearchDetails1); + searches.add(mockSavedSearchDetails2); + when(mockSavedSearchDetails1.getNodeRef()).thenReturn(noderef1); + when(mockSavedSearchDetails2.getNodeRef()).thenReturn(noderef2); + when(recordsManagementSearchService.getSavedSearches("rm")).thenReturn(searches); + + // execute patch + patch.applyInternal(); + + verify(nodeService, times(1)).addAspect(noderef1,SAVED_SEARCH_ASPECT,null); + verify(nodeService, times(1)).addAspect(noderef2, SAVED_SEARCH_ASPECT, null); + } + +} + From 379b3a2257759ae64f8a840672e81e59d92322e6 Mon Sep 17 00:00:00 2001 From: Ross Gale Date: Tue, 28 Nov 2017 10:05:36 +0000 Subject: [PATCH 2/5] RM-5878 adding config so patch will run on start up, fixing issue caused by missing maven dependancy for jcommander 1.66 --- .../patch/rm-patch-context.xml | 2 +- rm-server/pom.xml | 16 +++------------- .../patch/v23/RMv23SavedSearchesPatch.java | 7 +++++-- 3 files changed, 9 insertions(+), 16 deletions(-) diff --git a/rm-server/config/alfresco/module/org_alfresco_module_rm/patch/rm-patch-context.xml b/rm-server/config/alfresco/module/org_alfresco_module_rm/patch/rm-patch-context.xml index 6e089b6f92..5db93ad555 100755 --- a/rm-server/config/alfresco/module/org_alfresco_module_rm/patch/rm-patch-context.xml +++ b/rm-server/config/alfresco/module/org_alfresco_module_rm/patch/rm-patch-context.xml @@ -9,7 +9,7 @@ - + diff --git a/rm-server/pom.xml b/rm-server/pom.xml index 8803399995..30a94269a3 100644 --- a/rm-server/pom.xml +++ b/rm-server/pom.xml @@ -79,16 +79,6 @@ maven-surefire-plugin - - - usedefaultlisteners - false - - - listener - org.uncommons.reportng.HTMLReporter, org.uncommons.reportng.JUnitXMLReporter - - ${project.build.testOutputDirectory}/testng.xml @@ -268,9 +258,9 @@ - org.uncommons - reportng - 1.1.4 + org.testng + testng + 6.8.8 test diff --git a/rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/patch/v23/RMv23SavedSearchesPatch.java b/rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/patch/v23/RMv23SavedSearchesPatch.java index 100cc60e81..8b56d00949 100644 --- a/rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/patch/v23/RMv23SavedSearchesPatch.java +++ b/rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/patch/v23/RMv23SavedSearchesPatch.java @@ -22,6 +22,8 @@ import org.alfresco.module.org_alfresco_module_rm.patch.AbstractModulePatch; import org.alfresco.module.org_alfresco_module_rm.search.RecordsManagementSearchService; import org.alfresco.module.org_alfresco_module_rm.search.SavedSearchDetails; import org.alfresco.service.cmr.repository.NodeService; +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; import static org.alfresco.module.org_alfresco_module_rm.model.RecordsManagementModel.SAVED_SEARCH_ASPECT; @@ -39,6 +41,8 @@ public class RMv23SavedSearchesPatch extends AbstractModulePatch /** node service */ private NodeService nodeService; + private static final String RM_SITE_ID = "rm"; + /** * @param recordsManagementSearchService records management search service */ @@ -61,10 +65,9 @@ public class RMv23SavedSearchesPatch extends AbstractModulePatch @Override public void applyInternal() { - for(SavedSearchDetails savedSearchDetails : recordsManagementSearchService.getSavedSearches("rm")) + for(SavedSearchDetails savedSearchDetails : recordsManagementSearchService.getSavedSearches(RM_SITE_ID)) { nodeService.addAspect(savedSearchDetails.getNodeRef(),SAVED_SEARCH_ASPECT,null); } } - } From 8ce3dd6126ac294feac609cb92c2a23066bd6295 Mon Sep 17 00:00:00 2001 From: Ross Gale Date: Wed, 29 Nov 2017 14:05:39 +0000 Subject: [PATCH 3/5] RM-5878 code review changes --- pom.xml | 5 +++ rm-automation/pom.xml | 2 +- rm-server/pom.xml | 12 +++---- .../model/RecordsManagementModel.java | 2 +- .../patch/v20/RMv2SavedSearchPatch.java | 9 +++-- .../patch/v23/RMv23SavedSearchesPatch.java | 14 ++++---- .../RecordsManagementSearchServiceImpl.java | 5 +-- .../v23/RMv23SavedSearchesPatchUnitTest.java | 33 ++++++++----------- 8 files changed, 40 insertions(+), 42 deletions(-) diff --git a/pom.xml b/pom.xml index 70593388a6..649a8bbc0b 100644 --- a/pom.xml +++ b/pom.xml @@ -74,6 +74,11 @@ reflections 0.9.10 + + org.testng + testng + 6.8.8 + diff --git a/rm-automation/pom.xml b/rm-automation/pom.xml index 02900fdb16..a7861da0f2 100644 --- a/rm-automation/pom.xml +++ b/rm-automation/pom.xml @@ -150,7 +150,7 @@ org.testng testng - 6.8.8 + test ru.yandex.qatools.htmlelements diff --git a/rm-server/pom.xml b/rm-server/pom.xml index 30a94269a3..7837927177 100644 --- a/rm-server/pom.xml +++ b/rm-server/pom.xml @@ -243,6 +243,12 @@ tests test + + + org.testng + testng + test + postgresql @@ -257,12 +263,6 @@ test - - org.testng - testng - 6.8.8 - test - com.google.inject guice diff --git a/rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/model/RecordsManagementModel.java b/rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/model/RecordsManagementModel.java index 5e45514ee0..6c2ad22328 100644 --- a/rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/model/RecordsManagementModel.java +++ b/rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/model/RecordsManagementModel.java @@ -279,5 +279,5 @@ public interface RecordsManagementModel extends RecordsManagementCustomModel QName ASPECT_COUNTABLE = QName.createQName(RM_URI, "countable"); QName PROP_COUNT = QName.createQName(RM_URI, "count"); - QName SAVED_SEARCH_ASPECT = QName.createQName(RM_URI, "savedSearch"); + QName ASPECT_SAVED_SEARCH = QName.createQName(RM_URI, "savedSearch"); } diff --git a/rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/patch/v20/RMv2SavedSearchPatch.java b/rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/patch/v20/RMv2SavedSearchPatch.java index 636e6f1c56..b1519b5c3c 100644 --- a/rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/patch/v20/RMv2SavedSearchPatch.java +++ b/rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/patch/v20/RMv2SavedSearchPatch.java @@ -32,6 +32,8 @@ import org.alfresco.service.cmr.repository.NodeRef; import org.alfresco.service.cmr.site.SiteService; import org.springframework.beans.factory.BeanNameAware; +import static org.alfresco.module.org_alfresco_module_rm.model.rma.type.RmSiteType.DEFAULT_SITE_NAME; + /** * RM v2.0 Saved Search Patch * @@ -42,9 +44,6 @@ import org.springframework.beans.factory.BeanNameAware; public class RMv2SavedSearchPatch extends ModulePatchComponent implements BeanNameAware, RecordsManagementModel, DOD5015Model { - /** RM site id */ - private static final String RM_SITE_ID = "rm"; - /** Records management search service */ private RecordsManagementSearchService recordsManagementSearchService; @@ -84,10 +83,10 @@ public class RMv2SavedSearchPatch extends ModulePatchComponent @Override protected void executePatch() { - if (siteService.getSite(RM_SITE_ID) != null) + if (siteService.getSite(DEFAULT_SITE_NAME) != null) { // get the saved searches - List savedSearches = recordsManagementSearchService.getSavedSearches(RM_SITE_ID); + List savedSearches = recordsManagementSearchService.getSavedSearches(DEFAULT_SITE_NAME); if (LOGGER.isDebugEnabled()) { diff --git a/rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/patch/v23/RMv23SavedSearchesPatch.java b/rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/patch/v23/RMv23SavedSearchesPatch.java index 8b56d00949..099849e9dc 100644 --- a/rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/patch/v23/RMv23SavedSearchesPatch.java +++ b/rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/patch/v23/RMv23SavedSearchesPatch.java @@ -18,14 +18,14 @@ */ package org.alfresco.module.org_alfresco_module_rm.patch.v23; +import static org.alfresco.module.org_alfresco_module_rm.model.RecordsManagementModel.ASPECT_SAVED_SEARCH; +import static org.alfresco.module.org_alfresco_module_rm.model.rma.type.RmSiteType.DEFAULT_SITE_NAME; + import org.alfresco.module.org_alfresco_module_rm.patch.AbstractModulePatch; import org.alfresco.module.org_alfresco_module_rm.search.RecordsManagementSearchService; import org.alfresco.module.org_alfresco_module_rm.search.SavedSearchDetails; import org.alfresco.service.cmr.repository.NodeService; -import org.apache.commons.logging.Log; -import org.apache.commons.logging.LogFactory; -import static org.alfresco.module.org_alfresco_module_rm.model.RecordsManagementModel.SAVED_SEARCH_ASPECT; /** * RM v2.3 patch that adds the saved search aspect. @@ -41,8 +41,6 @@ public class RMv23SavedSearchesPatch extends AbstractModulePatch /** node service */ private NodeService nodeService; - private static final String RM_SITE_ID = "rm"; - /** * @param recordsManagementSearchService records management search service */ @@ -60,14 +58,14 @@ public class RMv23SavedSearchesPatch extends AbstractModulePatch } /** - * @see AbstractModulePatch#applyInternal() + * Retrieves all saved searches for the records management site and adds ASPECT_SAVED_SEARCH */ @Override public void applyInternal() { - for(SavedSearchDetails savedSearchDetails : recordsManagementSearchService.getSavedSearches(RM_SITE_ID)) + for(SavedSearchDetails savedSearchDetails : recordsManagementSearchService.getSavedSearches(DEFAULT_SITE_NAME)) { - nodeService.addAspect(savedSearchDetails.getNodeRef(),SAVED_SEARCH_ASPECT,null); + nodeService.addAspect(savedSearchDetails.getNodeRef(), ASPECT_SAVED_SEARCH,null); } } } diff --git a/rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/search/RecordsManagementSearchServiceImpl.java b/rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/search/RecordsManagementSearchServiceImpl.java index c4204f806b..cde2540590 100644 --- a/rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/search/RecordsManagementSearchServiceImpl.java +++ b/rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/search/RecordsManagementSearchServiceImpl.java @@ -18,6 +18,8 @@ */ package org.alfresco.module.org_alfresco_module_rm.search; +import static org.alfresco.module.org_alfresco_module_rm.model.RecordsManagementModel.ASPECT_SAVED_SEARCH; + import java.util.ArrayList; import java.util.List; import java.util.Map.Entry; @@ -50,7 +52,6 @@ import org.json.JSONException; import org.json.JSONObject; import org.springframework.extensions.surf.util.I18NUtil; -import static org.alfresco.module.org_alfresco_module_rm.model.RecordsManagementModel.SAVED_SEARCH_ASPECT; /** * Records management search service implementation @@ -534,7 +535,7 @@ public class RecordsManagementSearchServiceImpl implements RecordsManagementSear } }, AuthenticationUtil.getSystemUserName()); } - nodeService.addAspect(searchNode, SAVED_SEARCH_ASPECT, null); + nodeService.addAspect(searchNode, ASPECT_SAVED_SEARCH, null); // Write the JSON content to search node final NodeRef writableSearchNode = searchNode; AuthenticationUtil.runAs(new RunAsWork() diff --git a/rm-server/unit-test/java/org/alfresco/module/org_alfresco_module_rm/patch/v23/RMv23SavedSearchesPatchUnitTest.java b/rm-server/unit-test/java/org/alfresco/module/org_alfresco_module_rm/patch/v23/RMv23SavedSearchesPatchUnitTest.java index 2ad10354b7..a73190ab7d 100755 --- a/rm-server/unit-test/java/org/alfresco/module/org_alfresco_module_rm/patch/v23/RMv23SavedSearchesPatchUnitTest.java +++ b/rm-server/unit-test/java/org/alfresco/module/org_alfresco_module_rm/patch/v23/RMv23SavedSearchesPatchUnitTest.java @@ -18,11 +18,17 @@ */ package org.alfresco.module.org_alfresco_module_rm.patch.v23; +import static java.util.Arrays.asList; +import static org.alfresco.module.org_alfresco_module_rm.model.RecordsManagementModel.ASPECT_SAVED_SEARCH; +import static org.mockito.Mockito.times; +import static org.mockito.Mockito.verify; +import static org.mockito.Mockito.when; + +import java.util.ArrayList; +import java.util.List; import org.alfresco.module.org_alfresco_module_rm.search.RecordsManagementSearchServiceImpl; import org.alfresco.module.org_alfresco_module_rm.search.SavedSearchDetails; -import org.alfresco.module.org_alfresco_module_rm.test.util.BaseUnitTest; -import org.alfresco.repo.version.NodeServiceImpl; import org.alfresco.service.cmr.repository.NodeRef; import org.alfresco.service.cmr.repository.NodeService; import org.junit.Test; @@ -30,22 +36,13 @@ import org.mockito.InjectMocks; import org.mockito.Mock; import org.mockito.MockitoAnnotations; -import java.util.ArrayList; -import java.util.List; - -import static org.alfresco.module.org_alfresco_module_rm.model.RecordsManagementModel.SAVED_SEARCH_ASPECT; -import static org.mockito.Mockito.mockingDetails; -import static org.mockito.Mockito.times; -import static org.mockito.Mockito.verify; -import static org.mockito.Mockito.when; - /** * patch.v23 unit test * * @author Ross Gale * @since 2.3 */ -public class RMv23SavedSearchesPatchUnitTest// extends BaseUnitTest +public class RMv23SavedSearchesPatchUnitTest { @Mock @@ -61,9 +58,9 @@ public class RMv23SavedSearchesPatchUnitTest// extends BaseUnitTest private RMv23SavedSearchesPatch patch; /** - * Given that I am upgrading an existing repository to v2.2 + * Given that I am upgrading an existing repository to v2.3 * When I execute the patch - * Then the capabilities are updated + * Then any existing rm saved searches will have the saved search aspect applied */ @Test public void executePatch() @@ -71,9 +68,7 @@ public class RMv23SavedSearchesPatchUnitTest// extends BaseUnitTest MockitoAnnotations.initMocks(this); NodeRef noderef1 = new NodeRef("foo://123/456"); NodeRef noderef2 = new NodeRef("bar://123/456"); - List searches = new ArrayList<>(); - searches.add(mockSavedSearchDetails1); - searches.add(mockSavedSearchDetails2); + List searches = asList(mockSavedSearchDetails1, mockSavedSearchDetails2); when(mockSavedSearchDetails1.getNodeRef()).thenReturn(noderef1); when(mockSavedSearchDetails2.getNodeRef()).thenReturn(noderef2); when(recordsManagementSearchService.getSavedSearches("rm")).thenReturn(searches); @@ -81,8 +76,8 @@ public class RMv23SavedSearchesPatchUnitTest// extends BaseUnitTest // execute patch patch.applyInternal(); - verify(nodeService, times(1)).addAspect(noderef1,SAVED_SEARCH_ASPECT,null); - verify(nodeService, times(1)).addAspect(noderef2, SAVED_SEARCH_ASPECT, null); + verify(nodeService, times(1)).addAspect(noderef1, ASPECT_SAVED_SEARCH, null); + verify(nodeService, times(1)).addAspect(noderef2, ASPECT_SAVED_SEARCH, null); } } From f76a52d4b96e7b10cd79c2c451e534c5c5e2123c Mon Sep 17 00:00:00 2001 From: Ross Gale Date: Thu, 30 Nov 2017 09:28:53 +0000 Subject: [PATCH 4/5] Update RMv23SavedSearchesPatch.java --- .../patch/v23/RMv23SavedSearchesPatch.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/patch/v23/RMv23SavedSearchesPatch.java b/rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/patch/v23/RMv23SavedSearchesPatch.java index 099849e9dc..4233420911 100644 --- a/rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/patch/v23/RMv23SavedSearchesPatch.java +++ b/rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/patch/v23/RMv23SavedSearchesPatch.java @@ -35,7 +35,7 @@ import org.alfresco.service.cmr.repository.NodeService; */ public class RMv23SavedSearchesPatch extends AbstractModulePatch { - /** records management search service */ + /** records management search service */ private RecordsManagementSearchService recordsManagementSearchService; /** node service */ @@ -47,7 +47,7 @@ public class RMv23SavedSearchesPatch extends AbstractModulePatch public void setRecordsManagementSearchService(RecordsManagementSearchService recordsManagementSearchService) { this.recordsManagementSearchService = recordsManagementSearchService; - } + } /** * @param nodeService node service From b727108789cd07856c193fe86e9241247fa294a3 Mon Sep 17 00:00:00 2001 From: Ross Gale Date: Thu, 30 Nov 2017 09:52:35 +0000 Subject: [PATCH 5/5] RM-5878 removing test scope from testng --- rm-automation/pom.xml | 1 - 1 file changed, 1 deletion(-) diff --git a/rm-automation/pom.xml b/rm-automation/pom.xml index a7861da0f2..0b8f2e9087 100644 --- a/rm-automation/pom.xml +++ b/rm-automation/pom.xml @@ -150,7 +150,6 @@ org.testng testng - test ru.yandex.qatools.htmlelements