RM-765: Ensure schema based patches are not executed on a newly installed system

git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/modules/recordsmanagement/HEAD@59974 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261
This commit is contained in:
Roy Wetherall
2014-01-15 17:33:55 +00:00
parent e96d85d453
commit e8d8fd98ca
3 changed files with 12 additions and 221 deletions

View File

@@ -10,6 +10,7 @@
class="org.alfresco.module.org_alfresco_module_rm.bootstrap.BootstrapImporterModuleComponent"
parent="module.baseComponent">
<property name="nodeService" ref="nodeService" />
<property name="modulePatchExecuter" ref="rm.modulePatchExecuter" />
<property name="moduleId" value="org_alfresco_module_rm"/>
<property name="name" value="org_alfresco_module_rm_bootstrapData"/>
<property name="description" value="Bootstrap records management data"/>

View File

@@ -1,221 +0,0 @@
<?xml version='1.0' encoding='UTF-8'?>
<!DOCTYPE beans PUBLIC '-//SPRING//DTD BEAN//EN' 'http://www.springframework.org/dtd/spring-beans.dtd'>
<beans>
<!-- Base bean definitions -->
<bean id="rm.baseModulePatch" abstract="true" parent="module.baseComponent">
<property name="retryingTransactionHelper" ref="retryingTransactionHelper"/>
<property name="behaviourFilter" ref="policyBehaviourFilter" />
</bean>
<bean id="rm.baseCapabilityPatch" abstract="true" parent="rm.baseModulePatch">
<property name="filePlanService" ref="FilePlanService"/>
<property name="filePlanRoleService" ref="FilePlanRoleService"/>
<property name="capabilityService" ref="CapabilityService"/>
</bean>
<!-- RM v2.0 Patches -->
<bean id="org_alfresco_module_rm_notificationTemplatePatch"
parent="rm.baseModulePatch"
class="org.alfresco.module.org_alfresco_module_rm.patch.NotificationTemplatePatch">
<property name="moduleId" value="org_alfresco_module_rm"/>
<property name="name" value="org_alfresco_module_rm_notificationTemplatePatch"/>
<property name="description" value="Patches new versions of the notification templates."/>
<property name="sinceVersion" value="2.0"/>
<property name="appliesFromVersion" value="2.0"/>
<property name="nodeService" ref="NodeService"/>
<property name="notificationHelper" ref="recordsManagementNotificationHelper"/>
<property name="contentService" ref="ContentService"/>
<property name="versionService" ref="VersionService"/>
<property name="auditService" ref="AuditService"/>
</bean>
<bean id="org_alfresco_module_rm_RMv2ModelPatch"
parent="rm.baseModulePatch"
class="org.alfresco.module.org_alfresco_module_rm.patch.RMv2ModelPatch">
<property name="moduleId" value="org_alfresco_module_rm"/>
<property name="name" value="org_alfresco_module_rm_RMv2ModelPatch"/>
<property name="description" value="Patches the existing RM data for the RM v2.0 model updates."/>
<property name="sinceVersion" value="2.0"/>
<property name="appliesFromVersion" value="2.0"/>
<property name="patchDAO" ref="patchDAO"/>
<property name="nodeDAO" ref="nodeDAO" />
<property name="qnameDAO" ref="qnameDAO"/>
</bean>
<bean id="org_alfresco_module_rm_RMv2FilePlanNodeRefPatch"
parent="rm.baseModulePatch"
class="org.alfresco.module.org_alfresco_module_rm.patch.RMv2FilePlanNodeRefPatch">
<property name="moduleId" value="org_alfresco_module_rm"/>
<property name="name" value="org_alfresco_module_rm_RMv2FilePlanNodeRefPatch"/>
<property name="description" value="Patches the existing RM data with the root file plan values."/>
<property name="sinceVersion" value="2.0"/>
<property name="appliesFromVersion" value="2.0"/>
<property name="patchDAO" ref="patchDAO"/>
<property name="nodeDAO" ref="nodeDAO" />
<property name="qnameDAO" ref="qnameDAO"/>
<property name="nodeService" ref="NodeService"/>
<property name="permissionService" ref="PermissionService"/>
<property name="filePlanService" ref="FilePlanService" />
<property name="filePlanRoleService" ref="filePlanRoleService" />
</bean>
<bean id="org_alfresco_module_rm_RMv2SavedSearchPatch"
parent="rm.baseModulePatch"
class="org.alfresco.module.org_alfresco_module_rm.patch.RMv2SavedSearchPatch">
<property name="moduleId" value="org_alfresco_module_rm"/>
<property name="name" value="org_alfresco_module_rm_RMv2SavedSearchPatch"/>
<property name="description" value="Patches the existing saved seaches."/>
<property name="sinceVersion" value="2.0"/>
<property name="appliesFromVersion" value="2.0"/>
<property name="recordsManagementSearchService" ref="RecordsManagementSearchService" />
<property name="siteService" ref="SiteService" />
<property name="contentService" ref="ContentService"/>
</bean>
<!-- RM v2.1 Patches -->
<bean id="org_alfresco_module_rm_notificationTemplatePatch_v21"
parent="rm.baseModulePatch"
class="org.alfresco.module.org_alfresco_module_rm.patch.NotificationTemplatePatch_v21">
<property name="moduleId" value="org_alfresco_module_rm"/>
<property name="name" value="org_alfresco_module_rm_notificationTemplatePatch_v21"/>
<property name="description" value="Patches new versions of the notification templates."/>
<property name="sinceVersion" value="2.1"/>
<property name="appliesFromVersion" value="2.1"/>
<property name="dependsOn">
<list>
<ref bean="org_alfresco_module_rm_bootstrapData" />
</list>
</property>
<property name="nodeService" ref="NodeService"/>
<property name="notificationHelper" ref="recordsManagementNotificationHelper"/>
<property name="contentService" ref="ContentService"/>
</bean>
<bean id="org_alfresco_module_rm_RMv21InPlacePatch"
parent="rm.baseModulePatch"
class="org.alfresco.module.org_alfresco_module_rm.patch.RMv21InPlacePatch">
<property name="moduleId" value="org_alfresco_module_rm"/>
<property name="name" value="org_alfresco_module_rm_RMv21InPlacePatch"/>
<property name="description" value="Patches the existing RM data for the RM v2.1 InPlace features."/>
<property name="sinceVersion" value="2.1"/>
<property name="appliesFromVersion" value="2.1"/>
<property name="filePlanRoleService" ref="FilePlanRoleService"/>
<property name="filePlanPermissionService" ref="FilePlanPermissionService"/>
<property name="filePlanService" ref="FilePlanService"/>
<property name="capabilityService" ref="CapabilityService"/>
<property name="ruleService" ref="RuleService" />
<property name="nodeService" ref="NodeService" />
</bean>
<bean id="org_alfresco_module_rm_RMv21CapabilityPatch"
parent="rm.baseCapabilityPatch"
class="org.alfresco.module.org_alfresco_module_rm.patch.RMv21CapabilityPatch">
<property name="moduleId" value="org_alfresco_module_rm"/>
<property name="name" value="org_alfresco_module_rm_RMv21CapabilityPatch"/>
<property name="description" value="Patches the existing RM data for the RM v2.1 updated capabilities."/>
<property name="sinceVersion" value="2.1"/>
<property name="appliesFromVersion" value="2.1"/>
</bean>
<bean id="org_alfresco_module_rm_RMv2RMAdminUserPatch"
parent="rm.baseModulePatch"
class="org.alfresco.module.org_alfresco_module_rm.patch.RMv2RMAdminUserPatch">
<property name="moduleId" value="org_alfresco_module_rm"/>
<property name="name" value="org_alfresco_module_rm_RMv2RMAdminUserPatch"/>
<property name="description" value="Adds the global RM admin user to all existing file plans."/>
<property name="sinceVersion" value="2.1"/>
<property name="appliesFromVersion" value="2.1"/>
<property name="filePlanService" ref="FilePlanService"/>
<property name="filePlanRoleService" ref="FilePlanRoleService"/>
<property name="authenticationService" ref="AuthenticationService" />
<property name="personService" ref="PersonService" />
<property name="filePlanAuthenticationService" ref="FilePlanAuthenticationService" />
</bean>
<bean id="org_alfresco_module_rm_RMv21RecordInheritancePatch"
parent="rm.baseModulePatch"
class="org.alfresco.module.org_alfresco_module_rm.patch.RMv21RecordInheritancePatch">
<property name="moduleId" value="org_alfresco_module_rm"/>
<property name="name" value="org_alfresco_module_rm_RMv21RecordInheritancePatch"/>
<property name="description" value="Adjust record permission inheritance."/>
<property name="sinceVersion" value="2.1"/>
<property name="appliesFromVersion" value="2.1"/>
<property name="patchDAO" ref="patchDAO"/>
<property name="nodeDAO" ref="nodeDAO" />
<property name="qnameDAO" ref="qnameDAO"/>
<property name="nodeService" ref="nodeService"/>
<property name="filePlanPermissionServiceImpl" ref="filePlanPermissionService"/>
</bean>
<bean id="org_alfresco_module_rm_RMv21RolesPatch"
parent="rm.baseModulePatch"
class="org.alfresco.module.org_alfresco_module_rm.patch.RMv21RolesPatch">
<property name="moduleId" value="org_alfresco_module_rm"/>
<property name="name" value="org_alfresco_module_rm_RMv21RolesPatch"/>
<property name="description" value="Add existing roles to the rm zone."/>
<property name="sinceVersion" value="2.1"/>
<property name="appliesFromVersion" value="2.1"/>
<property name="filePlanService" ref="FilePlanService"/>
<property name="filePlanRoleService" ref="FilePlanRoleService"/>
<property name="authorityService" ref="AuthorityService"></property>
</bean>
<bean id="org_alfresco_module_rm_RMv21ReportServicePatch"
parent="rm.baseModulePatch"
class="org.alfresco.module.org_alfresco_module_rm.patch.RMv21ReportServicePatch">
<property name="moduleId" value="org_alfresco_module_rm"/>
<property name="name" value="org_alfresco_module_rm_RMv21ReportServicePatch"/>
<property name="description" value="Add report service templates."/>
<property name="sinceVersion" value="2.1"/>
<property name="appliesFromVersion" value="2.1"/>
<property name="contentService" ref="ContentService" />
<property name="nodeService" ref="NodeService" />
</bean>
<bean id="org_alfresco_module_rm_RMv21BehaviorScriptsPatch"
parent="rm.baseModulePatch"
class="org.alfresco.module.org_alfresco_module_rm.patch.RMv21BehaviorScriptsPatch">
<property name="moduleId" value="org_alfresco_module_rm"/>
<property name="name" value="org_alfresco_module_rm_RMv21BehaviorScriptsPatch"/>
<property name="description" value="Move existing behavior scripts to their dedicated behavior folder, freeing existing scripts folder up for non-behavior RM scripts."/>
<property name="sinceVersion" value="2.1"/>
<property name="appliesFromVersion" value="2.1"/>
<property name="fileFolderService" ref="FileFolderService"/>
<property name="nodeService" ref="NodeService"/>
</bean>
<!-- RM v2.2 Patches -->
<bean id="org_alfresco_module_rm_RMv22ReportTemplatePatch"
parent="rm.baseModulePatch"
class="org.alfresco.module.org_alfresco_module_rm.patch.RMv22ReportTemplatePatch">
<property name="moduleId" value="org_alfresco_module_rm"/>
<property name="name" value="org_alfresco_module_rm_RMv22ReportTemplatePatch"/>
<property name="description" value="Patches new versions of the report templates."/>
<property name="sinceVersion" value="2.2"/>
<property name="appliesFromVersion" value="2.2"/>
<property name="dependsOn">
<list>
<ref bean="org_alfresco_module_rm_RMv21ReportServicePatch" />
</list>
</property>
<property name="nodeService" ref="NodeService"/>
<property name="contentService" ref="ContentService"/>
</bean>
<bean id="org_alfresco_module_rm_RMv22CapabilityPatch"
parent="rm.baseCapabilityPatch"
class="org.alfresco.module.org_alfresco_module_rm.patch.RMv22CapabilityPatch">
<property name="moduleId" value="org_alfresco_module_rm"/>
<property name="name" value="org_alfresco_module_rm_RMv22CapabilityPatch"/>
<property name="description" value="Patches the existing RM data for the RM v2.2 updated capabilities."/>
<property name="sinceVersion" value="2.2"/>
<property name="appliesFromVersion" value="2.2"/>
</bean>
</beans>

View File

@@ -18,6 +18,7 @@
*/
package org.alfresco.module.org_alfresco_module_rm.bootstrap;
import org.alfresco.module.org_alfresco_module_rm.patch.ModulePatchExecuter;
import org.alfresco.repo.module.ImporterModuleComponent;
import org.alfresco.service.cmr.repository.NodeRef;
import org.alfresco.service.cmr.repository.NodeService;
@@ -35,11 +36,18 @@ public class BootstrapImporterModuleComponent extends ImporterModuleComponent
private NodeService nodeService;
private ModulePatchExecuter modulePatchExecuter;
public void setNodeService(NodeService nodeService)
{
this.nodeService = nodeService;
}
public void setModulePatchExecuter(ModulePatchExecuter modulePatchExecuter)
{
this.modulePatchExecuter = modulePatchExecuter;
}
/**
* Need to check whether this module has already been executed.
*
@@ -54,6 +62,9 @@ public class BootstrapImporterModuleComponent extends ImporterModuleComponent
if (nodeService.exists(nodeRef) == false)
{
super.executeInternal();
// init module schema number
modulePatchExecuter.initSchemaVersion();
}
}
catch (Throwable exception)