Author: fmui
Date: Wed Aug 29 08:32:30 2012
New Revision: 1378475
URL: http://svn.apache.org/viewvc?rev=1378475&view=rev
Log:
CMIS-565: fixed createDocument with versioning state checkedout
Modified:
chemistry/opencmis/trunk/chemistry-opencmis-client/chemistry-opencmis-client-impl/src/main/java/org/apache/chemistry/opencmis/client/runtime/SessionImpl.java
Modified:
chemistry/opencmis/trunk/chemistry-opencmis-client/chemistry-opencmis-client-impl/src/main/java/org/apache/chemistry/opencmis/client/runtime/SessionImpl.java
URL:
http://svn.apache.org/viewvc/chemistry/opencmis/trunk/chemistry-opencmis-client/chemistry-opencmis-client-impl/src/main/java/org/apache/chemistry/opencmis/client/runtime/SessionImpl.java?rev=1378475&r1=1378474&r2=1378475&view=diff
==============================================================================
---
chemistry/opencmis/trunk/chemistry-opencmis-client/chemistry-opencmis-client-impl/src/main/java/org/apache/chemistry/opencmis/client/runtime/SessionImpl.java
(original)
+++
chemistry/opencmis/trunk/chemistry-opencmis-client/chemistry-opencmis-client-impl/src/main/java/org/apache/chemistry/opencmis/client/runtime/SessionImpl.java
Wed Aug 29 08:32:30 2012
@@ -88,9 +88,14 @@ public class SessionImpl implements Sess
IncludeRelationships.NONE, null, true, null, true, 100);
private static final Set<Updatability> CREATE_UPDATABILITY = new
HashSet<Updatability>();
+ private static final Set<Updatability> CREATE_AND_CHECKOUT_UPDATABILITY =
new HashSet<Updatability>();
+
static {
CREATE_UPDATABILITY.add(Updatability.ONCREATE);
CREATE_UPDATABILITY.add(Updatability.READWRITE);
+ CREATE_AND_CHECKOUT_UPDATABILITY.add(Updatability.ONCREATE);
+ CREATE_AND_CHECKOUT_UPDATABILITY.add(Updatability.READWRITE);
+ CREATE_AND_CHECKOUT_UPDATABILITY.add(Updatability.WHENCHECKEDOUT);
}
// private static Logger log = LoggerFactory.getLogger(SessionImpl.class);
@@ -718,10 +723,13 @@ public class SessionImpl implements Sess
throw new IllegalArgumentException("Properties must not be
empty!");
}
- String newId =
getBinding().getObjectService().createDocument(getRepositoryId(),
- objectFactory.convertProperties(properties, null,
CREATE_UPDATABILITY),
- (folderId == null ? null : folderId.getId()),
objectFactory.convertContentStream(contentStream),
- versioningState, objectFactory.convertPolicies(policies),
objectFactory.convertAces(addAces),
+ String newId = getBinding().getObjectService().createDocument(
+ getRepositoryId(),
+ objectFactory.convertProperties(properties, null,
+ (versioningState == VersioningState.CHECKEDOUT ?
CREATE_AND_CHECKOUT_UPDATABILITY
+ : CREATE_UPDATABILITY)), (folderId == null ?
null : folderId.getId()),
+ objectFactory.convertContentStream(contentStream),
versioningState,
+ objectFactory.convertPolicies(policies),
objectFactory.convertAces(addAces),
objectFactory.convertAces(removeAces), null);
if (newId == null) {
@@ -750,10 +758,14 @@ public class SessionImpl implements Sess
throw new IllegalArgumentException("Source object must be a
document!");
}
- String newId =
getBinding().getObjectService().createDocumentFromSource(getRepositoryId(),
source.getId(),
- objectFactory.convertProperties(properties, type,
CREATE_UPDATABILITY),
- (folderId == null ? null : folderId.getId()), versioningState,
objectFactory.convertPolicies(policies),
- objectFactory.convertAces(addAces),
objectFactory.convertAces(removeAces), null);
+ String newId =
getBinding().getObjectService().createDocumentFromSource(
+ getRepositoryId(),
+ source.getId(),
+ objectFactory.convertProperties(properties, type,
+ (versioningState == VersioningState.CHECKEDOUT ?
CREATE_AND_CHECKOUT_UPDATABILITY
+ : CREATE_UPDATABILITY)), (folderId == null ?
null : folderId.getId()), versioningState,
+ objectFactory.convertPolicies(policies),
objectFactory.convertAces(addAces),
+ objectFactory.convertAces(removeAces), null);
if (newId == null) {
return null;