From 7a7f42743e22b6b344ea573be7d79edfbec290d6 Mon Sep 17 00:00:00 2001 From: Derek Hulley Date: Tue, 29 Nov 2011 17:53:02 +0000 Subject: [PATCH] End-of-life for several 2.1 and 2.2 patches - Officially, all upgrades from 2.1.x, 2.2.x and 3.0.x must now go via 3.4.x - Allows upgrades without indexes in 4.0 e.g. 'patch.deploymentMigration' (ALF-11760) - When attempting to upgrade directly from V2.1 or V2.2, a message will appear: Patch ''{0}'' was last supported on version {1}.\n Please follow an incremental upgrade using version {2}. git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/alfresco/HEAD/root@32396 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261 --- config/alfresco/bootstrap-context.xml | 2 - config/alfresco/bootstrap/formsSpace.xml | 15 - config/alfresco/bootstrap/webScripts2.xml | 79 ------ .../alfresco/bootstrap/webScriptsReadme2.xml | 8 - ...emaUpdate-2.1-RemoveWcmSubmittedAspect.sql | 35 --- .../_pg_keypositions-function.sql | 15 - .../alfresco/patch/patch-services-context.xml | 264 ++++-------------- .../AVMFormsPropertyTokenisationPatch.java | 45 --- .../AVMStorePropertyTokenisationPatch.java | 48 ---- .../patch/impl/DeploymentMigrationPatch.java | 241 ---------------- 10 files changed, 49 insertions(+), 703 deletions(-) delete mode 100644 config/alfresco/bootstrap/formsSpace.xml delete mode 100644 config/alfresco/bootstrap/webScripts2.xml delete mode 100644 config/alfresco/bootstrap/webScriptsReadme2.xml delete mode 100644 config/alfresco/dbscripts/upgrade/2.1/org.hibernate.dialect.Dialect/AlfrescoSchemaUpdate-2.1-RemoveWcmSubmittedAspect.sql delete mode 100644 config/alfresco/dbscripts/upgrade/2.1/org.hibernate.dialect.PostgreSQLDialect/_pg_keypositions-function.sql delete mode 100644 source/java/org/alfresco/repo/admin/patch/impl/AVMFormsPropertyTokenisationPatch.java delete mode 100644 source/java/org/alfresco/repo/admin/patch/impl/AVMStorePropertyTokenisationPatch.java delete mode 100644 source/java/org/alfresco/repo/admin/patch/impl/DeploymentMigrationPatch.java diff --git a/config/alfresco/bootstrap-context.xml b/config/alfresco/bootstrap-context.xml index b778aaabb2..09ad0f37b1 100644 --- a/config/alfresco/bootstrap-context.xml +++ b/config/alfresco/bootstrap-context.xml @@ -125,13 +125,11 @@ - - diff --git a/config/alfresco/bootstrap/formsSpace.xml b/config/alfresco/bootstrap/formsSpace.xml deleted file mode 100644 index d89a5b1112..0000000000 --- a/config/alfresco/bootstrap/formsSpace.xml +++ /dev/null @@ -1,15 +0,0 @@ - - - - - - - - Content Forms - space-icon-default - Forms - Forms - - - \ No newline at end of file diff --git a/config/alfresco/bootstrap/webScripts2.xml b/config/alfresco/bootstrap/webScripts2.xml deleted file mode 100644 index 7a78f00f1b..0000000000 --- a/config/alfresco/bootstrap/webScripts2.xml +++ /dev/null @@ -1,79 +0,0 @@ - - - - - - - - - - - - - true - contentUrl=classpath:alfresco/bootstrap/webscripts/upload.get.desc.xml|mimetype=text/xml|size=|encoding=UTF-8|locale=en_US_ - - - upload.get.desc.xml - - - - - - - - - - true - contentUrl=classpath:alfresco/bootstrap/webscripts/upload.get.html.ftl|mimetype=text/plain|size=|encoding=UTF-8|locale=en_US_ - - - upload.get.html.ftl - - - - - - - - - - true - contentUrl=classpath:alfresco/bootstrap/webscripts/upload.post.desc.xml|mimetype=text/xml|size=|encoding=UTF-8|locale=en_US_ - - - upload.post.desc.xml - - - - - - - - - - true - contentUrl=classpath:alfresco/bootstrap/webscripts/upload.post.js|mimetype=application/x-javascript|size=|encoding=UTF-8|locale=en_US_ - - - upload.post.js - - - - - - - - - - true - contentUrl=classpath:alfresco/bootstrap/webscripts/upload.post.html.ftl|mimetype=text/plain|size=|encoding=UTF-8|locale=en_US_ - - - upload.post.html.ftl - - - - - - \ No newline at end of file diff --git a/config/alfresco/bootstrap/webScriptsReadme2.xml b/config/alfresco/bootstrap/webScriptsReadme2.xml deleted file mode 100644 index de4fcb16bb..0000000000 --- a/config/alfresco/bootstrap/webScriptsReadme2.xml +++ /dev/null @@ -1,8 +0,0 @@ - - - - - contentUrl=classpath:alfresco/bootstrap/webscripts/readme.html|mimetype=text/html|size=|encoding=UTF-8|locale=en_US_ - - - \ No newline at end of file diff --git a/config/alfresco/dbscripts/upgrade/2.1/org.hibernate.dialect.Dialect/AlfrescoSchemaUpdate-2.1-RemoveWcmSubmittedAspect.sql b/config/alfresco/dbscripts/upgrade/2.1/org.hibernate.dialect.Dialect/AlfrescoSchemaUpdate-2.1-RemoveWcmSubmittedAspect.sql deleted file mode 100644 index 97c3acb5ea..0000000000 --- a/config/alfresco/dbscripts/upgrade/2.1/org.hibernate.dialect.Dialect/AlfrescoSchemaUpdate-2.1-RemoveWcmSubmittedAspect.sql +++ /dev/null @@ -1,35 +0,0 @@ --- --- Title: Remove wcmwf:submitted Aspect --- Database: Generic --- Since: V2.1 Schema 73 --- Author: Derek Hulley --- --- Please contact support@alfresco.com if you need assistance with the upgrade. --- --- This removes the wcmwf:submitted aspect along with the wcmwf:workflowInstanceId property --- from the AVM nodes - -DELETE FROM avm_aspects WHERE EXISTS -( - SELECT q.id FROM alf_qname q - JOIN alf_namespace n ON (q.ns_id = n.id) - WHERE n.uri = 'http://www.alfresco.org/model/wcmworkflow/1.0' and q.local_name = 'submitted' AND q.id = avm_aspects.qname_id -); -DELETE FROM avm_node_properties WHERE EXISTS -( - SELECT q.id FROM alf_qname q - JOIN alf_namespace n ON (q.ns_id = n.id) - WHERE n.uri = 'http://www.alfresco.org/model/wcmworkflow/1.0' and q.local_name = 'workflowInstanceId' AND q.id = avm_node_properties.qname_id -); - --- --- Record script finish --- -DELETE FROM alf_applied_patch WHERE id = 'patch.db-V2.1-RemoveWcmSubmittedAspect'; -INSERT INTO alf_applied_patch - (id, description, fixes_from_schema, fixes_to_schema, applied_to_schema, target_schema, applied_on_date, applied_to_server, was_executed, succeeded, report) - VALUES - ( - 'patch.db-V2.1-RemoveWcmSubmittedAspect', 'Manually executed script upgrade V2.1: Remove wcmwf:submitted aspect', - 0, 72, -1, 73, null, 'UNKOWN', ${TRUE}, ${TRUE}, 'Script completed' - ); \ No newline at end of file diff --git a/config/alfresco/dbscripts/upgrade/2.1/org.hibernate.dialect.PostgreSQLDialect/_pg_keypositions-function.sql b/config/alfresco/dbscripts/upgrade/2.1/org.hibernate.dialect.PostgreSQLDialect/_pg_keypositions-function.sql deleted file mode 100644 index 0587b3e6d9..0000000000 --- a/config/alfresco/dbscripts/upgrade/2.1/org.hibernate.dialect.PostgreSQLDialect/_pg_keypositions-function.sql +++ /dev/null @@ -1,15 +0,0 @@ -/* - * Solution to PostgreSQL issue: - * function information_schema._pg_keypositions() does not exist - * Taken from: http://archives.postgresql.org/pgsql-general/2005-12/msg00060.php - * Author: Jason Long - * Tested against PostgreSQL 8.2 - * First seen during upgrade testing of PostgreSQL from Alfresco 1.4.3 to 2.0 - */ -SET search_path TO information_schema, public; -CREATE FUNCTION _pg_keypositions() RETURNS SETOF integer - LANGUAGE sql - IMMUTABLE - AS 'select g.s - from generate_series(1,current_setting(''max_index_keys'')::int,1) - as g(s)'; \ No newline at end of file diff --git a/config/alfresco/patch/patch-services-context.xml b/config/alfresco/patch/patch-services-context.xml index c9c7e6078b..2fcdbed064 100644 --- a/config/alfresco/patch/patch-services-context.xml +++ b/config/alfresco/patch/patch-services-context.xml @@ -576,327 +576,161 @@ 3.3.x - - - - - - + patch.webscripts2 patch.webscripts2.description 0 100 101 - - - - - - - - - - - /${spaces.company_home.childname}/${spaces.dictionary.childname} - alfresco/bootstrap/webScripts2.xml - + + 3.4.x - - + patch.customModels patch.customModels.description 0 101 102 - - - - - - - - - - /${spaces.company_home.childname}/${spaces.dictionary.childname}/app:models - - - - /${spaces.company_home.childname}/${spaces.dictionary.childname} - alfresco/bootstrap/customModelsSpace.acp - alfresco/messages/bootstrap-spaces - + + 3.4.x - - + patch.customMessages patch.customMessages.description 0 101 102 - - - - - - - - - - /${spaces.company_home.childname}/${spaces.dictionary.childname}/app:messages - - - - /${spaces.company_home.childname}/${spaces.dictionary.childname} - alfresco/bootstrap/customMessagesSpace.xml - alfresco/messages/bootstrap-spaces - + + 3.4.x - - + patch.customWebClientExtension patch.customWebClientExtension.description 0 101 102 - - - - - - - - - - /${spaces.company_home.childname}/${spaces.dictionary.childname}/app:webclient_extension - - - - /${spaces.company_home.childname}/${spaces.dictionary.childname} - alfresco/bootstrap/customWebClientExtensionSpace.xml - alfresco/messages/bootstrap-spaces - + + 3.4.x - - + patch.redeploySubmitProcess patch.redeploySubmitProcess.description 0 102 103 - - - - - - - - - - jbpm - alfresco/workflow/submit_processdefinition.xml - text/xml - - + + 3.4.x - - + patch.db-V2.1-RemoveWcmSubmittedAspect patch.schemaUpgradeScript.description 0 103 104 - - classpath:alfresco/dbscripts/upgrade/2.1/${db.script.dialect}/AlfrescoSchemaUpdate-2.1-RemoveWcmSubmittedAspect.sql + + 3.4.x - - + patch.webscripts3 patch.webscripts3.description 0 104 105 - - - - - - - - - - - / - alfresco/bootstrap/webScriptsReadme2.xml - + + 3.4.x - - + patch.customWorkflowDefs patch.customWorkflowDefs.description 0 105 106 - - - - - - - - - - /${spaces.company_home.childname}/${spaces.dictionary.childname}/app:workflow_defs - - - - /${spaces.company_home.childname}/${spaces.dictionary.childname} - alfresco/bootstrap/customWorkflowDefsSpace.acp - alfresco/messages/bootstrap-spaces - + + 3.4.x - - + patch.avmStoreAsIdentifier patch.avmStoreAsIdentifier.description 0 109 110 - - - - - + + 3.4.x - - + patch.avmFormPropertyIdentifier patch.avmFormPropertyIdentifier.description 0 111 112 - - - - - + + 3.4.x - - + patch.formsFolder patch.formsFolder.description 0 112 113 - - - - - - - - - - /${spaces.company_home.childname}/${spaces.dictionary.childname}/app:forms - - - - /${spaces.company_home.childname}/${spaces.dictionary.childname} - alfresco/bootstrap/formsSpace.xml - + + 3.4.x - - + patch.tagRootCategory patch.tagRootCategory.description 0 113 114 - - - - - - - - - - /cm:categoryRoot/cm:taggable - - - - /cm:categoryRoot - alfresco/bootstrap/tagRootCategory.xml - + + 3.4.x - - + patch.db-V3.4-UsageTables patch.schemaUpgradeScript.description 0 113 114 - - classpath:alfresco/dbscripts/create/${db.script.dialect}/AlfrescoCreate-UsageTables.sql + + 3.4.x - - + patch.deploymentMigration patch.deploymentMigration.description 0 116 117 - - - - - - - - - - - - - + + 3.4.x - - + patch.redeploySubmitProcess patch.redeploySubmitProcess.description 0 117 118 - - - - - - - - - - jbpm - alfresco/workflow/submit_processdefinition.xml - text/xml - - + + 3.4.x + + + + patch.db-V2.2-ACL-From-2.1-A patch.schemaUpgradeScript.description diff --git a/source/java/org/alfresco/repo/admin/patch/impl/AVMFormsPropertyTokenisationPatch.java b/source/java/org/alfresco/repo/admin/patch/impl/AVMFormsPropertyTokenisationPatch.java deleted file mode 100644 index 24f6ffc21a..0000000000 --- a/source/java/org/alfresco/repo/admin/patch/impl/AVMFormsPropertyTokenisationPatch.java +++ /dev/null @@ -1,45 +0,0 @@ -/* - * Copyright (C) 2005-2010 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.repo.admin.patch.impl; - -import org.springframework.extensions.surf.util.I18NUtil; -import org.alfresco.repo.admin.patch.AbstractPatch; -import org.alfresco.repo.importer.ImporterBootstrap; - -/** - * @author Kevin Roast - */ -public class AVMFormsPropertyTokenisationPatch extends BaseReindexingPatch -{ - private static final String MSG_SUCCESS = "patch.avmFormPropertyIdentifier.result"; - - private ImporterBootstrap spacesImporterBootstrap; - - public void setSpacesImporterBootstrap(ImporterBootstrap spacesImporterBootstrap) - { - this.spacesImporterBootstrap = spacesImporterBootstrap; - } - - @Override - protected String applyInternal() throws Exception - { - reindex("TYPE:\"wca:webform\"", spacesImporterBootstrap.getStoreRef()); - return I18NUtil.getMessage(MSG_SUCCESS); - } -} diff --git a/source/java/org/alfresco/repo/admin/patch/impl/AVMStorePropertyTokenisationPatch.java b/source/java/org/alfresco/repo/admin/patch/impl/AVMStorePropertyTokenisationPatch.java deleted file mode 100644 index ce8727bf9b..0000000000 --- a/source/java/org/alfresco/repo/admin/patch/impl/AVMStorePropertyTokenisationPatch.java +++ /dev/null @@ -1,48 +0,0 @@ -/* - * Copyright (C) 2005-2010 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.repo.admin.patch.impl; - -import org.springframework.extensions.surf.util.I18NUtil; -import org.alfresco.repo.importer.ImporterBootstrap; - -/** - * Patch wca:webfolder objects so that the avmstore property is in the - * index in untokenized form. - * - * @author gavinc - */ -public class AVMStorePropertyTokenisationPatch extends BaseReindexingPatch -{ - private static final String MSG_SUCCESS = "patch.avmStoreAsIdentifier.result"; - - private ImporterBootstrap spacesImporterBootstrap; - - public void setSpacesImporterBootstrap(ImporterBootstrap spacesImporterBootstrap) - { - this.spacesImporterBootstrap = spacesImporterBootstrap; - } - - @Override - protected String applyInternal() throws Exception - { - reindex("TYPE:\"wca:webfolder\"", spacesImporterBootstrap.getStoreRef()); - return I18NUtil.getMessage(MSG_SUCCESS); - } -} diff --git a/source/java/org/alfresco/repo/admin/patch/impl/DeploymentMigrationPatch.java b/source/java/org/alfresco/repo/admin/patch/impl/DeploymentMigrationPatch.java deleted file mode 100644 index 7cdb040fd2..0000000000 --- a/source/java/org/alfresco/repo/admin/patch/impl/DeploymentMigrationPatch.java +++ /dev/null @@ -1,241 +0,0 @@ -/* - * Copyright (C) 2005-2010 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.repo.admin.patch.impl; - -import java.io.Serializable; -import java.util.ArrayList; -import java.util.Date; -import java.util.HashMap; -import java.util.List; -import java.util.Map; - -import org.springframework.extensions.surf.util.I18NUtil; -import org.alfresco.model.ContentModel; -import org.alfresco.model.WCMAppModel; -import org.alfresco.repo.admin.patch.AbstractPatch; -import org.alfresco.repo.domain.PropertyValue; -import org.alfresco.repo.importer.ImporterBootstrap; -import org.alfresco.repo.search.IndexerAndSearcher; -import org.alfresco.wcm.sandbox.SandboxConstants; -import org.alfresco.service.cmr.avm.AVMService; -import org.alfresco.service.cmr.dictionary.DataTypeDefinition; -import org.alfresco.service.cmr.repository.ChildAssociationRef; -import org.alfresco.service.cmr.repository.NodeRef; -import org.alfresco.service.cmr.search.ResultSet; -import org.alfresco.service.cmr.search.SearchService; -import org.alfresco.service.namespace.QName; -import org.alfresco.service.namespace.RegexQNamePattern; -import org.alfresco.util.GUID; -import org.apache.commons.logging.Log; -import org.apache.commons.logging.LogFactory; - -/** - * Patch that migrates deployment data to the new deployment model. - * - * @author gavinc - */ -public class DeploymentMigrationPatch extends AbstractPatch -{ - protected ImporterBootstrap importerBootstrap; - protected IndexerAndSearcher indexerAndSearcher; - protected AVMService avmService; - - private static final String MSG_SUCCESS = "patch.deploymentMigration.result"; - private static final String MSG_WEBPROJECT = "patch.deploymentMigration.webProjectName"; - private static final String MSG_SERVER_MIGRATED = "patch.deploymentMigration.serverMigrated"; - private static final String MSG_REPORT_MIGRATED = "patch.deploymentMigration.reportMigrated"; - - private static final String FILE_SERVER_PREFIX = "\\\\"; - - private static final Log logger = LogFactory.getLog(DeploymentMigrationPatch.class); - - public void setIndexerAndSearcher(IndexerAndSearcher indexerAndSearcher) - { - this.indexerAndSearcher = indexerAndSearcher; - } - - public void setImporterBootstrap(ImporterBootstrap importerBootstrap) - { - this.importerBootstrap = importerBootstrap; - } - - public void setAvmService(AVMService avmService) - { - this.avmService = avmService; - } - - @Override - protected String applyInternal() throws Exception - { - String query = "TYPE:\"wca:webfolder\""; - - ResultSet results = null; - try - { - results = this.searchService.query(this.importerBootstrap.getStoreRef(), - SearchService.LANGUAGE_LUCENE, query); - - // iterate through the web projects and migrate the deployment data - if (results.length() > 0) - { - for (NodeRef node : results.getNodeRefs()) - { - if (this.nodeService.exists(node)) - { - migrate(node); - } - } - } - } - finally - { - if (results != null) - { - results.close(); - } - } - - // return success message - return I18NUtil.getMessage(MSG_SUCCESS); - } - - @SuppressWarnings("unchecked") - protected void migrate(NodeRef webProject) - { - // output name of web project currently being migrated - String projectName = (String)this.nodeService.getProperty(webProject, ContentModel.PROP_NAME); - logger.info(I18NUtil.getMessage(MSG_WEBPROJECT, projectName)); - - // see if the web project has any deployment servers configured - List deployTo = (List)this.nodeService.getProperty(webProject, WCMAppModel.PROP_DEPLOYTO); - if (deployTo != null && deployTo.size() > 0) - { - for (String server : deployTo) - { - if (server != null && server.length() > 0) - { - migrateServer(server.trim(), webProject, projectName); - } - } - } - - // migrate any deployment reports present - List deployReportRefs = nodeService.getChildAssocs(webProject, - WCMAppModel.ASSOC_DEPLOYMENTREPORT, RegexQNamePattern.MATCH_ALL); - if (deployReportRefs.size() > 0) - { - // gather data required for deploymentattempt node - String attemptId = GUID.generate(); - String store = (String)this.nodeService.getProperty(webProject, WCMAppModel.PROP_AVMSTORE); - List servers = (List)this.nodeService.getProperty(webProject, - WCMAppModel.PROP_SELECTEDDEPLOYTO); - if (servers == null) - { - servers = new ArrayList(); - } - Integer version = (Integer)this.nodeService.getProperty(webProject, - WCMAppModel.PROP_SELECTEDDEPLOYVERSION); - Date time = (Date)this.nodeService.getProperty( - deployReportRefs.get(0).getChildRef(), WCMAppModel.PROP_DEPLOYSTARTTIME); - - // create a deploymentattempt node for the reports to move to - Map props = new HashMap(8, 1.0f); - props.put(WCMAppModel.PROP_DEPLOYATTEMPTID, attemptId); - props.put(WCMAppModel.PROP_DEPLOYATTEMPTTYPE, WCMAppModel.CONSTRAINT_LIVESERVER); - props.put(WCMAppModel.PROP_DEPLOYATTEMPTSTORE, store); - props.put(WCMAppModel.PROP_DEPLOYATTEMPTVERSION, version); - props.put(WCMAppModel.PROP_DEPLOYATTEMPTSERVERS, (Serializable)servers); - props.put(WCMAppModel.PROP_DEPLOYATTEMPTTIME, time); - NodeRef attempt = this.nodeService.createNode(webProject, - WCMAppModel.ASSOC_DEPLOYMENTATTEMPT, WCMAppModel.ASSOC_DEPLOYMENTATTEMPT, - WCMAppModel.TYPE_DEPLOYMENTATTEMPT, props).getChildRef(); - - // set the attempt id on the staging store - this.avmService.setStoreProperty(store, SandboxConstants.PROP_LAST_DEPLOYMENT_ID, - new PropertyValue(DataTypeDefinition.TEXT, attemptId)); - - // migrate each report found - for (ChildAssociationRef ref : deployReportRefs) - { - migrateReport(ref.getChildRef(), attempt, webProject, projectName); - } - } - - // remove all the deprecated properties in the web project - this.nodeService.removeProperty(webProject, WCMAppModel.PROP_DEPLOYTO); - this.nodeService.removeProperty(webProject, WCMAppModel.PROP_SELECTEDDEPLOYTO); - this.nodeService.removeProperty(webProject, WCMAppModel.PROP_SELECTEDDEPLOYVERSION); - } - - protected void migrateServer(String server, NodeRef webProject, String webProjectName) - { - // work out the host and port - String host = server; - int port = -1; - int idx = server.indexOf(":"); - if (idx != -1) - { - host = server.substring(0, idx); - String strPort = server.substring(idx+1); - port = Integer.parseInt(strPort); - } - - Map props = new HashMap(4, 1.0f); - if (server.startsWith(FILE_SERVER_PREFIX)) - { - // server name starts with \\ so is therefore a file system deployment - props.put(WCMAppModel.PROP_DEPLOYTYPE, WCMAppModel.CONSTRAINT_FILEDEPLOY); - host = host.substring(FILE_SERVER_PREFIX.length()); - } - else - { - // server name does not start with \\ so is therefore an Alfresco server deployment - props.put(WCMAppModel.PROP_DEPLOYTYPE, WCMAppModel.CONSTRAINT_ALFDEPLOY); - } - - // set the properties - props.put(WCMAppModel.PROP_DEPLOYSERVERTYPE, WCMAppModel.CONSTRAINT_LIVESERVER); - props.put(WCMAppModel.PROP_DEPLOYSERVERHOST, host); - if (port != -1) - { - props.put(WCMAppModel.PROP_DEPLOYSERVERPORT, new Integer(port)); - } - - // create the deploymentserver node as a child of the webproject - this.nodeService.createNode(webProject, WCMAppModel.ASSOC_DEPLOYMENTSERVER, - WCMAppModel.ASSOC_DEPLOYMENTSERVER, WCMAppModel.TYPE_DEPLOYMENTSERVER, - props).getChildRef(); - - // inform of migration - logger.info(I18NUtil.getMessage(MSG_SERVER_MIGRATED, server, webProjectName)); - } - - protected void migrateReport(NodeRef report, NodeRef attempt, NodeRef webProject, - String webProjectName) - { - String server = (String)this.nodeService.getProperty(report, WCMAppModel.PROP_DEPLOYSERVER); - - // make the deployment report node a child of the given deploymentattempt node - this.nodeService.moveNode(report, attempt, WCMAppModel.ASSOC_DEPLOYMENTREPORTS, - WCMAppModel.ASSOC_DEPLOYMENTREPORTS); - - // inform of migration - logger.info(I18NUtil.getMessage(MSG_REPORT_MIGRATED, server, webProjectName)); - } -}