You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@chemistry.apache.org by dc...@apache.org on 2010/06/15 12:33:54 UTC
svn commit: r954796 - in
/incubator/chemistry/trunk/chemistry/chemistry-tck-atompub: ./
src/main/java/org/apache/chemistry/tck/atompub/client/
src/main/java/org/apache/chemistry/tck/atompub/fixture/
src/main/java/org/apache/chemistry/tck/atompub/test/s...
Author: dcaruana
Date: Tue Jun 15 10:33:54 2010
New Revision: 954796
URL: http://svn.apache.org/viewvc?rev=954796&view=rev
Log:
Apply patch CMIS-215 for fixes:
- CMIS-192: Wrong assertNotNull ALLOWABLE_ACTIONS on created folder entry without includeAllowableActions
- CMIS-190: Atom title missing within createrelationship.atomentry.xml
Modified:
incubator/chemistry/trunk/chemistry/chemistry-tck-atompub/pom.xml
incubator/chemistry/trunk/chemistry/chemistry-tck-atompub/src/main/java/org/apache/chemistry/tck/atompub/client/CMISClient.java
incubator/chemistry/trunk/chemistry/chemistry-tck-atompub/src/main/java/org/apache/chemistry/tck/atompub/fixture/ManageAccessControlListVisitor.java
incubator/chemistry/trunk/chemistry/chemistry-tck-atompub/src/main/java/org/apache/chemistry/tck/atompub/test/spec/VersionsTest.java
incubator/chemistry/trunk/chemistry/chemistry-tck-atompub/src/main/resources/org/apache/chemistry/tck/atompub/templates/createrelationship.atomentry.xml
Modified: incubator/chemistry/trunk/chemistry/chemistry-tck-atompub/pom.xml
URL: http://svn.apache.org/viewvc/incubator/chemistry/trunk/chemistry/chemistry-tck-atompub/pom.xml?rev=954796&r1=954795&r2=954796&view=diff
==============================================================================
--- incubator/chemistry/trunk/chemistry/chemistry-tck-atompub/pom.xml (original)
+++ incubator/chemistry/trunk/chemistry/chemistry-tck-atompub/pom.xml Tue Jun 15 10:33:54 2010
@@ -259,6 +259,92 @@
</build>
</profile>
<profile>
+ <id>xcmis</id>
+ <build>
+ <plugins>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-surefire-plugin</artifactId>
+ <configuration>
+ <systemProperties>
+ <property>
+ <name>chemistry.tck.tests</name>
+ <value>*</value>
+ </property>
+ <property>
+ <name>chemistry.tck.serviceUrl</name>
+ <value>http://localhost:8080/xcmis/rest/cmisatom/cmis1</value>
+ </property>
+ <property>
+ <name>chemistry.tck.user</name>
+ <value>root</value>
+ </property>
+ <property>
+ <name>chemistry.tck.password</name>
+ <value>exo</value>
+ </property>
+ <property>
+ <name>chemistry.tck.validate</name>
+ <value>true</value>
+ </property>
+ <property>
+ <name>chemistry.tck.failOnValidationError</name>
+ <value>false</value>
+ </property>
+ <property>
+ <name>chemistry.tck.traceRequests</name>
+ <value>false</value>
+ </property>
+ </systemProperties>
+ </configuration>
+ </plugin>
+ </plugins>
+ </build>
+ </profile>
+ <profile>
+ <id>xcmis-inmemory</id>
+ <build>
+ <plugins>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-surefire-plugin</artifactId>
+ <configuration>
+ <systemProperties>
+ <property>
+ <name>chemistry.tck.tests</name>
+ <value>*</value>
+ </property>
+ <property>
+ <name>chemistry.tck.serviceUrl</name>
+ <value>http://localhost:8080/xcmis/rest/cmisatom/cmis-inmem1</value>
+ </property>
+ <property>
+ <name>chemistry.tck.user</name>
+ <value>root</value>
+ </property>
+ <property>
+ <name>chemistry.tck.password</name>
+ <value>exo</value>
+ </property>
+ <property>
+ <name>chemistry.tck.validate</name>
+ <value>true</value>
+ </property>
+ <property>
+ <name>chemistry.tck.failOnValidationError</name>
+ <value>false</value>
+ </property>
+ <property>
+ <name>chemistry.tck.traceRequests</name>
+ <value>false</value>
+ </property>
+ </systemProperties>
+ </configuration>
+ </plugin>
+ </plugins>
+ </build>
+ </profile>
+ <profile>
<id>example</id>
<build>
<plugins>
@@ -295,6 +381,18 @@
<name>chemistry.tck.traceRequests</name>
<value>false</value>
</property>
+ <property>
+ <name>chemistry.tck.type.folder</name>
+ <value>custom_folder</value>
+ </property>
+ <property>
+ <name>chemistry.tck.type.document</name>
+ <value>custom_document</value>
+ </property>
+ <property>
+ <name>chemistry.tck.type.relationship</name>
+ <value>custom_association</value>
+ </property>
</systemProperties>
</configuration>
</plugin>
Modified: incubator/chemistry/trunk/chemistry/chemistry-tck-atompub/src/main/java/org/apache/chemistry/tck/atompub/client/CMISClient.java
URL: http://svn.apache.org/viewvc/incubator/chemistry/trunk/chemistry/chemistry-tck-atompub/src/main/java/org/apache/chemistry/tck/atompub/client/CMISClient.java?rev=954796&r1=954795&r2=954796&view=diff
==============================================================================
--- incubator/chemistry/trunk/chemistry/chemistry-tck-atompub/src/main/java/org/apache/chemistry/tck/atompub/client/CMISClient.java (original)
+++ incubator/chemistry/trunk/chemistry/chemistry-tck-atompub/src/main/java/org/apache/chemistry/tck/atompub/client/CMISClient.java Tue Jun 15 10:33:54 2010
@@ -17,21 +17,6 @@
*/
package org.apache.chemistry.tck.atompub.client;
-import java.io.ByteArrayOutputStream;
-import java.io.IOException;
-import java.io.InputStream;
-import java.io.StringReader;
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-
-import javax.activation.MimeType;
-import javax.activation.MimeTypeParseException;
-import javax.xml.parsers.ParserConfigurationException;
-import javax.xml.transform.dom.DOMSource;
-import javax.xml.validation.Validator;
-
import org.apache.abdera.i18n.iri.IRI;
import org.apache.abdera.model.Collection;
import org.apache.abdera.model.Element;
@@ -61,6 +46,21 @@ import org.w3c.dom.Document;
import org.xml.sax.InputSource;
import org.xml.sax.SAXException;
+import java.io.ByteArrayOutputStream;
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.StringReader;
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+import javax.activation.MimeType;
+import javax.activation.MimeTypeParseException;
+import javax.xml.parsers.ParserConfigurationException;
+import javax.xml.transform.dom.DOMSource;
+import javax.xml.validation.Validator;
+
/**
* Interact with CMIS Repository
@@ -108,19 +108,19 @@ public class CMISClient {
public void setTrace(boolean trace) {
this.traceConnection = trace;
}
-
+
public void setDefaultDocumentType(String defaultDocumentType) {
this.defaultDocumentType = defaultDocumentType;
}
-
+
public void setDefaultFolderType(String defaultFolderType) {
this.defaultFolderType = defaultFolderType;
}
-
+
public void setDefaultRelationshipType(String defaultRelationshipType) {
this.defaultRelationshipType = defaultRelationshipType;
}
-
+
public String getUserId()
{
return this.userId;
@@ -243,7 +243,7 @@ public class CMISClient {
public CMISUriTemplate getTypeByIdUriTemplate(Workspace workspace) {
return getUriTemplate(workspace, CMISConstants.URI_TYPE_BY_ID);
}
-
+
public Link getLink(Workspace workspace, String rel, String... matchesMimetypes)
{
List<Link> links = workspace.getExtensions(Constants.LINK);
@@ -296,7 +296,7 @@ public class CMISClient {
}
return null;
}
-
+
public Link getLink(Entry entry, String rel, String... matchesMimetypes) {
return getLink(entry.getLinks(rel), matchesMimetypes);
}
@@ -320,14 +320,14 @@ public class CMISClient {
public Link getFolderParentLink(Entry entry) {
return getLink(entry, CMISConstants.REL_UP, CMISConstants.MIMETYPE_ENTRY);
}
-
+
public List<Link> getRenditionLinks(Entry entry) {
return entry.getLinks(CMISConstants.REL_ALTERNATE);
}
-
+
public Link getChangesLink(Workspace workspace) {
return getLink(workspace, CMISConstants.REL_CHANGES, CMISConstants.MIMETYPE_FEED);
- }
+ }
public Entry getEntry(IRI href) throws Exception {
return getEntry(href, null);
@@ -380,7 +380,7 @@ public class CMISClient {
// Assert.assertEquals(name + " (summary)", entry.getSummary());
CMISObject object = entry.getExtension(CMISConstants.OBJECT);
Assert.assertEquals(CMISConstants.TYPE_FOLDER, object.getBaseTypeId().getStringValue());
- String testFolderHREF = (String) res.getHeader("Location");
+ String testFolderHREF = res.getHeader("Location");
Assert.assertNotNull(testFolderHREF);
return entry;
}
@@ -402,7 +402,7 @@ public class CMISClient {
String contentType, String contentPath) throws Exception {
type = (type == null) ? defaultDocumentType : type;
-
+
// If no preference is expressed, use the base64 template if binary
// content has been supplied or the basic atom entry template otherwise
String createFile = templates
@@ -454,7 +454,7 @@ public class CMISClient {
}
CMISObject object = entry.getExtension(CMISConstants.OBJECT);
Assert.assertEquals(CMISConstants.TYPE_DOCUMENT, object.getBaseTypeId().getStringValue());
- String testFileHREF = (String) res.getHeader("Location");
+ String testFileHREF = res.getHeader("Location");
Assert.assertNotNull(testFileHREF);
return entry;
}
@@ -466,6 +466,7 @@ public class CMISClient {
public Entry createRelationship(IRI parent, String type, String sourceId, String targetId, String atomEntryFile) throws Exception {
type = (type == null) ? defaultRelationshipType : type;
String createFile = templates.load(atomEntryFile);
+ createFile = createFile.replace("${NAME}", sourceId + "_" +targetId);
createFile = createFile.replace("${RELTYPE}", type);
createFile = createFile.replace("${SOURCEID}", sourceId);
createFile = createFile.replace("${TARGETID}", targetId);
@@ -478,7 +479,7 @@ public class CMISClient {
CMISObject object = entry.getExtension(CMISConstants.OBJECT);
Assert.assertEquals(CMISConstants.TYPE_RELATIONSHIP, object.getBaseTypeId().getStringValue());
Assert.assertEquals(targetId, object.getTargetId().getStringValue());
- String testFileHREF = (String) res.getHeader("Location");
+ String testFileHREF = res.getHeader("Location");
Assert.assertNotNull(testFileHREF);
return entry;
}
@@ -602,7 +603,7 @@ public class CMISClient {
* @throws IOException
* @throws ParserConfigurationException
*/
- private void assertValid(String xml, Validator validator) throws IOException, ParserConfigurationException {
+ public void assertValid(String xml, Validator validator) throws IOException, ParserConfigurationException {
if (validate) {
try {
Document document = cmisValidator.getDocumentBuilder().parse(new InputSource(new StringReader(xml)));
Modified: incubator/chemistry/trunk/chemistry/chemistry-tck-atompub/src/main/java/org/apache/chemistry/tck/atompub/fixture/ManageAccessControlListVisitor.java
URL: http://svn.apache.org/viewvc/incubator/chemistry/trunk/chemistry/chemistry-tck-atompub/src/main/java/org/apache/chemistry/tck/atompub/fixture/ManageAccessControlListVisitor.java?rev=954796&r1=954795&r2=954796&view=diff
==============================================================================
--- incubator/chemistry/trunk/chemistry/chemistry-tck-atompub/src/main/java/org/apache/chemistry/tck/atompub/fixture/ManageAccessControlListVisitor.java (original)
+++ incubator/chemistry/trunk/chemistry/chemistry-tck-atompub/src/main/java/org/apache/chemistry/tck/atompub/fixture/ManageAccessControlListVisitor.java Tue Jun 15 10:33:54 2010
@@ -22,8 +22,6 @@ import java.util.HashSet;
import java.util.List;
import java.util.Set;
-import javax.xml.transform.stream.StreamSource;
-
import org.apache.abdera.model.Element;
import org.apache.abdera.model.Entry;
import org.apache.abdera.model.Link;
@@ -72,9 +70,7 @@ public class ManageAccessControlListVisi
// Check whether apply ACL is an allowable action
CMISAllowableActions objectAllowableActions = childObject.getExtension(CMISConstants.ALLOWABLE_ACTIONS);
- Assert.assertNotNull(objectAllowableActions);
- boolean canApplyACL = objectAllowableActions.isAllowed("canApplyACL");
-
+ boolean canApplyACL = (objectAllowableActions == null) ? true : objectAllowableActions.isAllowed("canApplyACL");
// Check whether the typedef allows ACL management
Link typeLink = entry.entry.getLink(CMISConstants.REL_DESCRIBED_BY);
Assert.assertNotNull(typeLink);
@@ -141,7 +137,7 @@ public class ManageAccessControlListVisi
/**
* Gets the set of base types that we have not been able to handle, and thus
* do not expect to show in the change log.
- *
+ *
* @return the rejected types
*/
public Set<String> getRejectedTypes() {
@@ -151,7 +147,7 @@ public class ManageAccessControlListVisi
/**
* Chooses a repository permission to add to an ACL for a given principal.
* Tries to find one that would result in a new entry.
- *
+ *
* @param repositoryPermissions
* the repository permissions. Permissions are removed as they
* are used
@@ -162,7 +158,7 @@ public class ManageAccessControlListVisi
* the current state of the ACL. Tries to avoid creating an ACE
* that is already present. The ace with the chosen permission is
* added to this set
- *
+ *
* @return an ACE with the chosen permission or <code>null</code> if it was
* not possible to choose one< object>
*/
@@ -188,7 +184,7 @@ public class ManageAccessControlListVisi
/**
* Adds an ACE for the given principal and permission to the given ACL if it
* does not already exist.
- *
+ *
* @param principalId
* the principal id. If <code>null</code> the method returns
* immediately.
@@ -197,7 +193,7 @@ public class ManageAccessControlListVisi
* added to this set
* @param permission
* the permission
- *
+ *
* @return an ACE with the permission if it did not already exist in the ACL
* or <code>null</code> otherwise
*/
@@ -217,7 +213,7 @@ public class ManageAccessControlListVisi
/**
* Applies the given ACL using the CMIS API.
- *
+ *
* @param accessControlListLink
* the access control list link
* @param hashedACL
@@ -226,9 +222,9 @@ public class ManageAccessControlListVisi
* Minimum expected result status code
* @param expectedStatusMax
* Maximum expected result status code
- *
+ *
* @return the resulting access control list
- *
+ *
* @throws Exception
* on error
*/
@@ -244,7 +240,7 @@ public class ManageAccessControlListVisi
}
buff.append("</cmis:acl>");
String req = buff.toString();
- client.getAppValidator().validate(new StreamSource(new StringReader(req)));
+ client.assertValid(req, client.getAppValidator());
Request putReq = new PutRequest(accessControlListLink.getHref().toString(), req, CMISConstants.MIMETYPE_CMISACL);
Response aclRes = client.executeRequest(putReq, expectedStatusMin, expectedStatusMax);
Assert.assertNotNull(aclRes);
Modified: incubator/chemistry/trunk/chemistry/chemistry-tck-atompub/src/main/java/org/apache/chemistry/tck/atompub/test/spec/VersionsTest.java
URL: http://svn.apache.org/viewvc/incubator/chemistry/trunk/chemistry/chemistry-tck-atompub/src/main/java/org/apache/chemistry/tck/atompub/test/spec/VersionsTest.java?rev=954796&r1=954795&r2=954796&view=diff
==============================================================================
--- incubator/chemistry/trunk/chemistry/chemistry-tck-atompub/src/main/java/org/apache/chemistry/tck/atompub/test/spec/VersionsTest.java (original)
+++ incubator/chemistry/trunk/chemistry/chemistry-tck-atompub/src/main/java/org/apache/chemistry/tck/atompub/test/spec/VersionsTest.java Tue Jun 15 10:33:54 2010
@@ -17,11 +17,6 @@
*/
package org.apache.chemistry.tck.atompub.test.spec;
-import java.io.StringReader;
-import java.util.Collections;
-import java.util.HashMap;
-import java.util.Map;
-
import org.apache.abdera.i18n.iri.IRI;
import org.apache.abdera.model.Entry;
import org.apache.abdera.model.Feed;
@@ -37,6 +32,11 @@ import org.apache.chemistry.tck.atompub.
import org.apache.chemistry.tck.atompub.http.Response;
import org.junit.Assert;
+import java.io.StringReader;
+import java.util.Collections;
+import java.util.HashMap;
+import java.util.Map;
+
/**
* CMIS Versions Tests
@@ -100,7 +100,7 @@ public class VersionsTest extends TCKTes
CMISObject pwcObject = pwc.getExtension(CMISConstants.OBJECT);
Assert.assertNotNull(pwcObject);
Assert.assertTrue(pwcObject.isVersionSeriesCheckedOut().getBooleanValue());
- Assert.assertEquals(docObject.getObjectId().getStringValue(), pwcObject.getVersionSeriesId().getStringValue());
+ Assert.assertEquals(docObject.getVersionSeriesId().getStringValue(), pwcObject.getVersionSeriesId().getStringValue());
Assert.assertEquals(docObject.getVersionSeriesId().getStringValue(), pwcObject.getVersionSeriesId().getStringValue());
Assert.assertEquals(pwcObject.getObjectId().getStringValue(), pwcObject.getVersionSeriesCheckedOutId().getStringValue());
Assert.assertNotNull(pwcObject.getVersionSeriesCheckedOutBy().getStringValue());
@@ -114,7 +114,7 @@ public class VersionsTest extends TCKTes
CMISObject pwcGetObject = pwc.getExtension(CMISConstants.OBJECT);
Assert.assertNotNull(pwcGetObject);
Assert.assertTrue(pwcGetObject.isVersionSeriesCheckedOut().getBooleanValue());
- Assert.assertEquals(docObject.getObjectId().getStringValue(), pwcGetObject.getVersionSeriesId().getStringValue());
+ Assert.assertEquals(docObject.getVersionSeriesId().getStringValue(), pwcGetObject.getVersionSeriesId().getStringValue());
Assert.assertEquals(pwcGetObject.getObjectId().getStringValue(), pwcGetObject.getVersionSeriesCheckedOutId().getStringValue());
Assert.assertNotNull(pwcGetObject.getVersionSeriesCheckedOutBy().getStringValue());
@@ -256,7 +256,7 @@ public class VersionsTest extends TCKTes
// updatedObject.getVersionSeriesId().getStringValue());
Assert.assertNull(updatedObject.getVersionSeriesCheckedOutId().getStringValue());
Assert.assertNull(updatedObject.getVersionSeriesCheckedOutBy().getStringValue());
-
+
// There is no guarantee that the object returned by checkin is the object against which our checkin comment
// was recorded, so let's get the 'latest major version'
updatedDoc = client.getEntry(updatedDoc.getSelfLink().getHref(), Collections.singletonMap("returnVersion", "latestmajor"));
@@ -338,12 +338,12 @@ public class VersionsTest extends TCKTes
Assert.assertNotNull(allVersionsLink);
Feed allVersions = client.getFeed(allVersionsLink.getHref());
Assert.assertNotNull(allVersions);
-
+
// Remember the initial number of versions. This should be at least one, but may vary across repositories that
// may maintain a 'current' version in tandem with version history snapshots.
int initialVersions = allVersions.getEntries().size();
Assert.assertTrue(initialVersions > 0);
-
+
IRI checkedoutHREF = client.getCheckedOutCollection(client.getWorkspace());
for (int i = 0; i < NUMBER_OF_VERSIONS; i++) {
// checkout
@@ -394,7 +394,7 @@ public class VersionsTest extends TCKTes
} else {
pastLatestMajor = versionObject.isLatestMajorVersion().getBooleanValue();
}
-
+
if (versionIndex >= 0) {
// Validate non-initial versions have content
Response versionContentRes = client.executeRequest(new GetRequest(version.getContentSrc().toString()),
Modified: incubator/chemistry/trunk/chemistry/chemistry-tck-atompub/src/main/resources/org/apache/chemistry/tck/atompub/templates/createrelationship.atomentry.xml
URL: http://svn.apache.org/viewvc/incubator/chemistry/trunk/chemistry/chemistry-tck-atompub/src/main/resources/org/apache/chemistry/tck/atompub/templates/createrelationship.atomentry.xml?rev=954796&r1=954795&r2=954796&view=diff
==============================================================================
--- incubator/chemistry/trunk/chemistry/chemistry-tck-atompub/src/main/resources/org/apache/chemistry/tck/atompub/templates/createrelationship.atomentry.xml (original)
+++ incubator/chemistry/trunk/chemistry/chemistry-tck-atompub/src/main/resources/org/apache/chemistry/tck/atompub/templates/createrelationship.atomentry.xml Tue Jun 15 10:33:54 2010
@@ -1,5 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<entry xmlns="http://www.w3.org/2005/Atom" xmlns:cmisra="http://docs.oasis-open.org/ns/cmis/restatom/200908/" xmlns:cmis="http://docs.oasis-open.org/ns/cmis/core/200908/">
+ <title>${NAME}</title>
<cmisra:object>
<cmis:properties>
<cmis:propertyId propertyDefinitionId="cmis:objectTypeId">
@@ -14,3 +15,4 @@
</cmis:properties>
</cmisra:object>
</entry>
+</entry>