From ad753d07f1d1a80d910e9cc3d3d2e80c5b9a4cce Mon Sep 17 00:00:00 2001 From: Mark Rogers Date: Tue, 14 Apr 2009 15:07:51 +0000 Subject: [PATCH] ETHREEOH-1368 Deployment option goes away after renaming web project. git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/alfresco/HEAD/root@13944 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261 --- .../alfresco/web/bean/wcm/DeploymentUtil.java | 36 ++++++++++++------- 1 file changed, 23 insertions(+), 13 deletions(-) diff --git a/source/java/org/alfresco/web/bean/wcm/DeploymentUtil.java b/source/java/org/alfresco/web/bean/wcm/DeploymentUtil.java index fa2f3310c9..f0fb2cce44 100644 --- a/source/java/org/alfresco/web/bean/wcm/DeploymentUtil.java +++ b/source/java/org/alfresco/web/bean/wcm/DeploymentUtil.java @@ -32,16 +32,15 @@ import java.util.List; import javax.faces.context.FacesContext; -import org.alfresco.model.ContentModel; import org.alfresco.model.WCMAppModel; import org.alfresco.service.cmr.repository.NodeRef; import org.alfresco.service.cmr.repository.NodeService; +import org.alfresco.service.cmr.repository.Path; import org.alfresco.service.cmr.search.ResultSet; import org.alfresco.service.cmr.search.SearchParameters; import org.alfresco.service.cmr.search.SearchService; import org.alfresco.service.namespace.NamespaceService; -import org.alfresco.util.ISO9075; -import org.alfresco.web.app.Application; +import org.alfresco.service.namespace.NamespacePrefixResolver; import org.alfresco.web.bean.repository.Repository; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; @@ -308,22 +307,33 @@ public final class DeploymentUtil return findServers(webProject, false, availableOnly); } + + /** + * Returns a list of NodeRefs representing the deployment servers configured + * for the given web project. + * + * @param webProject Web project to get test servers for + * @param live + * @param availableOnly if true only returns those servers still available for deployment + * @return List of test servers + */ private static List findServers(NodeRef webProject, boolean live, boolean availableOnly) { FacesContext context = FacesContext.getCurrentInstance(); NodeService nodeService = Repository.getServiceRegistry(context).getNodeService(); SearchService searchService = Repository.getServiceRegistry(context).getSearchService(); - // build the query - String webProjectName = (String)nodeService.getProperty(webProject, ContentModel.PROP_NAME); - String safeProjectName = ISO9075.encode(webProjectName); - StringBuilder query = new StringBuilder("PATH:\"/"); - query.append(Application.getRootPath(context)); - query.append("/"); - query.append(Application.getWebsitesFolderName(context)); - query.append("/cm:"); - query.append(safeProjectName); - query.append("/*\" AND @"); + NamespacePrefixResolver namespacePrefixResolver = Repository.getServiceRegistry(context).getNamespaceService(); + + Path projectPath = nodeService.getPath(webProject); + + String stringPath = projectPath.toPrefixString(namespacePrefixResolver); + + StringBuilder query = new StringBuilder("PATH:\""); + + query.append(stringPath); + query.append("/*\" "); + query.append(" AND @"); query.append(NamespaceService.WCMAPP_MODEL_PREFIX); query.append("\\:"); query.append(WCMAppModel.PROP_DEPLOYSERVERTYPE.getLocalName());