diff --git a/config/alfresco/templates/webscripts/org/alfresco/repository/links/links.lib.ftl b/config/alfresco/templates/webscripts/org/alfresco/repository/links/links.lib.ftl index 6a0ff560b2..70c3025720 100644 --- a/config/alfresco/templates/webscripts/org/alfresco/repository/links/links.lib.ftl +++ b/config/alfresco/templates/webscripts/org/alfresco/repository/links/links.lib.ftl @@ -32,7 +32,7 @@ "iso8601": "${xmldate(item.createdOn)}", "legacyDate": "${xmldate(item.createdOn)}" }, - <#if item.creator??> + <#if item.creator?has_content> <@renderPerson person=item.creator fieldName="author" /> <#else> "author": diff --git a/config/alfresco/templates/webscripts/org/alfresco/slingshot/documentlibrary/action/move-to.post.json.js b/config/alfresco/templates/webscripts/org/alfresco/slingshot/documentlibrary/action/move-to.post.json.js index 8cb1f8b007..0bb89d8199 100644 --- a/config/alfresco/templates/webscripts/org/alfresco/slingshot/documentlibrary/action/move-to.post.json.js +++ b/config/alfresco/templates/webscripts/org/alfresco/slingshot/documentlibrary/action/move-to.post.json.js @@ -65,7 +65,7 @@ function runAction(p_params) if (result.success) { // If this was an inter-site move, we'll need to clean up the permissions on the node - if (fromSite != fileNode.siteShortName) + if (String(fromSite) !== String(fileNode.siteShortName)) { siteService.cleanSitePermissions(fileNode); } diff --git a/config/alfresco/web-scripts-application-context.xml b/config/alfresco/web-scripts-application-context.xml index 0f82ac8729..247fc007d9 100644 --- a/config/alfresco/web-scripts-application-context.xml +++ b/config/alfresco/web-scripts-application-context.xml @@ -811,7 +811,7 @@ - + diff --git a/pom.xml b/pom.xml index 979c28e2c5..825333938f 100644 --- a/pom.xml +++ b/pom.xml @@ -8,14 +8,14 @@ Alfresco Remote API alfresco-parent - org.alfresco + org.alfresco.enterprise 4.2-SNAPSHOT ../../pom-experimental.xml - org.alfresco + org.alfresco.enterprise alfresco-repository ${project.version} @@ -26,7 +26,7 @@ - org.alfresco + org.alfresco.enterprise alfresco-wdr-deployment ${project.version} @@ -146,14 +146,14 @@ test - org.alfresco + org.alfresco.enterprise alfresco-repository ${project.version} tests test - org.alfresco + org.alfresco.enterprise alfresco-deployment ${project.version} tests diff --git a/source/java/org/alfresco/repo/web/scripts/datalist/DataListDownloadWebScript.java b/source/java/org/alfresco/repo/web/scripts/datalist/DataListDownloadWebScript.java index a53fcbade7..12fe1fda8d 100644 --- a/source/java/org/alfresco/repo/web/scripts/datalist/DataListDownloadWebScript.java +++ b/source/java/org/alfresco/repo/web/scripts/datalist/DataListDownloadWebScript.java @@ -73,7 +73,7 @@ public class DataListDownloadWebScript extends DeclarativeSpreadsheetWebScript // Logger private static final Log logger = LogFactory.getLog(DataListDownloadWebScript.class); - private static final QName DATA_LIST_ITEM_TYPE = DataListModel.TYPE_DATALIST_ITEM; + private static final QName DATA_LIST_ITEM_TYPE = DataListModel.PROP_DATALIST_ITEM_TYPE; private NodeService nodeService; private SiteService siteService; diff --git a/source/java/org/alfresco/repo/web/scripts/dictionary/DictionaryWebServiceBase.java b/source/java/org/alfresco/repo/web/scripts/dictionary/DictionaryWebServiceBase.java index 5706541492..9a98e34125 100644 --- a/source/java/org/alfresco/repo/web/scripts/dictionary/DictionaryWebServiceBase.java +++ b/source/java/org/alfresco/repo/web/scripts/dictionary/DictionaryWebServiceBase.java @@ -1,5 +1,5 @@ /* - * Copyright (C) 2005-2011 Alfresco Software Limited. + * Copyright (C) 2005-2012 Alfresco Software Limited. * * This file is part of Alfresco * @@ -19,8 +19,6 @@ package org.alfresco.repo.web.scripts.dictionary; import java.util.Collection; -import java.util.HashMap; -import java.util.Map; import org.alfresco.service.cmr.dictionary.DictionaryService; import org.alfresco.service.namespace.InvalidQNameException; @@ -39,9 +37,6 @@ public abstract class DictionaryWebServiceBase extends DeclarativeWebScript { private static final String NAME_DELIMITER = "_"; - private Map prefixesAndUrlsMap; - private Map urlsAndPrefixesMap; - /** Namespace service */ protected NamespaceService namespaceService; @@ -77,22 +72,6 @@ public abstract class DictionaryWebServiceBase extends DeclarativeWebScript this.dictionaryservice = dictionaryService; } - /** - * Init method. - */ - public void init() - { - Collection prefixes = this.namespaceService.getPrefixes(); - this.prefixesAndUrlsMap = new HashMap(prefixes.size()); - this.urlsAndPrefixesMap = new HashMap(prefixes.size()); - for (String prefix : prefixes) - { - String url = this.namespaceService.getNamespaceURI(prefix); - this.prefixesAndUrlsMap.put(prefix, url); - this.urlsAndPrefixesMap.put(url, prefix); - } - } - protected QName createClassQName(String className) { QName result = null; @@ -136,7 +115,7 @@ public abstract class DictionaryWebServiceBase extends DeclarativeWebScript { String result = null; String prefix = this.getPrefix(classname); - String url = this.prefixesAndUrlsMap.get(prefix); + String url = this.namespaceService.getNamespaceURI(prefix); String name = this.getShortName(classname); result = "{" + url + "}"+ name; return result; @@ -177,7 +156,11 @@ public abstract class DictionaryWebServiceBase extends DeclarativeWebScript { if(qnameObj.getLocalName().equals(modelname)) { - namespaceprefix = this.getUrlsAndPrefixesMap().get(qnameObj.getNamespaceURI()); + Collection prefixes = this.namespaceService.getPrefixes(qnameObj.getNamespaceURI()); + if (!prefixes.isEmpty()) + { + namespaceprefix = prefixes.iterator().next(); + } break; } } @@ -286,19 +269,4 @@ public abstract class DictionaryWebServiceBase extends DeclarativeWebScript classfilter.equals(CLASS_FILTER_OPTION_TYPE3)); } - /** - * @return a string map or prefixes and urls - with prefix as the key - */ - public Map getPrefixesAndUrlsMap() - { - return prefixesAndUrlsMap; - } - - /** - * @return a string map of urls and prefixes - with url as the key - */ - public Map getUrlsAndPrefixesMap() - { - return urlsAndPrefixesMap; - } } diff --git a/source/java/org/alfresco/repo/web/scripts/links/AbstractLinksWebScript.java b/source/java/org/alfresco/repo/web/scripts/links/AbstractLinksWebScript.java index fa56c382f0..39e18b8149 100644 --- a/source/java/org/alfresco/repo/web/scripts/links/AbstractLinksWebScript.java +++ b/source/java/org/alfresco/repo/web/scripts/links/AbstractLinksWebScript.java @@ -32,6 +32,7 @@ import org.alfresco.service.cmr.links.LinkInfo; import org.alfresco.service.cmr.links.LinksService; import org.alfresco.service.cmr.repository.NodeRef; import org.alfresco.service.cmr.repository.NodeService; +import org.alfresco.service.cmr.security.NoSuchPersonException; import org.alfresco.service.cmr.security.PersonService; import org.alfresco.service.cmr.site.SiteInfo; import org.alfresco.service.cmr.site.SiteService; @@ -209,17 +210,20 @@ public abstract class AbstractLinksWebScript extends DeclarativeWebScript res.put("tags", link.getTags()); res.put("internal", link.isInternal()); - // FTL needs a script node of the person + // FTL needs a script node of the person, if available String creator = link.getCreator(); - Object creatorO; - if (creator == null) + Object creatorO = ""; + if (creator != null) { - creatorO = ""; - } - else - { - NodeRef person = personService.getPerson(creator); - creatorO = person; + try + { + NodeRef person = personService.getPerson(creator); + creatorO = person; + } + catch (NoSuchPersonException ignored) + { + // Intentionally empty - treat deleted users as no user. + } } res.put("creator", creatorO); diff --git a/source/java/org/alfresco/repo/webdav/MoveMethod.java b/source/java/org/alfresco/repo/webdav/MoveMethod.java index 45443d4910..284e7d52cd 100644 --- a/source/java/org/alfresco/repo/webdav/MoveMethod.java +++ b/source/java/org/alfresco/repo/webdav/MoveMethod.java @@ -90,7 +90,29 @@ public class MoveMethod extends AbstractMoveOrCopyMethod checkNode(sourceFileInfo); - if (destFileInfo != null && (isShuffleOperation(sourceFileInfo) || isVersioned(destFileInfo))) + if (sourceParentNodeRef.equals(destParentNodeRef)) + { + // It is rename method + try + { + fileFolderService.rename(sourceNodeRef, name); + } + catch (AccessDeniedException e) + { + XMLWriter xml = createXMLWriter(); + + Attributes nullAttr = getDAVHelper().getNullAttributes(); + + xml.startElement(WebDAV.DAV_NS, WebDAV.XML_ERROR, WebDAV.XML_NS_ERROR, nullAttr); + // Output error + xml.write(DocumentHelper.createElement(WebDAV.XML_NS_CANNOT_MODIFY_PROTECTED_PROPERTY)); + + xml.endElement(WebDAV.DAV_NS, WebDAV.XML_ERROR, WebDAV.XML_NS_ERROR); + m_response.setStatus(HttpServletResponse.SC_CONFLICT); + return; + } + } + else if (destFileInfo != null && (isShuffleOperation(sourceFileInfo) || isVersioned(destFileInfo))) { copyOnlyContent(sourceNodeRef, destFileInfo, fileFolderService); } @@ -110,16 +132,8 @@ public class MoveMethod extends AbstractMoveOrCopyMethod } else { - if (sourceParentNodeRef.equals(destParentNodeRef)) - { - // It is rename method - fileFolderService.rename(sourceNodeRef, name); - } - else - { - // It is move operation - fileFolderService.moveFrom(sourceNodeRef, sourceParentNodeRef, destParentNodeRef, name); - } + // It is a simple move operation + fileFolderService.moveFrom(sourceNodeRef, sourceParentNodeRef, destParentNodeRef, name); } } diff --git a/source/java/org/alfresco/repo/webdav/WebDAVHelper.java b/source/java/org/alfresco/repo/webdav/WebDAVHelper.java index 03633532d2..f4610f0d23 100644 --- a/source/java/org/alfresco/repo/webdav/WebDAVHelper.java +++ b/source/java/org/alfresco/repo/webdav/WebDAVHelper.java @@ -971,6 +971,6 @@ public class WebDAVHelper */ public boolean isLockedOrReadOnly(final NodeRef nodeRef) { - return LockUtils.isLockedOrReadOnly(nodeRef, m_serviceRegistry.getLockService()); + return LockUtils.isLockedAndReadOnly(nodeRef, m_serviceRegistry.getLockService()); } } diff --git a/source/sample/JavaCmisTest/.classpath b/source/sample/JavaCmisTest/.classpath index 497368e1f6..90c1c47706 100644 --- a/source/sample/JavaCmisTest/.classpath +++ b/source/sample/JavaCmisTest/.classpath @@ -5,8 +5,6 @@ - - diff --git a/source/sample/JavaCmisTest/lib/geronimo-activation_1.1_spec-1.0.2.jar b/source/sample/JavaCmisTest/lib/geronimo-activation_1.1_spec-1.0.2.jar deleted file mode 100644 index 3e75446e47..0000000000 Binary files a/source/sample/JavaCmisTest/lib/geronimo-activation_1.1_spec-1.0.2.jar and /dev/null differ