mirror of
https://github.com/Alfresco/alfresco-community-repo.git
synced 2025-08-07 17:49:17 +00:00
Merged DEV/SWIFT to HEAD
26012: OpenCMIS server bug fixes: PWC properties update and document version delete 26205: - integrated the CMIS Client API project into the build - made the local CMIS client use the Alfresco OpenCMIS Extension - updated OpenCMIS 26300: expose all non-child associations through OpenCMIS and check relationship source and target instead of the relationship type 26356: OpenCMIS update 26378: added more CMIS client examples 26380: added helper methods for CMIS client 26500: - fixed CMIS date aspect property encoding - fixed CMIS rendition filter handling 26519: OpenCMIS update 26523: fixed CMISConnectionManager 26596: renamed CMIS JavaScript root objects (cmis -> cmisserver, cmisclient -> cmis) 26651: removed the cmis-client-api project and replaced it with a jar in 3rd-party 26652: - corrected CMIS samples 26656: - removed cmis-client-api from build 26658: - removed the last bit of cmis-client-api 26663: - added CMIS samples (browser and upload) 26742: CMIS webscripts samples update 26743: CMIS webscripts samples update 26939: removed duplicate commons-fileupload 26942: updated commons-lang to 2.6 26943: updated OpenCMIS (browser binding is now included in the server framework) 26953: refactored OpenCMIS client integration 26974: Update classpath for Florian - OpenCMIS browser bindings are now rolled into the main jar, no need for their own one 26975: removed outdated CMIS browser binding demo page 27048: port of the Spring Surf CMIS browser plus a few new features (create folder, create document, delete object) 27077: bug fix: CMIS id for associations 27079: OpenCMIS update 27085: added check if CMIS is supported 27086: OpenCMIS client bindings update (force JAX-WS RI) 27138: clean up 27764: CMIS default connection handling 27879: OpenCMIS client: moved server definitions to separate config file 27880: OpenCMIS client: removed test repositories from configuration 27918: changed CMIS server configuration tag name to match Spring Surf configuration 27920: enabled relationships in CMIS browser 27924: Updated Spring Surf and added the Spring Surf CMIS framework [Merge note: Kept most recent HEAD jars where conflicts occured] 27926: Updated Spring Surf source jars [Merge note: Kept most recent HEAD jars where conflicts occured] git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/alfresco/HEAD/root@28219 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261
This commit is contained in:
@@ -25,6 +25,7 @@ import java.util.ArrayList;
|
||||
import java.util.Arrays;
|
||||
import java.util.Collections;
|
||||
import java.util.Comparator;
|
||||
import java.util.Date;
|
||||
import java.util.EnumSet;
|
||||
import java.util.GregorianCalendar;
|
||||
import java.util.HashMap;
|
||||
@@ -33,6 +34,7 @@ import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Map.Entry;
|
||||
import java.util.Set;
|
||||
import java.util.TimeZone;
|
||||
import java.util.TreeSet;
|
||||
import java.util.concurrent.ConcurrentHashMap;
|
||||
|
||||
@@ -1554,6 +1556,13 @@ public class CMISConnector implements ApplicationContextAware, ApplicationListen
|
||||
|
||||
private String convertAspectPropertyValue(Object value)
|
||||
{
|
||||
if (value instanceof Date)
|
||||
{
|
||||
GregorianCalendar cal = new GregorianCalendar(TimeZone.getTimeZone("GMT"));
|
||||
cal.setTime((Date) value);
|
||||
value = cal;
|
||||
}
|
||||
|
||||
if (value instanceof GregorianCalendar)
|
||||
{
|
||||
DatatypeFactory df;
|
||||
@@ -1759,11 +1768,13 @@ public class CMISConnector implements ApplicationContextAware, ApplicationListen
|
||||
for (AssociationRef assocRef : assocs)
|
||||
{
|
||||
TypeDefinitionWrapper assocTypeDef = cmisDictionaryService.findAssocType(assocRef.getTypeQName());
|
||||
if (assocTypeDef != null)
|
||||
if (assocTypeDef == null || getType(assocRef.getSourceRef()) == null
|
||||
|| getType(assocRef.getTargetRef()) == null)
|
||||
{
|
||||
result.add(createCMISObject(assocRef, null, false, IncludeRelationships.NONE, RENDITION_NONE, false,
|
||||
false));
|
||||
continue;
|
||||
}
|
||||
|
||||
result.add(createCMISObject(assocRef, null, false, IncludeRelationships.NONE, RENDITION_NONE, false, false));
|
||||
}
|
||||
|
||||
return result;
|
||||
@@ -1807,31 +1818,34 @@ public class CMISConnector implements ApplicationContextAware, ApplicationListen
|
||||
for (AssociationRef assocRef : assocs)
|
||||
{
|
||||
TypeDefinitionWrapper assocTypeDef = cmisDictionaryService.findAssocType(assocRef.getTypeQName());
|
||||
if (assocTypeDef != null)
|
||||
if (assocTypeDef == null || getType(assocRef.getSourceRef()) == null
|
||||
|| getType(assocRef.getTargetRef()) == null)
|
||||
{
|
||||
if ((typeId != null) && !assocRef.getId().equals(typeId))
|
||||
{
|
||||
continue;
|
||||
}
|
||||
continue;
|
||||
}
|
||||
|
||||
counter++;
|
||||
if ((typeId != null) && !assocRef.getId().equals(typeId))
|
||||
{
|
||||
continue;
|
||||
}
|
||||
|
||||
if (skip > 0)
|
||||
{
|
||||
skip--;
|
||||
continue;
|
||||
}
|
||||
counter++;
|
||||
|
||||
max--;
|
||||
if (max > 0)
|
||||
{
|
||||
result.getObjects().add(
|
||||
createCMISObject(assocRef, filter, includeAllowableActions, IncludeRelationships.NONE,
|
||||
RENDITION_NONE, false, false));
|
||||
} else
|
||||
{
|
||||
hasMore = true;
|
||||
}
|
||||
if (skip > 0)
|
||||
{
|
||||
skip--;
|
||||
continue;
|
||||
}
|
||||
|
||||
max--;
|
||||
if (max > 0)
|
||||
{
|
||||
result.getObjects().add(
|
||||
createCMISObject(assocRef, filter, includeAllowableActions, IncludeRelationships.NONE,
|
||||
RENDITION_NONE, false, false));
|
||||
} else
|
||||
{
|
||||
hasMore = true;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -2458,8 +2472,10 @@ public class CMISConnector implements ApplicationContextAware, ApplicationListen
|
||||
throw new CmisInvalidArgumentException("Property " + property.getId() + " is unknown!");
|
||||
}
|
||||
|
||||
if ((propDef.getPropertyDefinition().getUpdatability() == Updatability.READONLY)
|
||||
|| (nodeService.hasAspect(nodeRef, ContentModel.ASPECT_WORKING_COPY)))
|
||||
Updatability updatability = propDef.getPropertyDefinition().getUpdatability();
|
||||
if ((updatability == Updatability.READONLY)
|
||||
|| (updatability == Updatability.WHENCHECKEDOUT && !nodeService.hasAspect(nodeRef,
|
||||
ContentModel.ASPECT_WORKING_COPY)))
|
||||
{
|
||||
throw new CmisInvalidArgumentException("Property " + property.getId() + " is read-only!");
|
||||
}
|
||||
|
Reference in New Issue
Block a user