RM-991: Failed to applay patch AVMToADMRemoteStorePatch during upgrade from 3.4.13 to 4.2.0 with RM on Postgres

* all rm module patches are executed in their own transaction
 * all behaviours are turned off when executing a rm module patch



git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/modules/recordsmanagement/HEAD@56088 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261
This commit is contained in:
Roy Wetherall
2013-09-27 12:38:46 +00:00
parent 8c96aad8f0
commit 7c03089524
11 changed files with 124 additions and 195 deletions

View File

@@ -3,8 +3,13 @@
<beans> <beans>
<bean id="rm.baseModulePatch" abstract="true" parent="module.baseComponent">
<property name="retryingTransactionHelper" ref="retryingTransactionHelper"/>
<property name="behaviourFilter" ref="policyBehaviourFilter" />
</bean>
<bean id="org_alfresco_module_rm_notificationTemplatePatch" <bean id="org_alfresco_module_rm_notificationTemplatePatch"
parent="module.baseComponent" parent="rm.baseModulePatch"
class="org.alfresco.module.org_alfresco_module_rm.patch.NotificationTemplatePatch"> class="org.alfresco.module.org_alfresco_module_rm.patch.NotificationTemplatePatch">
<property name="moduleId" value="org_alfresco_module_rm"/> <property name="moduleId" value="org_alfresco_module_rm"/>
<property name="name" value="org_alfresco_module_rm_notificationTemplatePatch"/> <property name="name" value="org_alfresco_module_rm_notificationTemplatePatch"/>
@@ -19,7 +24,7 @@
</bean> </bean>
<bean id="org_alfresco_module_rm_notificationTemplatePatch_v21" <bean id="org_alfresco_module_rm_notificationTemplatePatch_v21"
parent="module.baseComponent" parent="rm.baseModulePatch"
class="org.alfresco.module.org_alfresco_module_rm.patch.NotificationTemplatePatch_v21"> class="org.alfresco.module.org_alfresco_module_rm.patch.NotificationTemplatePatch_v21">
<property name="moduleId" value="org_alfresco_module_rm"/> <property name="moduleId" value="org_alfresco_module_rm"/>
<property name="name" value="org_alfresco_module_rm_notificationTemplatePatch_v21"/> <property name="name" value="org_alfresco_module_rm_notificationTemplatePatch_v21"/>
@@ -37,7 +42,7 @@
</bean> </bean>
<bean id="org_alfresco_module_rm_RMv2ModelPatch" <bean id="org_alfresco_module_rm_RMv2ModelPatch"
parent="module.baseComponent" parent="rm.baseModulePatch"
class="org.alfresco.module.org_alfresco_module_rm.patch.RMv2ModelPatch"> class="org.alfresco.module.org_alfresco_module_rm.patch.RMv2ModelPatch">
<property name="moduleId" value="org_alfresco_module_rm"/> <property name="moduleId" value="org_alfresco_module_rm"/>
<property name="name" value="org_alfresco_module_rm_RMv2ModelPatch"/> <property name="name" value="org_alfresco_module_rm_RMv2ModelPatch"/>
@@ -46,12 +51,11 @@
<property name="appliesFromVersion" value="2.0"/> <property name="appliesFromVersion" value="2.0"/>
<property name="patchDAO" ref="patchDAO"/> <property name="patchDAO" ref="patchDAO"/>
<property name="nodeDAO" ref="nodeDAO" /> <property name="nodeDAO" ref="nodeDAO" />
<property name="retryingTransactionHelper" ref="retryingTransactionHelper"/>
<property name="qnameDAO" ref="qnameDAO"/> <property name="qnameDAO" ref="qnameDAO"/>
</bean> </bean>
<bean id="org_alfresco_module_rm_RMv2FilePlanNodeRefPatch" <bean id="org_alfresco_module_rm_RMv2FilePlanNodeRefPatch"
parent="module.baseComponent" parent="rm.baseModulePatch"
class="org.alfresco.module.org_alfresco_module_rm.patch.RMv2FilePlanNodeRefPatch"> class="org.alfresco.module.org_alfresco_module_rm.patch.RMv2FilePlanNodeRefPatch">
<property name="moduleId" value="org_alfresco_module_rm"/> <property name="moduleId" value="org_alfresco_module_rm"/>
<property name="name" value="org_alfresco_module_rm_RMv2FilePlanNodeRefPatch"/> <property name="name" value="org_alfresco_module_rm_RMv2FilePlanNodeRefPatch"/>
@@ -62,15 +66,13 @@
<property name="nodeDAO" ref="nodeDAO" /> <property name="nodeDAO" ref="nodeDAO" />
<property name="qnameDAO" ref="qnameDAO"/> <property name="qnameDAO" ref="qnameDAO"/>
<property name="nodeService" ref="NodeService"/> <property name="nodeService" ref="NodeService"/>
<property name="behaviourFilter" ref="policyBehaviourFilter"/>
<property name="permissionService" ref="PermissionService"/> <property name="permissionService" ref="PermissionService"/>
<property name="filePlanService" ref="FilePlanService" /> <property name="filePlanService" ref="FilePlanService" />
<property name="filePlanRoleService" ref="filePlanRoleService" /> <property name="filePlanRoleService" ref="filePlanRoleService" />
<property name="retryingTransactionHelper" ref="retryingTransactionHelper"/>
</bean> </bean>
<bean id="org_alfresco_module_rm_RMv2SavedSearchPatch" <bean id="org_alfresco_module_rm_RMv2SavedSearchPatch"
parent="module.baseComponent" parent="rm.baseModulePatch"
class="org.alfresco.module.org_alfresco_module_rm.patch.RMv2SavedSearchPatch"> class="org.alfresco.module.org_alfresco_module_rm.patch.RMv2SavedSearchPatch">
<property name="moduleId" value="org_alfresco_module_rm"/> <property name="moduleId" value="org_alfresco_module_rm"/>
<property name="name" value="org_alfresco_module_rm_RMv2SavedSearchPatch"/> <property name="name" value="org_alfresco_module_rm_RMv2SavedSearchPatch"/>
@@ -82,7 +84,7 @@
</bean> </bean>
<bean id="org_alfresco_module_rm_RMv21InPlacePatch" <bean id="org_alfresco_module_rm_RMv21InPlacePatch"
parent="module.baseComponent" parent="rm.baseModulePatch"
class="org.alfresco.module.org_alfresco_module_rm.patch.RMv21InPlacePatch"> class="org.alfresco.module.org_alfresco_module_rm.patch.RMv21InPlacePatch">
<property name="moduleId" value="org_alfresco_module_rm"/> <property name="moduleId" value="org_alfresco_module_rm"/>
<property name="name" value="org_alfresco_module_rm_RMv21InPlacePatch"/> <property name="name" value="org_alfresco_module_rm_RMv21InPlacePatch"/>
@@ -98,7 +100,7 @@
</bean> </bean>
<bean id="org_alfresco_module_rm_RMv21CapabilityPatch" <bean id="org_alfresco_module_rm_RMv21CapabilityPatch"
parent="module.baseComponent" parent="rm.baseModulePatch"
class="org.alfresco.module.org_alfresco_module_rm.patch.RMv21CapabilityPatch"> class="org.alfresco.module.org_alfresco_module_rm.patch.RMv21CapabilityPatch">
<property name="moduleId" value="org_alfresco_module_rm"/> <property name="moduleId" value="org_alfresco_module_rm"/>
<property name="name" value="org_alfresco_module_rm_RMv21CapabilityPatch"/> <property name="name" value="org_alfresco_module_rm_RMv21CapabilityPatch"/>
@@ -111,7 +113,7 @@
</bean> </bean>
<bean id="org_alfresco_module_rm_RMv2RMAdminUserPatch" <bean id="org_alfresco_module_rm_RMv2RMAdminUserPatch"
parent="module.baseComponent" parent="rm.baseModulePatch"
class="org.alfresco.module.org_alfresco_module_rm.patch.RMv2RMAdminUserPatch"> class="org.alfresco.module.org_alfresco_module_rm.patch.RMv2RMAdminUserPatch">
<property name="moduleId" value="org_alfresco_module_rm"/> <property name="moduleId" value="org_alfresco_module_rm"/>
<property name="name" value="org_alfresco_module_rm_RMv2RMAdminUserPatch"/> <property name="name" value="org_alfresco_module_rm_RMv2RMAdminUserPatch"/>
@@ -126,7 +128,7 @@
</bean> </bean>
<bean id="org_alfresco_module_rm_RMv21RecordInheritancePatch" <bean id="org_alfresco_module_rm_RMv21RecordInheritancePatch"
parent="module.baseComponent" parent="rm.baseModulePatch"
class="org.alfresco.module.org_alfresco_module_rm.patch.RMv21RecordInheritancePatch"> class="org.alfresco.module.org_alfresco_module_rm.patch.RMv21RecordInheritancePatch">
<property name="moduleId" value="org_alfresco_module_rm"/> <property name="moduleId" value="org_alfresco_module_rm"/>
<property name="name" value="org_alfresco_module_rm_RMv21RecordInheritancePatch"/> <property name="name" value="org_alfresco_module_rm_RMv21RecordInheritancePatch"/>
@@ -141,7 +143,7 @@
</bean> </bean>
<bean id="org_alfresco_module_rm_RMv21RolesPatch" <bean id="org_alfresco_module_rm_RMv21RolesPatch"
parent="module.baseComponent" parent="rm.baseModulePatch"
class="org.alfresco.module.org_alfresco_module_rm.patch.RMv21RolesPatch"> class="org.alfresco.module.org_alfresco_module_rm.patch.RMv21RolesPatch">
<property name="moduleId" value="org_alfresco_module_rm"/> <property name="moduleId" value="org_alfresco_module_rm"/>
<property name="name" value="org_alfresco_module_rm_RMv21RolesPatch"/> <property name="name" value="org_alfresco_module_rm_RMv21RolesPatch"/>
@@ -154,7 +156,7 @@
</bean> </bean>
<bean id="org_alfresco_module_rm_RMv21ReportServicePatch" <bean id="org_alfresco_module_rm_RMv21ReportServicePatch"
parent="module.baseComponent" parent="rm.baseModulePatch"
class="org.alfresco.module.org_alfresco_module_rm.patch.RMv21ReportServicePatch"> class="org.alfresco.module.org_alfresco_module_rm.patch.RMv21ReportServicePatch">
<property name="moduleId" value="org_alfresco_module_rm"/> <property name="moduleId" value="org_alfresco_module_rm"/>
<property name="name" value="org_alfresco_module_rm_RMv21ReportServicePatch"/> <property name="name" value="org_alfresco_module_rm_RMv21ReportServicePatch"/>
@@ -166,7 +168,7 @@
</bean> </bean>
<bean id="org_alfresco_module_rm_RMv21BehaviorScriptsPatch" <bean id="org_alfresco_module_rm_RMv21BehaviorScriptsPatch"
parent="module.baseComponent" parent="rm.baseModulePatch"
class="org.alfresco.module.org_alfresco_module_rm.patch.RMv21BehaviorScriptsPatch"> class="org.alfresco.module.org_alfresco_module_rm.patch.RMv21BehaviorScriptsPatch">
<property name="moduleId" value="org_alfresco_module_rm"/> <property name="moduleId" value="org_alfresco_module_rm"/>
<property name="name" value="org_alfresco_module_rm_RMv21BehaviorScriptsPatch"/> <property name="name" value="org_alfresco_module_rm_RMv21BehaviorScriptsPatch"/>
@@ -174,8 +176,7 @@
<property name="sinceVersion" value="2.1"/> <property name="sinceVersion" value="2.1"/>
<property name="appliesFromVersion" value="2.1"/> <property name="appliesFromVersion" value="2.1"/>
<property name="fileFolderService" ref="FileFolderService"/> <property name="fileFolderService" ref="FileFolderService"/>
<property name="nodeService" ref="NodeService"/> <property name="nodeService" ref="NodeService"/>
<property name="retryingTransactionHelper" ref="retryingTransactionHelper" />
</bean> </bean>
</beans> </beans>

View File

@@ -19,6 +19,8 @@
package org.alfresco.module.org_alfresco_module_rm.patch; package org.alfresco.module.org_alfresco_module_rm.patch;
import org.alfresco.repo.module.AbstractModuleComponent; 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.Log;
import org.apache.commons.logging.LogFactory; import org.apache.commons.logging.LogFactory;
@@ -34,6 +36,28 @@ public abstract class ModulePatchComponent extends AbstractModuleComponent
/** logger */ /** logger */
protected static Log logger = LogFactory.getLog(ModulePatchComponent.class); 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() * @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 ..."); logger.info("Module patch component '" + getName() + "' is executing ...");
} }
executePatch(); // execute path within an isolated transaction
retryingTransactionHelper.doInTransaction(new RetryingTransactionHelper.RetryingTransactionCallback<Void>()
{
@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) catch (Throwable exception)
{ {

View File

@@ -128,11 +128,6 @@ public class NotificationTemplatePatch extends ModulePatchComponent
@Override @Override
protected void executePatch() throws Throwable protected void executePatch() throws Throwable
{ {
if (logger.isDebugEnabled() == true)
{
logger.debug("RM Module NotificationTemplatePatch ...");
}
NodeRef supersededTemplate = notificationHelper.getSupersededTemplate(); NodeRef supersededTemplate = notificationHelper.getSupersededTemplate();
updateTemplate(supersededTemplate, PATH_SUPERSEDED); updateTemplate(supersededTemplate, PATH_SUPERSEDED);

View File

@@ -27,7 +27,6 @@ import org.alfresco.error.AlfrescoRuntimeException;
import org.alfresco.model.ContentModel; import org.alfresco.model.ContentModel;
import org.alfresco.repo.security.authentication.AuthenticationUtil; import org.alfresco.repo.security.authentication.AuthenticationUtil;
import org.alfresco.repo.security.authentication.AuthenticationUtil.RunAsWork; import org.alfresco.repo.security.authentication.AuthenticationUtil.RunAsWork;
import org.alfresco.repo.transaction.RetryingTransactionHelper;
import org.alfresco.repo.transaction.RetryingTransactionHelper.RetryingTransactionCallback; import org.alfresco.repo.transaction.RetryingTransactionHelper.RetryingTransactionCallback;
import org.alfresco.service.cmr.model.FileFolderService; import org.alfresco.service.cmr.model.FileFolderService;
import org.alfresco.service.cmr.model.FileInfo; import org.alfresco.service.cmr.model.FileInfo;
@@ -67,9 +66,7 @@ public class RMv21BehaviorScriptsPatch extends ModulePatchComponent implements B
/** File Folder Service */ /** File Folder Service */
private FileFolderService fileFolderService; private FileFolderService fileFolderService;
private RetryingTransactionHelper retryingTransactionHelper;
public void setNodeService(NodeService nodeService) public void setNodeService(NodeService nodeService)
{ {
this.nodeService = nodeService; this.nodeService = nodeService;
@@ -80,19 +77,10 @@ public class RMv21BehaviorScriptsPatch extends ModulePatchComponent implements B
this.fileFolderService = fileFolderService; this.fileFolderService = fileFolderService;
} }
public void setRetryingTransactionHelper(RetryingTransactionHelper retryingTransactionHelper)
{
this.retryingTransactionHelper = retryingTransactionHelper;
}
@Override @Override
protected void executePatch() throws Throwable 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 // check that the rm config root has been correctly bootstrapped
if (nodeService.exists(RM_CONFIG) == false) if (nodeService.exists(RM_CONFIG) == false)
{ {
@@ -168,11 +156,6 @@ public class RMv21BehaviorScriptsPatch extends ModulePatchComponent implements B
}, AuthenticationUtil.getSystemUserName()); }, AuthenticationUtil.getSystemUserName());
} }
if (logger.isDebugEnabled() == true)
{
logger.debug(" ... complete");
}
} }
} }

View File

@@ -84,11 +84,6 @@ public class RMv21CapabilityPatch extends ModulePatchComponent
@Override @Override
protected void executePatch() throws Throwable protected void executePatch() throws Throwable
{ {
if (logger.isDebugEnabled() == true)
{
logger.debug("RM module: RMv21CapabilityPatch executing ...");
}
Set<NodeRef> filePlans = filePlanService.getFilePlans(); Set<NodeRef> filePlans = filePlanService.getFilePlans();
if (logger.isDebugEnabled() == true) if (logger.isDebugEnabled() == true)
@@ -136,11 +131,6 @@ public class RMv21CapabilityPatch extends ModulePatchComponent
FilePlanRoleService.ROLE_RECORDS_MANAGER, FilePlanRoleService.ROLE_RECORDS_MANAGER,
FilePlanRoleService.ROLE_SECURITY_OFFICER); FilePlanRoleService.ROLE_SECURITY_OFFICER);
} }
if (logger.isDebugEnabled() == true)
{
logger.debug(" ... complete");
}
} }
/** /**

View File

@@ -109,11 +109,6 @@ public class RMv21RecordInheritancePatch extends ModulePatchComponent
@Override @Override
protected void executePatch() throws Throwable protected void executePatch() throws Throwable
{ {
if (logger.isDebugEnabled() == true)
{
logger.debug("RM module: RMv21RecordInheritancePatch executing ...");
}
Pair<Long, QName> aspectPair = qnameDAO.getQName(ASPECT_RECORD); Pair<Long, QName> aspectPair = qnameDAO.getQName(ASPECT_RECORD);
if (aspectPair != null) if (aspectPair != null)
{ {
@@ -143,10 +138,5 @@ public class RMv21RecordInheritancePatch extends ModulePatchComponent
} }
} }
} }
if (logger.isDebugEnabled() == true)
{
logger.debug(" ... complete");
}
} }
} }

View File

@@ -65,11 +65,6 @@ public class RMv21RolesPatch extends ModulePatchComponent implements BeanNameAwa
@Override @Override
protected void executePatch() throws Throwable protected void executePatch() throws Throwable
{ {
if (logger.isDebugEnabled() == true)
{
logger.debug("RM module: RMv21RolesPatch executing ...");
}
Set<NodeRef> filePlans = filePlanService.getFilePlans(); Set<NodeRef> filePlans = filePlanService.getFilePlans();
if (logger.isDebugEnabled() == true) 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) private void addAuthorityToZone(String roleGroupName)

View File

@@ -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.node.NodeDAO;
import org.alfresco.repo.domain.patch.PatchDAO; import org.alfresco.repo.domain.patch.PatchDAO;
import org.alfresco.repo.domain.qname.QNameDAO; 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.NodeRef;
import org.alfresco.service.cmr.repository.NodeService; import org.alfresco.service.cmr.repository.NodeService;
import org.alfresco.service.cmr.repository.Period; 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 static Log logger = LogFactory.getLog(RMv2FilePlanNodeRefPatch.class);
private NodeService nodeService; private NodeService nodeService;
private BehaviourFilter behaviourFilter;
private PatchDAO patchDAO; private PatchDAO patchDAO;
private NodeDAO nodeDAO; private NodeDAO nodeDAO;
private QNameDAO qnameDAO; private QNameDAO qnameDAO;
private PermissionService permissionService; private PermissionService permissionService;
private FilePlanService filePlanService; private FilePlanService filePlanService;
private FilePlanRoleService filePlanRoleService; private FilePlanRoleService filePlanRoleService;
private RetryingTransactionHelper retryingTransactionHelper;
public void setNodeService(NodeService nodeService) public void setNodeService(NodeService nodeService)
{ {
this.nodeService = nodeService; this.nodeService = nodeService;
} }
public void setBehaviourFilter(BehaviourFilter behaviourFilter)
{
this.behaviourFilter = behaviourFilter;
}
public void setPatchDAO(PatchDAO patchDAO) public void setPatchDAO(PatchDAO patchDAO)
{ {
this.patchDAO = patchDAO; this.patchDAO = patchDAO;
@@ -105,11 +96,6 @@ public class RMv2FilePlanNodeRefPatch extends ModulePatchComponent
this.filePlanRoleService = filePlanRoleService; this.filePlanRoleService = filePlanRoleService;
} }
public void setRetryingTransactionHelper(RetryingTransactionHelper retryingTransactionHelper)
{
this.retryingTransactionHelper = retryingTransactionHelper;
}
/** /**
* @param filePlanService file plan service * @param filePlanService file plan service
*/ */
@@ -124,81 +110,56 @@ public class RMv2FilePlanNodeRefPatch extends ModulePatchComponent
@Override @Override
protected void executePatch() throws Throwable protected void executePatch() throws Throwable
{ {
retryingTransactionHelper.doInTransaction(new Work(), false, true); Pair<Long, QName> aspectPair = qnameDAO.getQName(RecordsManagementModel.ASPECT_FILE_PLAN_COMPONENT);
if (aspectPair != null)
if (logger.isDebugEnabled() == true)
{ {
logger.debug(" ... complete RM Module RMv2FilePlanNodeRef Patch"); List<Long> filePlanComponents = patchDAO.getNodesByAspectQNameId(aspectPair.getFirst(), 0L, patchDAO.getMaxAdmNodeID());
}
}
private class Work implements RetryingTransactionHelper.RetryingTransactionCallback<Integer> if (logger.isDebugEnabled() == true)
{
@Override
public Integer execute() throws Throwable
{
Pair<Long, QName> aspectPair = qnameDAO.getQName(RecordsManagementModel.ASPECT_FILE_PLAN_COMPONENT);
if (aspectPair != null)
{ {
List<Long> filePlanComponents = patchDAO.getNodesByAspectQNameId(aspectPair.getFirst(), 0L, patchDAO.getMaxAdmNodeID()); logger.debug(" ... updating " + filePlanComponents.size() + " items" );
if (logger.isDebugEnabled() == true)
{
logger.debug(" ... updating " + filePlanComponents.size() + " items" );
}
behaviourFilter.disableBehaviour();
try
{
for (Long filePlanComponent : filePlanComponents)
{
Pair<Long, NodeRef> 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();
}
} }
// nothing to do
return 0; for (Long filePlanComponent : filePlanComponents)
} {
Pair<Long, NodeRef> 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"));
}
}
}
}
} }
} }

View File

@@ -49,8 +49,6 @@ public class RMv2ModelPatch extends ModulePatchComponent
private PatchDAO patchDAO; private PatchDAO patchDAO;
private NodeDAO nodeDAO; private NodeDAO nodeDAO;
private QNameDAO qnameDAO; private QNameDAO qnameDAO;
private RetryingTransactionHelper retryingTransactionHelper;
public void setPatchDAO(PatchDAO patchDAO) public void setPatchDAO(PatchDAO patchDAO)
{ {
@@ -67,33 +65,21 @@ public class RMv2ModelPatch extends ModulePatchComponent
this.qnameDAO = qnameDAO; this.qnameDAO = qnameDAO;
} }
public void setRetryingTransactionHelper(RetryingTransactionHelper retryingTransactionHelper)
{
this.retryingTransactionHelper = retryingTransactionHelper;
}
/** /**
* @see org.alfresco.repo.module.AbstractModuleComponent#executeInternal() * @see org.alfresco.repo.module.AbstractModuleComponent#executeInternal()
*/ */
@Override @Override
protected void executePatch() throws Throwable 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, "filePlan"), TYPE_FILE_PLAN, "TYPE");
updateQName(QName.createQName(DOD_URI, "recordCategory"), TYPE_RECORD_CATEGORY, "TYPE"); updateQName(QName.createQName(DOD_URI, "recordCategory"), TYPE_RECORD_CATEGORY, "TYPE");
updateQName(QName.createQName(DOD_URI, "ghosted"), ASPECT_GHOSTED, "ASPECT"); updateQName(QName.createQName(DOD_URI, "ghosted"), ASPECT_GHOSTED, "ASPECT");
} }
private void updateQName(QName qnameBefore, QName qnameAfter, String reindexClass) private void updateQName(QName qnameBefore, QName qnameAfter, String reindexClass)
{ {
Work work = new Work(qnameBefore, qnameAfter, reindexClass); Work work = new Work(qnameBefore, qnameAfter, reindexClass);
retryingTransactionHelper.doInTransaction(work, false, true); retryingTransactionHelper.doInTransaction(work, false, true);
} }
private class Work implements RetryingTransactionHelper.RetryingTransactionCallback<Integer> private class Work implements RetryingTransactionHelper.RetryingTransactionCallback<Integer>
@@ -102,6 +88,13 @@ public class RMv2ModelPatch extends ModulePatchComponent
private QName qnameAfter; private QName qnameAfter;
private String reindexClass; private String reindexClass;
/**
* Constructor
*
* @param qnameBefore qname before
* @param qnameAfter qname after
* @param reindexClass reindex class
*/
Work(QName qnameBefore, QName qnameAfter, String reindexClass) Work(QName qnameBefore, QName qnameAfter, String reindexClass)
{ {
this.qnameBefore = qnameBefore; this.qnameBefore = qnameBefore;
@@ -109,8 +102,7 @@ public class RMv2ModelPatch extends ModulePatchComponent
this.reindexClass = reindexClass; this.reindexClass = reindexClass;
} }
/* /**
* (non-Javadoc)
* @see org.alfresco.repo.transaction.RetryingTransactionHelper.RetryingTransactionCallback#execute() * @see org.alfresco.repo.transaction.RetryingTransactionHelper.RetryingTransactionCallback#execute()
*/ */
@Override @Override

View File

@@ -115,11 +115,6 @@ public class RMv2RMAdminUserPatch extends ModulePatchComponent implements BeanNa
@Override @Override
protected void executePatch() throws Throwable protected void executePatch() throws Throwable
{ {
if (logger.isDebugEnabled() == true)
{
logger.debug("RM Module RMv2RMAdminUserPatch ...");
}
String user = filePlanAuthenticationService.getRmAdminUserName(); String user = filePlanAuthenticationService.getRmAdminUserName();
String firstName = I18NUtil.getMessage(MSG_FIRST_NAME); String firstName = I18NUtil.getMessage(MSG_FIRST_NAME);
String lastName = I18NUtil.getMessage(MSG_LAST_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); filePlanRoleService.assignRoleToAuthority(filePlan, FilePlanRoleService.ROLE_ADMIN, user);
} }
if (logger.isDebugEnabled() == true)
{
logger.debug(" ... RMv2RMAdminUserPatch complete");
}
} }
} }
} }

View File

@@ -72,11 +72,6 @@ public class RMv2SavedSearchPatch extends ModulePatchComponent
@Override @Override
protected void executePatch() throws Throwable protected void executePatch() throws Throwable
{ {
if (logger.isDebugEnabled() == true)
{
logger.debug("RM Module RMv2SavedSearchPatch ...");
}
if (siteService.getSite(RM_SITE_ID) != null) if (siteService.getSite(RM_SITE_ID) != null)
{ {
// get the saved searches // get the saved searches
@@ -98,11 +93,6 @@ public class RMv2SavedSearchPatch extends ModulePatchComponent
savedSearchDetails.getSearchParameters(), savedSearchDetails.getSearchParameters(),
savedSearchDetails.isPublic()); savedSearchDetails.isPublic());
} }
} }
if (logger.isDebugEnabled() == true)
{
logger.debug(" ... complete");
}
} }
} }