From d755bbaf85a56bb151b61cf2c719c84834908d88 Mon Sep 17 00:00:00 2001 From: Jared Ottley Date: Mon, 16 Sep 2013 19:35:16 +0000 Subject: [PATCH] Merge recordsmanagement/DEV/DODRECERT to recordsmanagement/BRANCHES/V2.0.1.x for: RM-904: Actions are missing within Records Management Site for Record Series and its children: r51134: DOD Recert: Upgrade issues * added patch to fill in missing file plan root node reference * default site id set when retrieving saved searches git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/modules/recordsmanagement/BRANCHES/V2.0.1.x@55365 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261 --- .../org_alfresco_module_rm/log4j.properties | 1 + .../model/recordsModel.xml | 1 - .../rm-patch-context.xml | 16 +++ .../patch/RMv2FilePlanNodeRefPatch.java | 134 ++++++++++++++++++ .../patch/RMv2ModelPatch.java | 4 +- .../search/SavedSearchDetails.java | 10 +- 6 files changed, 159 insertions(+), 7 deletions(-) create mode 100644 rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/patch/RMv2FilePlanNodeRefPatch.java diff --git a/rm-server/config/alfresco/module/org_alfresco_module_rm/log4j.properties b/rm-server/config/alfresco/module/org_alfresco_module_rm/log4j.properties index 57c59d75ba..ec18e783e1 100644 --- a/rm-server/config/alfresco/module/org_alfresco_module_rm/log4j.properties +++ b/rm-server/config/alfresco/module/org_alfresco_module_rm/log4j.properties @@ -1,2 +1,3 @@ log4j.logger.org.alfresco.module.org_alfresco_module_rm.caveat=warn log4j.logger.org.alfresco.module.org_alfresco_module_rm.security.RMMethodSecurityPostProcessor=warn +log4j.logger.org.alfresco.module.org_alfresco_module_rm.patch=debug 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 0be4c0dee8..94c3a75c1a 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 @@ -576,7 +576,6 @@ - File Plan Component false diff --git a/rm-server/config/alfresco/module/org_alfresco_module_rm/rm-patch-context.xml b/rm-server/config/alfresco/module/org_alfresco_module_rm/rm-patch-context.xml index 8c0dd0e455..0a28801ddc 100644 --- a/rm-server/config/alfresco/module/org_alfresco_module_rm/rm-patch-context.xml +++ b/rm-server/config/alfresco/module/org_alfresco_module_rm/rm-patch-context.xml @@ -31,5 +31,21 @@ + + + + + + + + + + + + + + \ No newline at end of file diff --git a/rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/patch/RMv2FilePlanNodeRefPatch.java b/rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/patch/RMv2FilePlanNodeRefPatch.java new file mode 100644 index 0000000000..526b4756cb --- /dev/null +++ b/rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/patch/RMv2FilePlanNodeRefPatch.java @@ -0,0 +1,134 @@ +/* + * Copyright (C) 2005-2011 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; + +import java.util.List; + +import org.alfresco.module.org_alfresco_module_rm.RecordsManagementService; +import org.alfresco.module.org_alfresco_module_rm.dod5015.DOD5015Model; +import org.alfresco.module.org_alfresco_module_rm.model.RecordsManagementModel; +import org.alfresco.repo.domain.node.NodeDAO; +import org.alfresco.repo.domain.patch.PatchDAO; +import org.alfresco.repo.domain.qname.QNameDAO; +import org.alfresco.repo.module.AbstractModuleComponent; +import org.alfresco.repo.policy.BehaviourFilter; +import org.alfresco.service.cmr.repository.NodeRef; +import org.alfresco.service.cmr.repository.NodeService; +import org.alfresco.service.namespace.QName; +import org.alfresco.util.Pair; +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; +import org.springframework.beans.factory.BeanNameAware; + +/** + * RM v2.0 File Plan Node Ref Patch + * + * @author Roy Wetherall + */ +public class RMv2FilePlanNodeRefPatch extends AbstractModuleComponent + implements BeanNameAware, RecordsManagementModel, DOD5015Model +{ + /** Logger */ + private static Log logger = LogFactory.getLog(RMv2FilePlanNodeRefPatch.class); + + private NodeService nodeService; + private RecordsManagementService recordsManagementService; + private BehaviourFilter behaviourFilter; + private PatchDAO patchDAO; + private NodeDAO nodeDAO; + private QNameDAO qnameDAO; + + public void setNodeService(NodeService nodeService) + { + this.nodeService = nodeService; + } + + public void setRecordsManagementService(RecordsManagementService recordsManagementService) + { + this.recordsManagementService = recordsManagementService; + } + + public void setBehaviourFilter(BehaviourFilter behaviourFilter) + { + this.behaviourFilter = behaviourFilter; + } + + public void setPatchDAO(PatchDAO patchDAO) + { + this.patchDAO = patchDAO; + } + + public void setNodeDAO(NodeDAO nodeDAO) + { + this.nodeDAO = nodeDAO; + } + + public void setQnameDAO(QNameDAO qnameDAO) + { + this.qnameDAO = qnameDAO; + } + + /** + * @see org.alfresco.repo.module.AbstractModuleComponent#executeInternal() + */ + @Override + protected void executeInternal() throws Throwable + { + if (logger.isDebugEnabled() == true) + { + logger.debug("RM Module RMv2FilePlanNodeRef Patch ..."); + } + + Pair aspectPair = qnameDAO.getQName(ASPECT_FILE_PLAN_COMPONENT); + if (aspectPair != null) + { + List records = patchDAO.getNodesByAspectQNameId(aspectPair.getFirst(), 0L, patchDAO.getMaxAdmNodeID()); + + if (logger.isDebugEnabled() == true) + { + logger.debug(" ... updating " + records.size() + " items" ); + } + + behaviourFilter.disableBehaviour(); + try + { + for (Long record : records) + { + Pair recordPair = nodeDAO.getNodePair(record); + NodeRef recordNodeRef = recordPair.getSecond(); + + if (nodeService.getProperty(recordNodeRef, PROP_ROOT_NODEREF) == null) + { + nodeService.setProperty(recordNodeRef, PROP_ROOT_NODEREF, recordsManagementService.getFilePlan(recordNodeRef)); + } + } + } + finally + { + behaviourFilter.enableBehaviour(); + } + } + + if (logger.isDebugEnabled() == true) + { + logger.debug(" ... complete RM Module RMv2FilePlanNodeRef Patch"); + } + + } +} diff --git a/rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/patch/RMv2ModelPatch.java b/rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/patch/RMv2ModelPatch.java index 545d846d92..b4b1e5368b 100644 --- a/rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/patch/RMv2ModelPatch.java +++ b/rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/patch/RMv2ModelPatch.java @@ -43,7 +43,7 @@ public class RMv2ModelPatch extends AbstractModuleComponent implements BeanNameAware, RecordsManagementModel, DOD5015Model { /** Logger */ - private static Log logger = LogFactory.getLog(NotificationTemplatePatch.class); + private static Log logger = LogFactory.getLog(RMv2ModelPatch.class); private static long BATCH_SIZE = 100000L; @@ -80,7 +80,7 @@ public class RMv2ModelPatch extends AbstractModuleComponent { if (logger.isDebugEnabled() == true) { - logger.debug("RM Module NotificationTemplatePatch ..."); + logger.debug("RM Module RMv2ModelPatch ..."); } updateQName(QName.createQName(DOD_URI, "filePlan"), TYPE_FILE_PLAN, "TYPE"); diff --git a/rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/search/SavedSearchDetails.java b/rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/search/SavedSearchDetails.java index 4c0dc935a1..53d6923a03 100644 --- a/rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/search/SavedSearchDetails.java +++ b/rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/search/SavedSearchDetails.java @@ -89,6 +89,8 @@ public class SavedSearchDetails extends ReportDetails public static final String SORT = "sort"; public static final String PARAMS = "params"; + private static final String DEFAULT_SITE_ID = "rm"; + /** Site id */ private String siteId; @@ -117,11 +119,11 @@ public class SavedSearchDetails extends ReportDetails JSONObject search = new JSONObject(jsonString); // Get the site id - if (search.has(SITE_ID) == false) + String siteId = DEFAULT_SITE_ID; + if (search.has(SITE_ID) == true) { - throw new AlfrescoRuntimeException("Can not create saved search details from json, because required siteid is not present. " + jsonString); - } - String siteId = search.getString(SITE_ID); + siteId = search.getString(SITE_ID); + } // Get the name if (search.has(NAME) == false)