From d7d9f151ec14a801794fb75c5ac69c07a6a0f7bf Mon Sep 17 00:00:00 2001 From: Roy Wetherall Date: Mon, 21 May 2012 06:20:01 +0000 Subject: [PATCH] RM-360: Upgrade from RM 1.0 to RM 2.0 failed * By passed issues caused by changing AMP name ... seems the component registry isn't updated so some are re-run, potentially causing issues * Added compatibility class ... is referenced by a 1.0 custom model .. also gives us a slot if other issues arrise .. may move some of the other compatibility code in here if I get time * Tested upgrading from V3.4.x to V4.0.1 with RM 2.0 git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/modules/recordsmanagement/BRANCHES/V2.0@36597 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261 --- rm-server/.classpath | 1 + rm-server/build.gradle | 3 + .../bootstrap/RMDataDictionaryBootstrap.xml | 2 +- .../org_alfresco_module_rm/module-context.xml | 8 +-- .../caveat/RMListOfValuesConstraint.java | 32 ++++++++++ .../BootstrapImporterModuleComponent.java | 58 +++++++++++++++++++ .../RecordsManagementBootstrap.java | 3 +- 7 files changed, 101 insertions(+), 6 deletions(-) create mode 100644 rm-server/source/compatibility/org/alfresco/module/org_alfresco_module_dod5015/caveat/RMListOfValuesConstraint.java create mode 100644 rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/bootstrap/BootstrapImporterModuleComponent.java rename rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/{ => bootstrap}/RecordsManagementBootstrap.java (93%) diff --git a/rm-server/.classpath b/rm-server/.classpath index 7003c32d17..a1241c105e 100644 --- a/rm-server/.classpath +++ b/rm-server/.classpath @@ -1,6 +1,7 @@ + diff --git a/rm-server/build.gradle b/rm-server/build.gradle index 93079a2730..4489d317f6 100644 --- a/rm-server/build.gradle +++ b/rm-server/build.gradle @@ -1,3 +1,6 @@ + +sourceSets.main.java.srcDirs = [sourceJavaDir, 'source/compatibility'] + dependencies { compile fileTree(dir: 'libs', include: '*.jar') diff --git a/rm-server/config/alfresco/module/org_alfresco_module_rm/bootstrap/RMDataDictionaryBootstrap.xml b/rm-server/config/alfresco/module/org_alfresco_module_rm/bootstrap/RMDataDictionaryBootstrap.xml index 57ee9dac21..20ffd03264 100644 --- a/rm-server/config/alfresco/module/org_alfresco_module_rm/bootstrap/RMDataDictionaryBootstrap.xml +++ b/rm-server/config/alfresco/module/org_alfresco_module_rm/bootstrap/RMDataDictionaryBootstrap.xml @@ -61,7 +61,7 @@ contentUrl=classpath:alfresco/module/org_alfresco_module_rm/bootstrap/content/recordsCustomModel.xml|mimetype=text/plain|encoding=UTF-8 recordsCustomModel.xml recordsCustomModel.xml - {http://www.alfresco.org/model/rmcustom/1.0}rmc + {http://www.alfresco.org/model/rmcustom/1.0}rmcustom Records Management Custom Model Alfresco 1.0 diff --git a/rm-server/config/alfresco/module/org_alfresco_module_rm/module-context.xml b/rm-server/config/alfresco/module/org_alfresco_module_rm/module-context.xml index 087efb6696..ffe4349a2c 100644 --- a/rm-server/config/alfresco/module/org_alfresco_module_rm/module-context.xml +++ b/rm-server/config/alfresco/module/org_alfresco_module_rm/module-context.xml @@ -4,16 +4,15 @@ - + - @@ -155,7 +154,8 @@ - + + diff --git a/rm-server/source/compatibility/org/alfresco/module/org_alfresco_module_dod5015/caveat/RMListOfValuesConstraint.java b/rm-server/source/compatibility/org/alfresco/module/org_alfresco_module_dod5015/caveat/RMListOfValuesConstraint.java new file mode 100644 index 0000000000..307a432ee2 --- /dev/null +++ b/rm-server/source/compatibility/org/alfresco/module/org_alfresco_module_dod5015/caveat/RMListOfValuesConstraint.java @@ -0,0 +1,32 @@ +/* + * 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_dod5015.caveat; + +/** + * Compatibility Implementation. + *

+ * Used as a compatibility implementation when migrating from V1.0 to V2.0. RMCustom model still references + * this class implementation, but package has been changed. + * + * @author Roy Wetherall + */ +public class RMListOfValuesConstraint extends org.alfresco.module.org_alfresco_module_rm.caveat.RMListOfValuesConstraint +{ + // No implementation +} diff --git a/rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/bootstrap/BootstrapImporterModuleComponent.java b/rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/bootstrap/BootstrapImporterModuleComponent.java new file mode 100644 index 0000000000..2d6b69aa15 --- /dev/null +++ b/rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/bootstrap/BootstrapImporterModuleComponent.java @@ -0,0 +1,58 @@ +/* + * 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.bootstrap; + +import org.alfresco.repo.module.ImporterModuleComponent; +import org.alfresco.service.cmr.repository.NodeRef; +import org.alfresco.service.cmr.repository.NodeService; +import org.alfresco.service.cmr.repository.StoreRef; + +/** + * Custom implementation of module component importer + * + * @author Roy Wetherall + * @since 2.0 + */ +public class BootstrapImporterModuleComponent extends ImporterModuleComponent +{ + private static final String CONFIG_NODEID = "rm_config_folder"; + + private NodeService nodeService; + + public void setNodeService(NodeService nodeService) + { + this.nodeService = nodeService; + } + + /** + * Need to check whether this module has already been executed. + * + * @see org.alfresco.repo.module.ImporterModuleComponent#executeInternal() + */ + @Override + protected void executeInternal() throws Throwable + { + NodeRef nodeRef = new NodeRef(StoreRef.STORE_REF_WORKSPACE_SPACESSTORE, CONFIG_NODEID); + if (nodeService.exists(nodeRef) == false) + { + super.executeInternal(); + } + } + +} diff --git a/rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/RecordsManagementBootstrap.java b/rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/bootstrap/RecordsManagementBootstrap.java similarity index 93% rename from rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/RecordsManagementBootstrap.java rename to rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/bootstrap/RecordsManagementBootstrap.java index 1989960c7d..cb97969465 100644 --- a/rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/RecordsManagementBootstrap.java +++ b/rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/bootstrap/RecordsManagementBootstrap.java @@ -16,8 +16,9 @@ * 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; +package org.alfresco.module.org_alfresco_module_rm.bootstrap; +import org.alfresco.module.org_alfresco_module_rm.RecordsManagementAdminService; import org.alfresco.module.org_alfresco_module_rm.caveat.RMCaveatConfigService; import org.alfresco.module.org_alfresco_module_rm.email.CustomEmailMappingService; import org.alfresco.repo.security.authentication.AuthenticationUtil;