From 139d83bab501304baa687cdf617811ad3231f83a Mon Sep 17 00:00:00 2001 From: Samuel Langlois Date: Wed, 31 Oct 2012 10:51:54 +0000 Subject: [PATCH 01/10] Tagged RM 2.0.1 build 147 revision 42983 as TAGS/V2.0.1 git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/modules/recordsmanagement/TAGS/V2.0.1@43258 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261 From fe73bfa98aa96c69d143281872ea9f7ab7004b55 Mon Sep 17 00:00:00 2001 From: Samuel Langlois Date: Fri, 6 Sep 2013 11:25:25 +0000 Subject: [PATCH 02/10] RM-904 Create V2.0.1.x branch from V2.0.1 tag, to host hotfixes git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/modules/recordsmanagement/BRANCHES/V2.0.1.x@55032 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261 From e4fac727bb89ff478ed63a6fa809f01fedaee734 Mon Sep 17 00:00:00 2001 From: Samuel Langlois Date: Fri, 6 Sep 2013 12:19:09 +0000 Subject: [PATCH 03/10] Incremented version label (2.0.1.1) git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/modules/recordsmanagement/BRANCHES/V2.0.1.x@55047 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261 --- gradle.properties | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle.properties b/gradle.properties index e1167a1fd1..535b36b9d6 100644 --- a/gradle.properties +++ b/gradle.properties @@ -1,5 +1,5 @@ groupid=alfresco packageName=rm -version=2.0.1 +version=2.0.1.1 build=dev alfrescoBaseVersion=4.0.2 From d755bbaf85a56bb151b61cf2c719c84834908d88 Mon Sep 17 00:00:00 2001 From: Jared Ottley Date: Mon, 16 Sep 2013 19:35:16 +0000 Subject: [PATCH 04/10] 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) From 65d6601ecd213d8165e2591b28e1303886f9ec5c Mon Sep 17 00:00:00 2001 From: Jared Ottley Date: Mon, 16 Sep 2013 19:54:13 +0000 Subject: [PATCH 05/10] Incremented version label (2.0.1.2) git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/modules/recordsmanagement/BRANCHES/V2.0.1.x@55368 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261 --- gradle.properties | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle.properties b/gradle.properties index 535b36b9d6..964b9461a1 100644 --- a/gradle.properties +++ b/gradle.properties @@ -1,5 +1,5 @@ groupid=alfresco packageName=rm -version=2.0.1.1 +version=2.0.1.2 build=dev alfrescoBaseVersion=4.0.2 From 8efc9da209d9cd059c60a62a2b79b64fefac42e9 Mon Sep 17 00:00:00 2001 From: Alan Davis Date: Tue, 17 Sep 2013 09:22:17 +0000 Subject: [PATCH 06/10] Reverse merged the version label increment as this had already been done. 55368: Incremented version label (2.0.1.2) git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/modules/recordsmanagement/BRANCHES/V2.0.1.x@55384 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261 --- gradle.properties | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle.properties b/gradle.properties index 964b9461a1..535b36b9d6 100644 --- a/gradle.properties +++ b/gradle.properties @@ -1,5 +1,5 @@ groupid=alfresco packageName=rm -version=2.0.1.2 +version=2.0.1.1 build=dev alfrescoBaseVersion=4.0.2 From c0f6b25140f18f57752567993cd7fd78d6f3a485 Mon Sep 17 00:00:00 2001 From: Jared Ottley Date: Tue, 17 Sep 2013 20:35:26 +0000 Subject: [PATCH 07/10] Merge recordsmanagement/BRANCHES/V2.0 to recordsmanagement/BRANCHES/V2.0.1.x: RM-904: Actions are missing within Records Management Site for Record Series and its children r52262: RM-757: Permission confusion after upgrade from 1.0 RM-753: Can't edit former seria untill it's vital git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/modules/recordsmanagement/BRANCHES/V2.0.1.x@55428 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261 --- .../model/recordsModel.xml | 1 - .../rm-patch-context.xml | 2 + .../RecordsManagementTypeFormFilter.java | 23 ++++++- .../patch/RMv2FilePlanNodeRefPatch.java | 68 +++++++++++++++++-- .../BroadcastVitalRecordDefinitionAction.java | 10 ++- .../vital/VitalRecordDefinitionImpl.java | 4 ++ 6 files changed, 97 insertions(+), 11 deletions(-) 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 94c3a75c1a..82097435aa 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 @@ -677,7 +677,6 @@ Review Period d:period - true none|0 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 0a28801ddc..d030f80f98 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 @@ -46,6 +46,8 @@ + + \ No newline at end of file diff --git a/rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/forms/RecordsManagementTypeFormFilter.java b/rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/forms/RecordsManagementTypeFormFilter.java index 28aa892093..986e44810e 100644 --- a/rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/forms/RecordsManagementTypeFormFilter.java +++ b/rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/forms/RecordsManagementTypeFormFilter.java @@ -26,6 +26,7 @@ import java.util.Set; import org.alfresco.module.org_alfresco_module_rm.identifier.IdentifierService; import org.alfresco.module.org_alfresco_module_rm.model.RecordsManagementModel; import org.alfresco.repo.forms.Field; +import org.alfresco.repo.forms.FieldDefinition; import org.alfresco.repo.forms.FieldGroup; import org.alfresco.repo.forms.Form; import org.alfresco.repo.forms.FormData; @@ -103,8 +104,26 @@ public class RecordsManagementTypeFormFilter extends RecordsManagementFormFilter } } - // Group fields - // groupFields(form); + // set the id + List fieldDefs = form.getFieldDefinitions(); + for (FieldDefinition fieldDef : fieldDefs) + { + String prefixName = fieldDef.getName(); + if (prefixName.equals("rma:identifier") == true) + { + String defaultId = identifierService.generateIdentifier(typeName, null); + fieldDef.setDefaultValue(defaultId); + } + // NOTE: we set these defaults in the form for backwards compatibility reasons (RM-753) + else if (prefixName.equals("rma:vitalRecordIndicator") == true) + { + fieldDef.setDefaultValue(Boolean.FALSE.toString()); + } + else if (prefixName.equals("rma:reviewPeriod") == true) + { + fieldDef.setDefaultValue("none|0"); + } + } } /** 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 index 526b4756cb..bd8175f8dd 100644 --- 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 @@ -18,11 +18,16 @@ */ package org.alfresco.module.org_alfresco_module_rm.patch; +import java.io.Serializable; import java.util.List; +import org.alfresco.module.org_alfresco_module_rm.FilePlanComponentKind; import org.alfresco.module.org_alfresco_module_rm.RecordsManagementService; +import org.alfresco.module.org_alfresco_module_rm.capability.RMPermissionModel; import org.alfresco.module.org_alfresco_module_rm.dod5015.DOD5015Model; import org.alfresco.module.org_alfresco_module_rm.model.RecordsManagementModel; +import org.alfresco.module.org_alfresco_module_rm.security.RecordsManagementSecurityService; +import org.alfresco.module.org_alfresco_module_rm.security.Role; import org.alfresco.repo.domain.node.NodeDAO; import org.alfresco.repo.domain.patch.PatchDAO; import org.alfresco.repo.domain.qname.QNameDAO; @@ -30,6 +35,8 @@ 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.cmr.repository.Period; +import org.alfresco.service.cmr.security.PermissionService; import org.alfresco.service.namespace.QName; import org.alfresco.util.Pair; import org.apache.commons.logging.Log; @@ -53,6 +60,8 @@ public class RMv2FilePlanNodeRefPatch extends AbstractModuleComponent private PatchDAO patchDAO; private NodeDAO nodeDAO; private QNameDAO qnameDAO; + private PermissionService permissionService; + private RecordsManagementSecurityService recordsManagementSecurityService; public void setNodeService(NodeService nodeService) { @@ -84,6 +93,22 @@ public class RMv2FilePlanNodeRefPatch extends AbstractModuleComponent this.qnameDAO = qnameDAO; } + /** + * @param recordsManagementSecurityService records management security service + */ + public void setRecordsManagementSecurityService(RecordsManagementSecurityService recordsManagementSecurityService) + { + this.recordsManagementSecurityService = recordsManagementSecurityService; + } + + /** + * @param permissionService permission service + */ + public void setPermissionService(PermissionService permissionService) + { + this.permissionService = permissionService; + } + /** * @see org.alfresco.repo.module.AbstractModuleComponent#executeInternal() */ @@ -98,24 +123,53 @@ public class RMv2FilePlanNodeRefPatch extends AbstractModuleComponent Pair aspectPair = qnameDAO.getQName(ASPECT_FILE_PLAN_COMPONENT); if (aspectPair != null) { - List records = patchDAO.getNodesByAspectQNameId(aspectPair.getFirst(), 0L, patchDAO.getMaxAdmNodeID()); + List filePlanComponents = patchDAO.getNodesByAspectQNameId(aspectPair.getFirst(), 0L, patchDAO.getMaxAdmNodeID()); if (logger.isDebugEnabled() == true) { - logger.debug(" ... updating " + records.size() + " items" ); + logger.debug(" ... updating " + filePlanComponents.size() + " items" ); } behaviourFilter.disableBehaviour(); try { - for (Long record : records) + for (Long filePlanComponent : filePlanComponents) { - Pair recordPair = nodeDAO.getNodePair(record); - NodeRef recordNodeRef = recordPair.getSecond(); + Pair recordPair = nodeDAO.getNodePair(filePlanComponent); + NodeRef filePlanComponentNodeRef = recordPair.getSecond(); - if (nodeService.getProperty(recordNodeRef, PROP_ROOT_NODEREF) == null) + NodeRef filePlan = recordsManagementService.getFilePlan(filePlanComponentNodeRef); + + // set the file plan node reference + if (nodeService.getProperty(filePlanComponentNodeRef, PROP_ROOT_NODEREF) == null) { - nodeService.setProperty(recordNodeRef, PROP_ROOT_NODEREF, recordsManagementService.getFilePlan(recordNodeRef)); + nodeService.setProperty(filePlanComponentNodeRef, PROP_ROOT_NODEREF, filePlan); + } + + // only set the rmadmin permissions on record categories, record folders and records + FilePlanComponentKind kind = recordsManagementService.getFilePlanComponentKind(filePlanComponentNodeRef); + if (FilePlanComponentKind.RECORD_CATEGORY.equals(kind) == true || + FilePlanComponentKind.RECORD_FOLDER.equals(kind) == true || + FilePlanComponentKind.RECORD.equals(kind) == true ) + { + // ensure the that the records management role has read and file on the node + Role adminRole = recordsManagementSecurityService.getRole(filePlan, "Administrator"); + if (adminRole != null) + { + permissionService.setPermission(filePlanComponentNodeRef, adminRole.getRoleGroupName(), RMPermissionModel.FILING, true); + } + + // ensure that the default vital record default values have been set (RM-753) + Serializable vitalRecordIndicator = nodeService.getProperty(filePlanComponentNodeRef, PROP_VITAL_RECORD_INDICATOR); + if (vitalRecordIndicator == null) + { + nodeService.setProperty(filePlanComponentNodeRef, PROP_VITAL_RECORD_INDICATOR, false); + } + Serializable reviewPeriod = nodeService.getProperty(filePlanComponentNodeRef, PROP_REVIEW_PERIOD); + if (reviewPeriod == null) + { + nodeService.setProperty(filePlanComponentNodeRef, PROP_REVIEW_PERIOD, new Period("none|0")); + } } } } diff --git a/rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/vital/BroadcastVitalRecordDefinitionAction.java b/rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/vital/BroadcastVitalRecordDefinitionAction.java index e7adec62e7..faa03fa17b 100644 --- a/rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/vital/BroadcastVitalRecordDefinitionAction.java +++ b/rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/vital/BroadcastVitalRecordDefinitionAction.java @@ -68,7 +68,15 @@ public class BroadcastVitalRecordDefinitionAction extends RMActionExecuterAbstra private void propagateChangeToChildrenOf(NodeRef actionedUponNodeRef) { Map parentProps = nodeService.getProperties(actionedUponNodeRef); - boolean parentVri = (Boolean) parentProps.get(PROP_VITAL_RECORD_INDICATOR); + + // parent vital record indicator, default to null if not set + boolean parentVri = false; + Boolean parentVriValue = (Boolean) parentProps.get(PROP_VITAL_RECORD_INDICATOR); + if (parentVriValue != null) + { + parentVri = parentVriValue.booleanValue(); + } + Period parentReviewPeriod = (Period) parentProps.get(PROP_REVIEW_PERIOD); List assocs = this.nodeService.getChildAssocs(actionedUponNodeRef, ContentModel.ASSOC_CONTAINS, RegexQNamePattern.MATCH_ALL); diff --git a/rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/vital/VitalRecordDefinitionImpl.java b/rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/vital/VitalRecordDefinitionImpl.java index 571992b247..2315ddf2bf 100644 --- a/rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/vital/VitalRecordDefinitionImpl.java +++ b/rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/vital/VitalRecordDefinitionImpl.java @@ -63,6 +63,10 @@ public class VitalRecordDefinitionImpl implements VitalRecordDefinition, Records /* package */ static VitalRecordDefinition create(NodeService nodeService, NodeRef nodeRef) { Boolean enabled = (Boolean)nodeService.getProperty(nodeRef, PROP_VITAL_RECORD_INDICATOR); + if (enabled == null) + { + enabled = Boolean.FALSE; + } Period reviewPeriod = (Period)nodeService.getProperty(nodeRef, PROP_REVIEW_PERIOD); return new VitalRecordDefinitionImpl(enabled, reviewPeriod); } From 7c9e0e7253af095b639f1d9c73f134667940cc8e Mon Sep 17 00:00:00 2001 From: Jared Ottley Date: Thu, 19 Sep 2013 21:26:43 +0000 Subject: [PATCH 08/10] [RM-904] Actions are missing within Records Management Site for Record Series and its children. Patches are implemented as components. Components are loaded in a single thread. The work of a patch should be wrapped in its own transaction to isolate it from the changes of other patches and allowing patches to commit work before working on the next patch. Moved all work of RMv2ModelPatch into the RetryingTransactionCallback. RetryingTransactionHelper set to create new thread. Add RetryingTransactionHelper to RMv2FilePlanNodeRefPatch. Move all of the work of the patch into the callback. Helper creates new thread. git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/modules/recordsmanagement/BRANCHES/V2.0.1.x@55708 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261 --- .../rm-patch-context.xml | 1 + .../patch/RMv2FilePlanNodeRefPatch.java | 136 ++++++++++-------- .../patch/RMv2ModelPatch.java | 88 ++++++------ 3 files changed, 121 insertions(+), 104 deletions(-) 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 d030f80f98..ff1e2e25ef 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 @@ -48,6 +48,7 @@ + \ 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 index bd8175f8dd..08bd90d7b2 100644 --- 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 @@ -33,6 +33,7 @@ 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.repo.transaction.RetryingTransactionHelper; import org.alfresco.service.cmr.repository.NodeRef; import org.alfresco.service.cmr.repository.NodeService; import org.alfresco.service.cmr.repository.Period; @@ -62,6 +63,7 @@ public class RMv2FilePlanNodeRefPatch extends AbstractModuleComponent private QNameDAO qnameDAO; private PermissionService permissionService; private RecordsManagementSecurityService recordsManagementSecurityService; + private RetryingTransactionHelper retryingTransactionHelper; public void setNodeService(NodeService nodeService) { @@ -109,6 +111,11 @@ public class RMv2FilePlanNodeRefPatch extends AbstractModuleComponent this.permissionService = permissionService; } + public void setRetryingTransactionHelper(RetryingTransactionHelper retryingTransactionHelper) + { + this.retryingTransactionHelper = retryingTransactionHelper; + } + /** * @see org.alfresco.repo.module.AbstractModuleComponent#executeInternal() */ @@ -120,69 +127,80 @@ public class RMv2FilePlanNodeRefPatch extends AbstractModuleComponent logger.debug("RM Module RMv2FilePlanNodeRef Patch ..."); } - Pair aspectPair = qnameDAO.getQName(ASPECT_FILE_PLAN_COMPONENT); - if (aspectPair != null) - { - List filePlanComponents = patchDAO.getNodesByAspectQNameId(aspectPair.getFirst(), 0L, patchDAO.getMaxAdmNodeID()); - - if (logger.isDebugEnabled() == true) - { - logger.debug(" ... updating " + filePlanComponents.size() + " items" ); - } - - behaviourFilter.disableBehaviour(); - try - { - for (Long filePlanComponent : filePlanComponents) - { - Pair recordPair = nodeDAO.getNodePair(filePlanComponent); - NodeRef filePlanComponentNodeRef = recordPair.getSecond(); - - NodeRef filePlan = recordsManagementService.getFilePlan(filePlanComponentNodeRef); - - // set the file plan node reference - if (nodeService.getProperty(filePlanComponentNodeRef, PROP_ROOT_NODEREF) == null) - { - nodeService.setProperty(filePlanComponentNodeRef, PROP_ROOT_NODEREF, filePlan); - } - - // only set the rmadmin permissions on record categories, record folders and records - FilePlanComponentKind kind = recordsManagementService.getFilePlanComponentKind(filePlanComponentNodeRef); - if (FilePlanComponentKind.RECORD_CATEGORY.equals(kind) == true || - FilePlanComponentKind.RECORD_FOLDER.equals(kind) == true || - FilePlanComponentKind.RECORD.equals(kind) == true ) - { - // ensure the that the records management role has read and file on the node - Role adminRole = recordsManagementSecurityService.getRole(filePlan, "Administrator"); - if (adminRole != null) - { - permissionService.setPermission(filePlanComponentNodeRef, adminRole.getRoleGroupName(), RMPermissionModel.FILING, true); - } - - // ensure that the default vital record default values have been set (RM-753) - Serializable vitalRecordIndicator = nodeService.getProperty(filePlanComponentNodeRef, PROP_VITAL_RECORD_INDICATOR); - if (vitalRecordIndicator == null) - { - nodeService.setProperty(filePlanComponentNodeRef, PROP_VITAL_RECORD_INDICATOR, false); - } - Serializable reviewPeriod = nodeService.getProperty(filePlanComponentNodeRef, PROP_REVIEW_PERIOD); - if (reviewPeriod == null) - { - nodeService.setProperty(filePlanComponentNodeRef, PROP_REVIEW_PERIOD, new Period("none|0")); - } - } - } - } - finally - { - behaviourFilter.enableBehaviour(); - } - } + retryingTransactionHelper.doInTransaction(new Work(), false, true); if (logger.isDebugEnabled() == true) { logger.debug(" ... complete RM Module RMv2FilePlanNodeRef Patch"); } - } + } + + private class Work implements RetryingTransactionHelper.RetryingTransactionCallback + { + @Override + public Integer execute() throws Throwable + { + Pair aspectPair = qnameDAO.getQName(RecordsManagementModel.ASPECT_FILE_PLAN_COMPONENT); + if (aspectPair != null) + { + List filePlanComponents = patchDAO.getNodesByAspectQNameId(aspectPair.getFirst(), 0L, patchDAO.getMaxAdmNodeID()); + + if (logger.isDebugEnabled() == true) + { + logger.debug(" ... updating " + filePlanComponents.size() + " items" ); + } + + behaviourFilter.disableBehaviour(); + try + { + for (Long filePlanComponent : filePlanComponents) + { + Pair recordPair = nodeDAO.getNodePair(filePlanComponent); + NodeRef filePlanComponentNodeRef = recordPair.getSecond(); + + NodeRef filePlan = recordsManagementService.getFilePlan(filePlanComponentNodeRef); + + // set the file plan node reference + if (nodeService.getProperty(filePlanComponentNodeRef, RecordsManagementModel.PROP_ROOT_NODEREF) == null) + { + nodeService.setProperty(filePlanComponentNodeRef, RecordsManagementModel.PROP_ROOT_NODEREF, filePlan); + } + + // only set the rmadmin permissions on record categories, record folders and records + FilePlanComponentKind kind = recordsManagementService.getFilePlanComponentKind(filePlanComponentNodeRef); + if (FilePlanComponentKind.RECORD_CATEGORY.equals(kind) == true || + FilePlanComponentKind.RECORD_FOLDER.equals(kind) == true || + FilePlanComponentKind.RECORD.equals(kind) == true ) + { + // ensure the that the records management role has read and file on the node + Role adminRole = recordsManagementSecurityService.getRole(filePlan, "Administrator"); + if (adminRole != null) + { + permissionService.setPermission(filePlanComponentNodeRef, adminRole.getRoleGroupName(), RMPermissionModel.FILING, true); + } + + // ensure that the default vital record default values have been set (RM-753) + Serializable vitalRecordIndicator = nodeService.getProperty(filePlanComponentNodeRef, RecordsManagementModel.PROP_VITAL_RECORD_INDICATOR); + if (vitalRecordIndicator == null) + { + nodeService.setProperty(filePlanComponentNodeRef, RecordsManagementModel.PROP_VITAL_RECORD_INDICATOR, false); + } + Serializable reviewPeriod = nodeService.getProperty(filePlanComponentNodeRef, RecordsManagementModel.PROP_REVIEW_PERIOD); + if (reviewPeriod == null) + { + nodeService.setProperty(filePlanComponentNodeRef, RecordsManagementModel.PROP_REVIEW_PERIOD, new Period("none|0")); + } + } + } + } + finally + { + behaviourFilter.enableBehaviour(); + } + } + // nothing to do + return 0; + } + } } 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 b4b1e5368b..c1a0c0699e 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 @@ -52,6 +52,7 @@ public class RMv2ModelPatch extends AbstractModuleComponent private QNameDAO qnameDAO; private RetryingTransactionHelper retryingTransactionHelper; + public void setPatchDAO(PatchDAO patchDAO) { this.patchDAO = patchDAO; @@ -90,44 +91,22 @@ public class RMv2ModelPatch extends AbstractModuleComponent private void updateQName(QName qnameBefore, QName qnameAfter, String reindexClass) { - Long maxNodeId = patchDAO.getMaxAdmNodeID(); - Pair before = qnameDAO.getQName(qnameBefore); + Work work = new Work(qnameBefore, qnameAfter, reindexClass); + retryingTransactionHelper.doInTransaction(work, false, true); - if (before != null) - { - for (Long i = 0L; i < maxNodeId; i+=BATCH_SIZE) - { - Work work = new Work(before.getFirst(), i, reindexClass); - retryingTransactionHelper.doInTransaction(work, false, true); - } - - qnameDAO.updateQName(qnameBefore, qnameAfter); - - if (logger.isDebugEnabled() == true) - { - logger.debug(" ... updated qname " + qnameBefore.toString()); - } - } - else - { - if (logger.isDebugEnabled() == true) - { - logger.debug(" ... no need to update qname " + qnameBefore.toString()); - } - } } private class Work implements RetryingTransactionHelper.RetryingTransactionCallback { - private long qnameId; - private long lower; + private QName qnameBefore; + private QName qnameAfter; private String reindexClass; - Work(long qnameId, long lower, String reindexClass) + Work(QName qnameBefore, QName qnameAfter, String reindexClass) { - this.qnameId = qnameId; - this.lower = lower; + this.qnameBefore = qnameBefore; + this.qnameAfter = qnameAfter; this.reindexClass = reindexClass; } @@ -138,24 +117,43 @@ public class RMv2ModelPatch extends AbstractModuleComponent @Override public Integer execute() throws Throwable { - if ("TYPE".equals(reindexClass)) + Long maxNodeId = patchDAO.getMaxAdmNodeID(); + + Pair before = qnameDAO.getQName(qnameBefore); + + if (before != null) { - List nodeIds = patchDAO.getNodesByTypeQNameId(qnameId, lower, lower + BATCH_SIZE); - nodeDAO.touchNodes(nodeDAO.getCurrentTransactionId(true), nodeIds); - return nodeIds.size(); - } - else if ("ASPECT".equals(reindexClass)) - { - List nodeIds = patchDAO.getNodesByAspectQNameId(qnameId, lower, lower + BATCH_SIZE); - nodeDAO.touchNodes(nodeDAO.getCurrentTransactionId(true), nodeIds); - return nodeIds.size(); - } + for (Long i = 0L; i < maxNodeId; i+=BATCH_SIZE) + { + if ("TYPE".equals(reindexClass)) + { + List nodeIds = patchDAO.getNodesByTypeQNameId(before.getFirst(), i, i + BATCH_SIZE); + nodeDAO.touchNodes(nodeDAO.getCurrentTransactionId(true), nodeIds); + } + else if ("ASPECT".equals(reindexClass)) + { + List nodeIds = patchDAO.getNodesByAspectQNameId(before.getFirst(), i, i + BATCH_SIZE); + nodeDAO.touchNodes(nodeDAO.getCurrentTransactionId(true), nodeIds); + } + } + + qnameDAO.updateQName(qnameBefore, qnameAfter); + + if (logger.isDebugEnabled() == true) + { + logger.debug(" ... updated qname " + qnameBefore.toString()); + } + } else { - // nothing to do - return 0; + if (logger.isDebugEnabled() == true) + { + logger.debug(" ... no need to update qname " + qnameBefore.toString()); + } } - - } - } + + //nothing to do + return 0; + } + } } From 26223cb435238a683d354e5788ff7cf6911ea3a8 Mon Sep 17 00:00:00 2001 From: Jared Ottley Date: Wed, 25 Sep 2013 18:18:14 +0000 Subject: [PATCH 09/10] [RM-904][MNT-9589] Actions are missing within Records Management Site for Record Series and its children. Add DOD5015 constants for old style audit entries. Modify callback to look for and parse existing DOD5015 audit entries. Add query to look for DOD5015 audit entries. This call must be before the query for RM entries for the report to be ordered correctly. git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/modules/recordsmanagement/BRANCHES/V2.0.1.x@55998 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261 --- .../audit/RecordsManagementAuditService.java | 27 ++++++++++ .../RecordsManagementAuditServiceImpl.java | 52 +++++++++++++++++++ 2 files changed, 79 insertions(+) diff --git a/rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/audit/RecordsManagementAuditService.java b/rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/audit/RecordsManagementAuditService.java index f493d4949c..5ec3681c0e 100644 --- a/rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/audit/RecordsManagementAuditService.java +++ b/rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/audit/RecordsManagementAuditService.java @@ -67,6 +67,33 @@ public interface RecordsManagementAuditService public static final String RM_AUDIT_DATA_LOGIN_FULLNAME = "/RM/login/no-error/fullName"; public static final String RM_AUDIT_DATA_LOGIN_ERROR = "/RM/login/error/value"; + /* Provide Backward compatibility with DOD5015 Audit Events RM-904*/ + public static final String DOD5015_AUDIT_APPLICATION_NAME = "DOD5015"; + public static final String DOD5015_AUDIT_PATH_ROOT = "/DOD5015"; + public static final String DOD5015_AUDIT_SNIPPET_EVENT = "/event"; + public static final String DOD5015_AUDIT_SNIPPET_PERSON = "/person"; + public static final String DOD5015_AUDIT_SNIPPET_NAME = "/name"; + public static final String DOD5015_AUDIT_SNIPPET_NODE = "/node"; + public static final String DOD5015_AUDIT_SNIPPET_CHANGES = "/changes"; + public static final String DOD5015_AUDIT_SNIPPET_BEFORE = "/before"; + public static final String DOD5015_AUDIT_SNIPPET_AFTER = "/after"; + + public static final String DOD5015_AUDIT_DATA_PERSON_FULLNAME = "/DOD5015/event/person/fullName"; + public static final String DOD5015_AUDIT_DATA_PERSON_ROLES = "/DOD5015/event/person/roles"; + public static final String DOD5015_AUDIT_DATA_EVENT_NAME = "/DOD5015/event/name/value"; + public static final String DOD5015_AUDIT_DATA_NODE_NODEREF = "/DOD5015/event/node/noderef"; + public static final String DOD5015_AUDIT_DATA_NODE_NAME = "/DOD5015/event/node/name"; + public static final String DOD5015_AUDIT_DATA_NODE_TYPE = "/DOD5015/event/node/type"; + public static final String DOD5015_AUDIT_DATA_NODE_IDENTIFIER = "/DOD5015/event/node/identifier"; + public static final String DOD5015_AUDIT_DATA_NODE_NAMEPATH = "/DOD5015/event/node/namePath"; + public static final String DOD5015_AUDIT_DATA_NODE_CHANGES_BEFORE = "/DOD5015/event/node/changes/before/value"; + public static final String DOD5015_AUDIT_DATA_NODE_CHANGES_AFTER = "/DOD5015/event/node/changes/after/value"; + + public static final String DOD5015_AUDIT_DATA_LOGIN_USERNAME = "/DOD5015/login/args/userName/value"; + public static final String DOD5015_AUDIT_DATA_LOGIN_FULLNAME = "/DOD5015/login/no-error/fullName"; + public static final String DOD5015_AUDIT_DATA_LOGIN_ERROR = "/DOD5015/login/error/value"; + /* End Backward compatibility with DOD5015 Audit Events */ + /** * Starts RM auditing. */ diff --git a/rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/audit/RecordsManagementAuditServiceImpl.java b/rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/audit/RecordsManagementAuditServiceImpl.java index ed279bd596..7bfb10c207 100644 --- a/rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/audit/RecordsManagementAuditServiceImpl.java +++ b/rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/audit/RecordsManagementAuditServiceImpl.java @@ -825,6 +825,30 @@ public class RecordsManagementAuditServiceImpl nodeType = (typeDef != null) ? typeDef.getTitle() : null; } } + else if (values.containsKey(RecordsManagementAuditService.DOD5015_AUDIT_DATA_EVENT_NAME)) + { + // This data is /RM/event/... + eventName = (String) values.get(RecordsManagementAuditService.DOD5015_AUDIT_DATA_EVENT_NAME); + fullName = (String) values.get(RecordsManagementAuditService.DOD5015_AUDIT_DATA_PERSON_FULLNAME); + userRoles = (String) values.get(RecordsManagementAuditService.DOD5015_AUDIT_DATA_PERSON_ROLES); + nodeRef = (NodeRef) values.get(RecordsManagementAuditService.DOD5015_AUDIT_DATA_NODE_NODEREF); + nodeName = (String) values.get(RecordsManagementAuditService.DOD5015_AUDIT_DATA_NODE_NAME); + QName nodeTypeQname = (QName) values.get(RecordsManagementAuditService.DOD5015_AUDIT_DATA_NODE_TYPE); + nodeIdentifier = (String) values.get(RecordsManagementAuditService.DOD5015_AUDIT_DATA_NODE_IDENTIFIER); + namePath = (String) values.get(RecordsManagementAuditService.DOD5015_AUDIT_DATA_NODE_NAMEPATH); + beforeProperties = (Map) values.get( + RecordsManagementAuditService.DOD5015_AUDIT_DATA_NODE_CHANGES_BEFORE); + afterProperties = (Map) values.get( + RecordsManagementAuditService.DOD5015_AUDIT_DATA_NODE_CHANGES_AFTER); + + // Convert some of the values to recognizable forms + nodeType = null; + if (nodeTypeQname != null) + { + TypeDefinition typeDef = dictionaryService.getType(nodeTypeQname); + nodeType = (typeDef != null) ? typeDef.getTitle() : null; + } + } else if (values.containsKey(RecordsManagementAuditService.RM_AUDIT_DATA_LOGIN_USERNAME)) { user = (String) values.get(RecordsManagementAuditService.RM_AUDIT_DATA_LOGIN_USERNAME); @@ -839,6 +863,20 @@ public class RecordsManagementAuditServiceImpl fullName = (String) values.get(RecordsManagementAuditService.RM_AUDIT_DATA_LOGIN_FULLNAME); } } + else if (values.containsKey(RecordsManagementAuditService.DOD5015_AUDIT_DATA_LOGIN_USERNAME)) + { + user = (String) values.get(RecordsManagementAuditService.DOD5015_AUDIT_DATA_LOGIN_USERNAME); + if (values.containsKey(RecordsManagementAuditService.DOD5015_AUDIT_DATA_LOGIN_ERROR)) + { + eventName = RecordsManagementAuditService.RM_AUDIT_EVENT_LOGIN_FAILURE; + fullName = user; // The user didn't log in + } + else + { + eventName = RecordsManagementAuditService.RM_AUDIT_EVENT_LOGIN_SUCCESS; + fullName = (String) values.get(RecordsManagementAuditService.DOD5015_AUDIT_DATA_LOGIN_FULLNAME); + } + } else { // This is not recognisable data @@ -939,6 +977,18 @@ public class RecordsManagementAuditServiceImpl } // Build audit query parameters + AuditQueryParameters dod5015AuditQueryParams = new AuditQueryParameters(); + dod5015AuditQueryParams.setForward(forward); + dod5015AuditQueryParams.setApplicationName(RecordsManagementAuditService.DOD5015_AUDIT_APPLICATION_NAME); + dod5015AuditQueryParams.setUser(user); + dod5015AuditQueryParams.setFromTime(fromTime); + dod5015AuditQueryParams.setToTime(toTime); + if (nodeRef != null) + { + dod5015AuditQueryParams.addSearchKey(RecordsManagementAuditService.DOD5015_AUDIT_DATA_NODE_NODEREF, nodeRef); + } + + // AuditQueryParameters auditQueryParams = new AuditQueryParameters(); auditQueryParams.setForward(forward); auditQueryParams.setApplicationName(RecordsManagementAuditService.RM_AUDIT_APPLICATION_NAME); @@ -949,7 +999,9 @@ public class RecordsManagementAuditServiceImpl { auditQueryParams.addSearchKey(RecordsManagementAuditService.RM_AUDIT_DATA_NODE_NODEREF, nodeRef); } + // Get audit entries + auditService.auditQuery(callback, dod5015AuditQueryParams, maxEntries); auditService.auditQuery(callback, auditQueryParams, maxEntries); // finish off the audit trail report From 8d20c8d4c092c946bed7bc05d5040f87a49d2b1d Mon Sep 17 00:00:00 2001 From: Tom Page Date: Thu, 17 Dec 2015 12:07:50 +0000 Subject: [PATCH 10/10] RM-2871 Generate .gitignore file for V2.0.1.x. --- .gitignore | 33 +++++++++++++++++++++++++++++++++ 1 file changed, 33 insertions(+) create mode 100644 .gitignore diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000000..c095498da2 --- /dev/null +++ b/.gitignore @@ -0,0 +1,33 @@ +# General ignored files and directories +.classpath +.gradle +.idea +.project +.settings +*.iml +*.log* +*.tmp +*.war +bin +dist +explodedDeps + +# / +/l10n +/root + +# /rm-server/ +/rm-server/alfresco-solr.zip +/rm-server/solr + +# /rm-server/build/ +/rm-server/build/* + +# /rm-server/config/alfresco/ +/rm-server/config/alfresco/extension + +# /rm-server/libs/ +/rm-server/libs/ + +# /rm-share/build/ +/rm-share/build/*