From 3f8d6dacab8781f02993310abcc57ec5da0e966a Mon Sep 17 00:00:00 2001 From: Kevin Roast Date: Fri, 18 Apr 2008 14:43:20 +0000 Subject: [PATCH] Merged V2.1-A to HEAD 7983: NodeRef + child path relative URLs support for WebScript download content API git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/alfresco/HEAD/root@8839 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261 --- .../alfresco/repo/web/scripts/Repository.java | 37 ++++++++++++++++--- .../repo/web/scripts/bean/ContentGet.java | 22 +++++++++++ 2 files changed, 54 insertions(+), 5 deletions(-) diff --git a/source/java/org/alfresco/repo/web/scripts/Repository.java b/source/java/org/alfresco/repo/web/scripts/Repository.java index dacc91f3b5..8ceb632531 100644 --- a/source/java/org/alfresco/repo/web/scripts/Repository.java +++ b/source/java/org/alfresco/repo/web/scripts/Repository.java @@ -24,6 +24,7 @@ */ package org.alfresco.repo.web.scripts; +import java.util.ArrayList; import java.util.Arrays; import java.util.HashMap; import java.util.List; @@ -361,13 +362,39 @@ public class Repository implements ApplicationContextAware, ApplicationListener, { if (referenceType.equals("node")) { - NodeRef urlRef = new NodeRef(storeRef, reference[2]); - if (nodeService.exists(urlRef)) + // find the node the rest of the path is relative to + NodeRef relRef = new NodeRef(storeRef, reference[2]); + if (nodeService.exists(relRef)) { - nodeRef = urlRef; + // are there any relative path elements to process? + if (reference.length == 3 || reference.length == 4) + { + // just the NodeRef can be specified + nodeRef = relRef; + } + else + { + // process optional path elements + List paths = new ArrayList(reference.length - 3); + for (int i=3; i