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 8880e7a61b..01d9bd9ecd 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
@@ -3,8 +3,13 @@
+
+
+
+
+
@@ -19,7 +24,7 @@
@@ -37,7 +42,7 @@
@@ -46,12 +51,11 @@
-
@@ -62,15 +66,13 @@
-
-
@@ -82,7 +84,7 @@
@@ -98,7 +100,7 @@
@@ -111,7 +113,7 @@
@@ -126,7 +128,7 @@
@@ -141,7 +143,7 @@
@@ -154,7 +156,7 @@
@@ -166,7 +168,7 @@
@@ -174,8 +176,7 @@
-
-
+
\ No newline at end of file
diff --git a/rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/patch/ModulePatchComponent.java b/rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/patch/ModulePatchComponent.java
index 14980a8555..d0d1ef0684 100644
--- a/rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/patch/ModulePatchComponent.java
+++ b/rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/patch/ModulePatchComponent.java
@@ -19,6 +19,8 @@
package org.alfresco.module.org_alfresco_module_rm.patch;
import org.alfresco.repo.module.AbstractModuleComponent;
+import org.alfresco.repo.policy.BehaviourFilter;
+import org.alfresco.repo.transaction.RetryingTransactionHelper;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
@@ -34,6 +36,28 @@ public abstract class ModulePatchComponent extends AbstractModuleComponent
/** logger */
protected static Log logger = LogFactory.getLog(ModulePatchComponent.class);
+ /** Retrying transaction helper */
+ protected RetryingTransactionHelper retryingTransactionHelper;
+
+ /** Behaviour filter */
+ protected BehaviourFilter behaviourFilter;
+
+ /**
+ * @param retryingTransactionHelper retrying transaction helper
+ */
+ public void setRetryingTransactionHelper(RetryingTransactionHelper retryingTransactionHelper)
+ {
+ this.retryingTransactionHelper = retryingTransactionHelper;
+ }
+
+ /**
+ * @param behaviourFilter behaviour filter
+ */
+ public void setBehaviourFilter(BehaviourFilter behaviourFilter)
+ {
+ this.behaviourFilter = behaviourFilter;
+ }
+
/**
* @see org.alfresco.repo.module.AbstractModuleComponent#executeInternal()
*/
@@ -47,7 +71,30 @@ public abstract class ModulePatchComponent extends AbstractModuleComponent
logger.info("Module patch component '" + getName() + "' is executing ...");
}
- executePatch();
+ // execute path within an isolated transaction
+ retryingTransactionHelper.doInTransaction(new RetryingTransactionHelper.RetryingTransactionCallback()
+ {
+ @Override
+ public Void execute() throws Throwable
+ {
+ behaviourFilter.disableBehaviour();
+ try
+ {
+ executePatch();
+ }
+ finally
+ {
+ behaviourFilter.enableBehaviour();
+ }
+ return null;
+ }
+
+ }, false, true);
+
+ if (logger.isDebugEnabled() == true)
+ {
+ logger.debug(" ... completed module patch '" + getName() + "'");
+ }
}
catch (Throwable exception)
{
diff --git a/rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/patch/NotificationTemplatePatch.java b/rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/patch/NotificationTemplatePatch.java
index 6d466a412b..08acae35de 100644
--- a/rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/patch/NotificationTemplatePatch.java
+++ b/rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/patch/NotificationTemplatePatch.java
@@ -128,11 +128,6 @@ public class NotificationTemplatePatch extends ModulePatchComponent
@Override
protected void executePatch() throws Throwable
{
- if (logger.isDebugEnabled() == true)
- {
- logger.debug("RM Module NotificationTemplatePatch ...");
- }
-
NodeRef supersededTemplate = notificationHelper.getSupersededTemplate();
updateTemplate(supersededTemplate, PATH_SUPERSEDED);
diff --git a/rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/patch/RMv21BehaviorScriptsPatch.java b/rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/patch/RMv21BehaviorScriptsPatch.java
index b05ad11336..cc1255186c 100644
--- a/rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/patch/RMv21BehaviorScriptsPatch.java
+++ b/rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/patch/RMv21BehaviorScriptsPatch.java
@@ -27,7 +27,6 @@ import org.alfresco.error.AlfrescoRuntimeException;
import org.alfresco.model.ContentModel;
import org.alfresco.repo.security.authentication.AuthenticationUtil;
import org.alfresco.repo.security.authentication.AuthenticationUtil.RunAsWork;
-import org.alfresco.repo.transaction.RetryingTransactionHelper;
import org.alfresco.repo.transaction.RetryingTransactionHelper.RetryingTransactionCallback;
import org.alfresco.service.cmr.model.FileFolderService;
import org.alfresco.service.cmr.model.FileInfo;
@@ -67,9 +66,7 @@ public class RMv21BehaviorScriptsPatch extends ModulePatchComponent implements B
/** File Folder Service */
private FileFolderService fileFolderService;
-
- private RetryingTransactionHelper retryingTransactionHelper;
-
+
public void setNodeService(NodeService nodeService)
{
this.nodeService = nodeService;
@@ -80,19 +77,10 @@ public class RMv21BehaviorScriptsPatch extends ModulePatchComponent implements B
this.fileFolderService = fileFolderService;
}
- public void setRetryingTransactionHelper(RetryingTransactionHelper retryingTransactionHelper)
- {
- this.retryingTransactionHelper = retryingTransactionHelper;
- }
@Override
protected void executePatch() throws Throwable
- {
- if (logger.isDebugEnabled() == true)
- {
- logger.debug("RM module: RMv21BehaviorScriptsPatch executing ...");
- }
-
+ {
// check that the rm config root has been correctly bootstrapped
if (nodeService.exists(RM_CONFIG) == false)
{
@@ -168,11 +156,6 @@ public class RMv21BehaviorScriptsPatch extends ModulePatchComponent implements B
}, AuthenticationUtil.getSystemUserName());
}
-
- if (logger.isDebugEnabled() == true)
- {
- logger.debug(" ... complete");
- }
}
}
diff --git a/rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/patch/RMv21CapabilityPatch.java b/rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/patch/RMv21CapabilityPatch.java
index 9201380e42..b6623e798d 100644
--- a/rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/patch/RMv21CapabilityPatch.java
+++ b/rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/patch/RMv21CapabilityPatch.java
@@ -84,11 +84,6 @@ public class RMv21CapabilityPatch extends ModulePatchComponent
@Override
protected void executePatch() throws Throwable
{
- if (logger.isDebugEnabled() == true)
- {
- logger.debug("RM module: RMv21CapabilityPatch executing ...");
- }
-
Set filePlans = filePlanService.getFilePlans();
if (logger.isDebugEnabled() == true)
@@ -136,11 +131,6 @@ public class RMv21CapabilityPatch extends ModulePatchComponent
FilePlanRoleService.ROLE_RECORDS_MANAGER,
FilePlanRoleService.ROLE_SECURITY_OFFICER);
}
-
- if (logger.isDebugEnabled() == true)
- {
- logger.debug(" ... complete");
- }
}
/**
diff --git a/rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/patch/RMv21RecordInheritancePatch.java b/rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/patch/RMv21RecordInheritancePatch.java
index 0152c95238..56a11d907f 100644
--- a/rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/patch/RMv21RecordInheritancePatch.java
+++ b/rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/patch/RMv21RecordInheritancePatch.java
@@ -109,11 +109,6 @@ public class RMv21RecordInheritancePatch extends ModulePatchComponent
@Override
protected void executePatch() throws Throwable
{
- if (logger.isDebugEnabled() == true)
- {
- logger.debug("RM module: RMv21RecordInheritancePatch executing ...");
- }
-
Pair aspectPair = qnameDAO.getQName(ASPECT_RECORD);
if (aspectPair != null)
{
@@ -143,10 +138,5 @@ public class RMv21RecordInheritancePatch extends ModulePatchComponent
}
}
}
-
- if (logger.isDebugEnabled() == true)
- {
- logger.debug(" ... complete");
- }
}
}
diff --git a/rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/patch/RMv21RolesPatch.java b/rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/patch/RMv21RolesPatch.java
index 8651c8fdfc..bb172e810e 100644
--- a/rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/patch/RMv21RolesPatch.java
+++ b/rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/patch/RMv21RolesPatch.java
@@ -65,11 +65,6 @@ public class RMv21RolesPatch extends ModulePatchComponent implements BeanNameAwa
@Override
protected void executePatch() throws Throwable
{
- if (logger.isDebugEnabled() == true)
- {
- logger.debug("RM module: RMv21RolesPatch executing ...");
- }
-
Set filePlans = filePlanService.getFilePlans();
if (logger.isDebugEnabled() == true)
@@ -101,11 +96,6 @@ public class RMv21RolesPatch extends ModulePatchComponent implements BeanNameAwa
}
}
}
-
- if (logger.isDebugEnabled() == true)
- {
- logger.debug(" ... complete");
- }
}
private void addAuthorityToZone(String roleGroupName)
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 9ad3289dcb..463ececd9d 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
@@ -31,8 +31,6 @@ import org.alfresco.module.org_alfresco_module_rm.role.Role;
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.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;
@@ -55,25 +53,18 @@ public class RMv2FilePlanNodeRefPatch extends ModulePatchComponent
private static Log logger = LogFactory.getLog(RMv2FilePlanNodeRefPatch.class);
private NodeService nodeService;
- private BehaviourFilter behaviourFilter;
private PatchDAO patchDAO;
private NodeDAO nodeDAO;
private QNameDAO qnameDAO;
private PermissionService permissionService;
private FilePlanService filePlanService;
private FilePlanRoleService filePlanRoleService;
- private RetryingTransactionHelper retryingTransactionHelper;
public void setNodeService(NodeService nodeService)
{
this.nodeService = nodeService;
}
- public void setBehaviourFilter(BehaviourFilter behaviourFilter)
- {
- this.behaviourFilter = behaviourFilter;
- }
-
public void setPatchDAO(PatchDAO patchDAO)
{
this.patchDAO = patchDAO;
@@ -105,11 +96,6 @@ public class RMv2FilePlanNodeRefPatch extends ModulePatchComponent
this.filePlanRoleService = filePlanRoleService;
}
- public void setRetryingTransactionHelper(RetryingTransactionHelper retryingTransactionHelper)
- {
- this.retryingTransactionHelper = retryingTransactionHelper;
- }
-
/**
* @param filePlanService file plan service
*/
@@ -124,81 +110,56 @@ public class RMv2FilePlanNodeRefPatch extends ModulePatchComponent
@Override
protected void executePatch() throws Throwable
{
- retryingTransactionHelper.doInTransaction(new Work(), false, true);
-
- if (logger.isDebugEnabled() == true)
+ Pair aspectPair = qnameDAO.getQName(RecordsManagementModel.ASPECT_FILE_PLAN_COMPONENT);
+ if (aspectPair != null)
{
- logger.debug(" ... complete RM Module RMv2FilePlanNodeRef Patch");
- }
-
- }
+ List filePlanComponents = patchDAO.getNodesByAspectQNameId(aspectPair.getFirst(), 0L, patchDAO.getMaxAdmNodeID());
- private class Work implements RetryingTransactionHelper.RetryingTransactionCallback
- {
- @Override
- public Integer execute() throws Throwable
- {
- Pair aspectPair = qnameDAO.getQName(RecordsManagementModel.ASPECT_FILE_PLAN_COMPONENT);
- if (aspectPair != null)
+ if (logger.isDebugEnabled() == true)
{
- 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 = filePlanService.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 = filePlanService.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 = filePlanRoleService.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();
- }
+ logger.debug(" ... updating " + filePlanComponents.size() + " items" );
}
- // nothing to do
- return 0;
- }
+
+ for (Long filePlanComponent : filePlanComponents)
+ {
+ Pair recordPair = nodeDAO.getNodePair(filePlanComponent);
+ NodeRef filePlanComponentNodeRef = recordPair.getSecond();
+
+ NodeRef filePlan = filePlanService.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 = filePlanService.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 = filePlanRoleService.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/patch/RMv2ModelPatch.java b/rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/patch/RMv2ModelPatch.java
index b1c9927677..d936289906 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
@@ -49,8 +49,6 @@ public class RMv2ModelPatch extends ModulePatchComponent
private PatchDAO patchDAO;
private NodeDAO nodeDAO;
private QNameDAO qnameDAO;
- private RetryingTransactionHelper retryingTransactionHelper;
-
public void setPatchDAO(PatchDAO patchDAO)
{
@@ -67,33 +65,21 @@ public class RMv2ModelPatch extends ModulePatchComponent
this.qnameDAO = qnameDAO;
}
- public void setRetryingTransactionHelper(RetryingTransactionHelper retryingTransactionHelper)
- {
- this.retryingTransactionHelper = retryingTransactionHelper;
- }
-
/**
* @see org.alfresco.repo.module.AbstractModuleComponent#executeInternal()
*/
@Override
protected void executePatch() throws Throwable
{
- if (logger.isDebugEnabled() == true)
- {
- logger.debug("RM Module RMv2ModelPatch ...");
- }
-
updateQName(QName.createQName(DOD_URI, "filePlan"), TYPE_FILE_PLAN, "TYPE");
updateQName(QName.createQName(DOD_URI, "recordCategory"), TYPE_RECORD_CATEGORY, "TYPE");
updateQName(QName.createQName(DOD_URI, "ghosted"), ASPECT_GHOSTED, "ASPECT");
}
private void updateQName(QName qnameBefore, QName qnameAfter, String reindexClass)
- {
-
+ {
Work work = new Work(qnameBefore, qnameAfter, reindexClass);
retryingTransactionHelper.doInTransaction(work, false, true);
-
}
private class Work implements RetryingTransactionHelper.RetryingTransactionCallback
@@ -102,6 +88,13 @@ public class RMv2ModelPatch extends ModulePatchComponent
private QName qnameAfter;
private String reindexClass;
+ /**
+ * Constructor
+ *
+ * @param qnameBefore qname before
+ * @param qnameAfter qname after
+ * @param reindexClass reindex class
+ */
Work(QName qnameBefore, QName qnameAfter, String reindexClass)
{
this.qnameBefore = qnameBefore;
@@ -109,8 +102,7 @@ public class RMv2ModelPatch extends ModulePatchComponent
this.reindexClass = reindexClass;
}
- /*
- * (non-Javadoc)
+ /**
* @see org.alfresco.repo.transaction.RetryingTransactionHelper.RetryingTransactionCallback#execute()
*/
@Override
diff --git a/rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/patch/RMv2RMAdminUserPatch.java b/rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/patch/RMv2RMAdminUserPatch.java
index 89848ff93b..46492ad86a 100644
--- a/rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/patch/RMv2RMAdminUserPatch.java
+++ b/rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/patch/RMv2RMAdminUserPatch.java
@@ -115,11 +115,6 @@ public class RMv2RMAdminUserPatch extends ModulePatchComponent implements BeanNa
@Override
protected void executePatch() throws Throwable
{
- if (logger.isDebugEnabled() == true)
- {
- logger.debug("RM Module RMv2RMAdminUserPatch ...");
- }
-
String user = filePlanAuthenticationService.getRmAdminUserName();
String firstName = I18NUtil.getMessage(MSG_FIRST_NAME);
String lastName = I18NUtil.getMessage(MSG_LAST_NAME);
@@ -148,11 +143,6 @@ public class RMv2RMAdminUserPatch extends ModulePatchComponent implements BeanNa
{
filePlanRoleService.assignRoleToAuthority(filePlan, FilePlanRoleService.ROLE_ADMIN, user);
}
-
- if (logger.isDebugEnabled() == true)
- {
- logger.debug(" ... RMv2RMAdminUserPatch complete");
- }
}
}
}
diff --git a/rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/patch/RMv2SavedSearchPatch.java b/rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/patch/RMv2SavedSearchPatch.java
index 49996e0a6f..48333f62bc 100644
--- a/rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/patch/RMv2SavedSearchPatch.java
+++ b/rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/patch/RMv2SavedSearchPatch.java
@@ -72,11 +72,6 @@ public class RMv2SavedSearchPatch extends ModulePatchComponent
@Override
protected void executePatch() throws Throwable
{
- if (logger.isDebugEnabled() == true)
- {
- logger.debug("RM Module RMv2SavedSearchPatch ...");
- }
-
if (siteService.getSite(RM_SITE_ID) != null)
{
// get the saved searches
@@ -98,11 +93,6 @@ public class RMv2SavedSearchPatch extends ModulePatchComponent
savedSearchDetails.getSearchParameters(),
savedSearchDetails.isPublic());
}
- }
-
- if (logger.isDebugEnabled() == true)
- {
- logger.debug(" ... complete");
- }
+ }
}
}