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 2009/08/18 16:27:59 UTC

svn commit: r805426 [3/9] - in /incubator/chemistry/trunk/chemistry: ./ chemistry-tck-atompub/ chemistry-tck-atompub/src/ chemistry-tck-atompub/src/main/ chemistry-tck-atompub/src/main/java/ chemistry-tck-atompub/src/main/java/org/ chemistry-tck-atompu...

Added: incubator/chemistry/trunk/chemistry/chemistry-tck-atompub/src/main/java/org/apache/chemistry/tck/atompub/http/Response.java
URL: http://svn.apache.org/viewvc/incubator/chemistry/trunk/chemistry/chemistry-tck-atompub/src/main/java/org/apache/chemistry/tck/atompub/http/Response.java?rev=805426&view=auto
==============================================================================
--- incubator/chemistry/trunk/chemistry/chemistry-tck-atompub/src/main/java/org/apache/chemistry/tck/atompub/http/Response.java (added)
+++ incubator/chemistry/trunk/chemistry/chemistry-tck-atompub/src/main/java/org/apache/chemistry/tck/atompub/http/Response.java Tue Aug 18 14:27:55 2009
@@ -0,0 +1,38 @@
+/*
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ * Authors:
+ *     David Caruana, Alfresco
+ *     Gabriele Columbro, Alfresco
+ */
+package org.apache.chemistry.tck.atompub.http;
+
+import java.io.UnsupportedEncodingException;
+
+/**
+ * Response
+ */
+public interface Response {
+    
+    public byte[] getContentAsByteArray();
+
+    public String getContentAsString() throws UnsupportedEncodingException;
+
+    public String getHeader(String name);
+
+    public String getContentType();
+
+    public int getContentLength();
+
+    public int getStatus();
+}

Propchange: incubator/chemistry/trunk/chemistry/chemistry-tck-atompub/src/main/java/org/apache/chemistry/tck/atompub/http/Response.java
------------------------------------------------------------------------------
    svn:eol-style = native

Added: incubator/chemistry/trunk/chemistry/chemistry-tck-atompub/src/main/java/org/apache/chemistry/tck/atompub/http/httpclient/HttpClientConnection.java
URL: http://svn.apache.org/viewvc/incubator/chemistry/trunk/chemistry/chemistry-tck-atompub/src/main/java/org/apache/chemistry/tck/atompub/http/httpclient/HttpClientConnection.java?rev=805426&view=auto
==============================================================================
--- incubator/chemistry/trunk/chemistry/chemistry-tck-atompub/src/main/java/org/apache/chemistry/tck/atompub/http/httpclient/HttpClientConnection.java (added)
+++ incubator/chemistry/trunk/chemistry/chemistry-tck-atompub/src/main/java/org/apache/chemistry/tck/atompub/http/httpclient/HttpClientConnection.java Tue Aug 18 14:27:55 2009
@@ -0,0 +1,89 @@
+/*
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ * Authors:
+ *     David Caruana, Alfresco
+ *     Gabriele Columbro, Alfresco
+ */
+package org.apache.chemistry.tck.atompub.http.httpclient;
+
+import java.io.IOException;
+import java.util.Map;
+
+import org.apache.chemistry.tck.atompub.http.Connection;
+import org.apache.chemistry.tck.atompub.http.Request;
+import org.apache.chemistry.tck.atompub.http.Response;
+import org.apache.commons.httpclient.HttpClient;
+import org.apache.commons.httpclient.HttpMethod;
+import org.apache.commons.httpclient.UsernamePasswordCredentials;
+import org.apache.commons.httpclient.auth.AuthScope;
+import org.apache.commons.httpclient.methods.ByteArrayRequestEntity;
+import org.apache.commons.httpclient.methods.DeleteMethod;
+import org.apache.commons.httpclient.methods.GetMethod;
+import org.apache.commons.httpclient.methods.PostMethod;
+import org.apache.commons.httpclient.methods.PutMethod;
+import org.apache.commons.httpclient.params.HttpClientParams;
+
+
+/**
+ * HttpClient implementation of Http Connection
+ */
+public class HttpClientConnection implements Connection {
+    private HttpClient httpClient;
+
+    public HttpClientConnection(String username, String password) {
+        httpClient = new HttpClient();
+        if (username != null) {
+            httpClient.getParams().setBooleanParameter(HttpClientParams.PREEMPTIVE_AUTHENTICATION, true);
+            httpClient.getState().setCredentials(new AuthScope(AuthScope.ANY_HOST, AuthScope.ANY_PORT),
+                    new UsernamePasswordCredentials(username, password));
+        }
+    }
+
+    public Response executeRequest(Request req) throws IOException {
+        // construct method
+        HttpMethod httpMethod = null;
+        String method = req.getMethod();
+        if (method.equalsIgnoreCase("GET")) {
+            GetMethod get = new GetMethod(req.getFullUri());
+            httpMethod = get;
+        } else if (method.equalsIgnoreCase("POST")) {
+            PostMethod post = new PostMethod(req.getFullUri());
+            post.setRequestEntity(new ByteArrayRequestEntity(req.getBody(), req.getType()));
+            httpMethod = post;
+        } else if (method.equalsIgnoreCase("PATCH")) {
+            HttpClientPatchMethod post = new HttpClientPatchMethod(req.getFullUri());
+            post.setRequestEntity(new ByteArrayRequestEntity(req.getBody(), req.getType()));
+            httpMethod = post;
+        } else if (method.equalsIgnoreCase("PUT")) {
+            PutMethod put = new PutMethod(req.getFullUri());
+            put.setRequestEntity(new ByteArrayRequestEntity(req.getBody(), req.getType()));
+            httpMethod = put;
+        } else if (method.equalsIgnoreCase("DELETE")) {
+            DeleteMethod del = new DeleteMethod(req.getFullUri());
+            httpMethod = del;
+        } else {
+            throw new RuntimeException("Http Method " + method + " not supported");
+        }
+        if (req.getHeaders() != null) {
+            for (Map.Entry<String, String> header : req.getHeaders().entrySet()) {
+                httpMethod.setRequestHeader(header.getKey(), header.getValue());
+            }
+        }
+
+        // execute
+        httpClient.executeMethod(httpMethod);
+        Response res = new HttpClientResponse(httpMethod);
+        return res;
+    }
+}

Propchange: incubator/chemistry/trunk/chemistry/chemistry-tck-atompub/src/main/java/org/apache/chemistry/tck/atompub/http/httpclient/HttpClientConnection.java
------------------------------------------------------------------------------
    svn:eol-style = native

Added: incubator/chemistry/trunk/chemistry/chemistry-tck-atompub/src/main/java/org/apache/chemistry/tck/atompub/http/httpclient/HttpClientConnectionFactory.java
URL: http://svn.apache.org/viewvc/incubator/chemistry/trunk/chemistry/chemistry-tck-atompub/src/main/java/org/apache/chemistry/tck/atompub/http/httpclient/HttpClientConnectionFactory.java?rev=805426&view=auto
==============================================================================
--- incubator/chemistry/trunk/chemistry/chemistry-tck-atompub/src/main/java/org/apache/chemistry/tck/atompub/http/httpclient/HttpClientConnectionFactory.java (added)
+++ incubator/chemistry/trunk/chemistry/chemistry-tck-atompub/src/main/java/org/apache/chemistry/tck/atompub/http/httpclient/HttpClientConnectionFactory.java Tue Aug 18 14:27:55 2009
@@ -0,0 +1,37 @@
+/*
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ * Authors:
+ *     David Caruana, Alfresco
+ *     Gabriele Columbro, Alfresco
+ */
+package org.apache.chemistry.tck.atompub.http.httpclient;
+
+import org.apache.chemistry.tck.atompub.http.Connection;
+import org.apache.chemistry.tck.atompub.http.ConnectionFactory;
+
+
+/**
+ * Construct HttpClient Connections
+ */
+public class HttpClientConnectionFactory implements ConnectionFactory {
+
+    public Connection createConnection() {
+        return createConnection(null, null);
+    }
+
+    public Connection createConnection(String username, String password) {
+        return new HttpClientConnection(username, password);
+    }
+
+}

Propchange: incubator/chemistry/trunk/chemistry/chemistry-tck-atompub/src/main/java/org/apache/chemistry/tck/atompub/http/httpclient/HttpClientConnectionFactory.java
------------------------------------------------------------------------------
    svn:eol-style = native

Added: incubator/chemistry/trunk/chemistry/chemistry-tck-atompub/src/main/java/org/apache/chemistry/tck/atompub/http/httpclient/HttpClientPatchMethod.java
URL: http://svn.apache.org/viewvc/incubator/chemistry/trunk/chemistry/chemistry-tck-atompub/src/main/java/org/apache/chemistry/tck/atompub/http/httpclient/HttpClientPatchMethod.java?rev=805426&view=auto
==============================================================================
--- incubator/chemistry/trunk/chemistry/chemistry-tck-atompub/src/main/java/org/apache/chemistry/tck/atompub/http/httpclient/HttpClientPatchMethod.java (added)
+++ incubator/chemistry/trunk/chemistry/chemistry-tck-atompub/src/main/java/org/apache/chemistry/tck/atompub/http/httpclient/HttpClientPatchMethod.java Tue Aug 18 14:27:55 2009
@@ -0,0 +1,33 @@
+/*
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ * Authors:
+ *     David Caruana, Alfresco
+ */
+package org.apache.chemistry.tck.atompub.http.httpclient;
+
+import org.apache.commons.httpclient.methods.EntityEnclosingMethod;
+
+/**
+ * PATCH method for HttpClient
+ */
+public class HttpClientPatchMethod extends EntityEnclosingMethod {
+    public HttpClientPatchMethod(String uri) {
+        super(uri);
+    }
+
+    @Override
+    public String getName() {
+        return "PATCH";
+    }
+}

Propchange: incubator/chemistry/trunk/chemistry/chemistry-tck-atompub/src/main/java/org/apache/chemistry/tck/atompub/http/httpclient/HttpClientPatchMethod.java
------------------------------------------------------------------------------
    svn:eol-style = native

Added: incubator/chemistry/trunk/chemistry/chemistry-tck-atompub/src/main/java/org/apache/chemistry/tck/atompub/http/httpclient/HttpClientResponse.java
URL: http://svn.apache.org/viewvc/incubator/chemistry/trunk/chemistry/chemistry-tck-atompub/src/main/java/org/apache/chemistry/tck/atompub/http/httpclient/HttpClientResponse.java?rev=805426&view=auto
==============================================================================
--- incubator/chemistry/trunk/chemistry/chemistry-tck-atompub/src/main/java/org/apache/chemistry/tck/atompub/http/httpclient/HttpClientResponse.java (added)
+++ incubator/chemistry/trunk/chemistry/chemistry-tck-atompub/src/main/java/org/apache/chemistry/tck/atompub/http/httpclient/HttpClientResponse.java Tue Aug 18 14:27:55 2009
@@ -0,0 +1,75 @@
+/*
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ * Authors:
+ *     David Caruana, Alfresco
+ *     Gabriele Columbro, Alfresco
+ */
+package org.apache.chemistry.tck.atompub.http.httpclient;
+
+import java.io.IOException;
+import java.io.UnsupportedEncodingException;
+
+import org.apache.chemistry.tck.atompub.http.Response;
+import org.apache.commons.httpclient.Header;
+import org.apache.commons.httpclient.HttpMethod;
+
+
+/**
+ * HttpClient implementation of Response
+ */
+public class HttpClientResponse implements Response {
+    private HttpMethod method;
+
+    public HttpClientResponse(HttpMethod method) {
+        this.method = method;
+    }
+
+    public byte[] getContentAsByteArray() {
+        try {
+            return method.getResponseBody();
+        } catch (IOException e) {
+            return null;
+        }
+    }
+
+    public String getContentAsString() throws UnsupportedEncodingException {
+        try {
+            return method.getResponseBodyAsString();
+        } catch (IOException e) {
+            return null;
+        }
+    }
+
+    public String getContentType() {
+        return getHeader("Content-Type");
+    }
+
+    public int getContentLength() {
+        try {
+            return method.getResponseBody().length;
+        } catch (IOException e) {
+            return 0;
+        }
+    }
+
+    public String getHeader(String name) {
+        Header header = method.getResponseHeader(name);
+        return (header != null) ? header.getValue() : null;
+    }
+
+    public int getStatus() {
+        return method.getStatusCode();
+    }
+
+}

Propchange: incubator/chemistry/trunk/chemistry/chemistry-tck-atompub/src/main/java/org/apache/chemistry/tck/atompub/http/httpclient/HttpClientResponse.java
------------------------------------------------------------------------------
    svn:eol-style = native

Added: incubator/chemistry/trunk/chemistry/chemistry-tck-atompub/src/main/java/org/apache/chemistry/tck/atompub/tools/TCKExecutor.java
URL: http://svn.apache.org/viewvc/incubator/chemistry/trunk/chemistry/chemistry-tck-atompub/src/main/java/org/apache/chemistry/tck/atompub/tools/TCKExecutor.java?rev=805426&view=auto
==============================================================================
--- incubator/chemistry/trunk/chemistry/chemistry-tck-atompub/src/main/java/org/apache/chemistry/tck/atompub/tools/TCKExecutor.java (added)
+++ incubator/chemistry/trunk/chemistry/chemistry-tck-atompub/src/main/java/org/apache/chemistry/tck/atompub/tools/TCKExecutor.java Tue Aug 18 14:27:55 2009
@@ -0,0 +1,230 @@
+/*
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ * Authors:
+ *     David Caruana, Alfresco
+ *     Gabriele Columbro, Alfresco
+ */
+package org.apache.chemistry.tck.atompub.tools;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import junit.framework.TestResult;
+import junit.framework.TestSuite;
+import junit.textui.TestRunner;
+
+import org.apache.chemistry.tck.atompub.TCKLogger;
+import org.apache.chemistry.tck.atompub.TCKOptions;
+import org.apache.chemistry.tck.atompub.TCKTest;
+
+
+//
+// TODO: Revisit this class...
+//
+
+
+/**
+ * Front end for executing Tests
+ */
+public class TCKExecutor {
+
+    private static class Options implements TCKOptions {
+        private String serviceUrl = null;
+        private String user = "admin";
+        private String password = "admin";
+        private Boolean validate = true;
+        private Boolean failOnValidationError = false;
+        private Boolean traceRequests = true;
+        private Boolean deleteTestFixture = true;
+
+        public String getServiceUrl() {
+            return serviceUrl;
+        }
+
+        public String getUser() {
+            return user;
+        }
+
+        public String getPassword() {
+            return password;
+        }
+
+        public Boolean getValidate() {
+            return validate;
+        }
+
+        public Boolean getFailOnValidationError() {
+            return failOnValidationError;
+        }
+
+        public Boolean getTraceRequests() {
+            return traceRequests;
+        }
+
+        public Boolean getDeleteTestFixture() {
+            return deleteTestFixture;
+        }
+
+        public String getConnectionFactory() {
+            return null;
+        }
+
+    }
+
+    private Options options = new Options();
+    private Class<? extends TCKTest>[] testClasses = new Class[] { };
+    private String match = null;
+
+    public void setTestClasses(Class<? extends TCKTest>[] testClasses) {
+        this.testClasses = testClasses;
+    }
+
+    /**
+     * @param match  test name to execute (* for wildcards)
+     */
+    public void setMatch(String match) {
+        this.match = match;
+    }
+
+    /**
+     * @param serviceUrl  cmis service document url
+     */
+    public void setServiceUrl(String serviceUrl) {
+        options.serviceUrl = serviceUrl;
+    }
+
+    /**
+     * @param user
+     */
+    public void setUser(String user) {
+        options.user = user;
+    }
+
+    /**
+     * @param password
+     */
+    public void setPassword(String password) {
+        options.password = password;
+    }
+
+    /**
+     * @param validateResponse  true => test response against CMIS XSDs
+     */
+    public void setValidate(boolean validate) {
+        options.validate = validate;
+    }
+
+    public void setFailOnValidationError(boolean failOnValidationError) {
+        options.failOnValidationError = failOnValidationError;
+    }
+
+    /**
+     * @param traceReqRes  true => trace requests / responses
+     */
+    public void setTraceRequests(boolean traceRequests) {
+        options.traceRequests = traceRequests;
+    }
+
+    public void setDeleteTestFixture(boolean deleteTestFixture) {
+        options.deleteTestFixture = deleteTestFixture;
+    }
+
+    /**
+     * Gets the names of CMIS tests
+     *
+     * @param match
+     * @return array of test names
+     */
+    public String[] getTestNames(String match) {
+        List<String> namesList = new ArrayList<String>();
+        for (Class<? extends TCKTest> testClass : testClasses) {
+            TestSuite suite = new TestSuite(testClass);
+            for (int i = 0; i < suite.countTestCases(); i++) {
+                TCKTest test = (TCKTest) suite.testAt(i);
+                if (match == null || match.equals("*") || test.getName().matches(match.replace("*", "[A-Za-z0-9]*"))) {
+                    namesList.add(test.getName());
+                }
+            }
+        }
+        String[] names = new String[namesList.size()];
+        namesList.toArray(names);
+        return names;
+    }
+
+    /**
+     * Execute CMIS Tests
+     */
+    public void execute() {
+        // dump TCK options
+        if (options.traceRequests && TCKLogger.logger.isInfoEnabled()) {
+            TCKLogger.logger.info("Service URL: "
+                    + (options.getServiceUrl() == null ? "[not set]" : options.getServiceUrl()));
+            TCKLogger.logger.info("User: " + (options.getUser() == null ? "[not set]" : options.getUser()));
+            TCKLogger.logger.info("Password: "
+                    + (options.getPassword() == null ? "[not set]" : options.getPassword()));
+            TCKLogger.logger.info("Validate: " + options.getValidate());
+            TCKLogger.logger.info("Fail on Validation Error: " + options.getFailOnValidationError());
+            TCKLogger.logger.info("Trace Requests: " + options.getTraceRequests());
+            TCKLogger.logger.info("Tests: " + (match == null ? "*" : match));
+        }
+
+        executeSuite(match, options);
+    }
+
+    /**
+     * Execute suite of CMIS Tests
+     */
+    private void executeSuite(String match, TCKOptions options) {
+        TestSuite allsuite = new TestSuite();
+        for (Class<? extends TCKTest> testClass : testClasses) {
+            TestSuite suite = new TestSuite(testClass);
+            for (int i = 0; i < suite.countTestCases(); i++) {
+                TCKTest test = (TCKTest) suite.testAt(i);
+                if (match == null || match.equals("*") || test.getName().matches(match.replace("*", "[A-Za-z0-9]*"))) {
+                    test.setOptions(options);
+                    allsuite.addTest(test);
+                }
+            }
+        }
+        TestResult result = new TestResult();
+        //allsuite.run(result);
+        TestRunner runner = new TestRunner();
+        runner.doRun(allsuite);
+    }
+
+    /**
+     * Execute CMIS Tests from command-line
+     *
+     * url={serviceUrl} user={user} password={password}
+     */
+    public static void main(String[] args) {
+        TCKExecutor runner = new TCKExecutor();
+
+        for (String arg : args) {
+            String[] argSegment = arg.split("=");
+            if (argSegment[0].equals("url")) {
+                runner.setServiceUrl(argSegment[1]);
+            } else if (argSegment[0].equals("user")) {
+                runner.setUser(argSegment[1]);
+            } else if (argSegment[0].equals("password")) {
+                runner.setPassword(argSegment[1]);
+            }
+        }
+
+        // execute
+        runner.execute();
+        System.exit(0);
+    }
+
+}

Propchange: incubator/chemistry/trunk/chemistry/chemistry-tck-atompub/src/main/java/org/apache/chemistry/tck/atompub/tools/TCKExecutor.java
------------------------------------------------------------------------------
    svn:eol-style = native

Added: incubator/chemistry/trunk/chemistry/chemistry-tck-atompub/src/main/java/org/apache/chemistry/tck/atompub/utils/ISO8601DateFormat.java
URL: http://svn.apache.org/viewvc/incubator/chemistry/trunk/chemistry/chemistry-tck-atompub/src/main/java/org/apache/chemistry/tck/atompub/utils/ISO8601DateFormat.java?rev=805426&view=auto
==============================================================================
--- incubator/chemistry/trunk/chemistry/chemistry-tck-atompub/src/main/java/org/apache/chemistry/tck/atompub/utils/ISO8601DateFormat.java (added)
+++ incubator/chemistry/trunk/chemistry/chemistry-tck-atompub/src/main/java/org/apache/chemistry/tck/atompub/utils/ISO8601DateFormat.java Tue Aug 18 14:27:55 2009
@@ -0,0 +1,166 @@
+/*
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.chemistry.tck.atompub.utils;
+
+import java.util.Calendar;
+import java.util.Date;
+import java.util.GregorianCalendar;
+import java.util.TimeZone;
+
+
+// TODO: replace with support already in Chemistry
+
+public class ISO8601DateFormat {
+    /**
+     * Format date into ISO format
+     * 
+     * @param isoDate
+     *            the date to format
+     * @return the ISO formatted string
+     */
+    public static String format(Date isoDate) {
+        // Note: always serialise to Gregorian Calendar
+        Calendar calendar = new GregorianCalendar();
+        calendar.setTime(isoDate);
+
+        StringBuilder formatted = new StringBuilder(28);
+        padInt(formatted, calendar.get(Calendar.YEAR), 4);
+        formatted.append('-');
+        padInt(formatted, calendar.get(Calendar.MONTH) + 1, 2);
+        formatted.append('-');
+        padInt(formatted, calendar.get(Calendar.DAY_OF_MONTH), 2);
+        formatted.append('T');
+        padInt(formatted, calendar.get(Calendar.HOUR_OF_DAY), 2);
+        formatted.append(':');
+        padInt(formatted, calendar.get(Calendar.MINUTE), 2);
+        formatted.append(':');
+        padInt(formatted, calendar.get(Calendar.SECOND), 2);
+        formatted.append('.');
+        padInt(formatted, calendar.get(Calendar.MILLISECOND), 3);
+
+        TimeZone tz = calendar.getTimeZone();
+        int offset = tz.getOffset(calendar.getTimeInMillis());
+        if (offset != 0) {
+            int hours = Math.abs((offset / (60 * 1000)) / 60);
+            int minutes = Math.abs((offset / (60 * 1000)) % 60);
+            formatted.append(offset < 0 ? '-' : '+');
+            padInt(formatted, hours, 2);
+            formatted.append(':');
+            padInt(formatted, minutes, 2);
+        } else {
+            formatted.append('Z');
+        }
+
+        return formatted.toString();
+    }
+
+    /**
+     * Parse date from ISO formatted string
+     * 
+     * @param isoDate
+     *            ISO string to parse
+     * @return the date
+     * @throws AlfrescoRuntimeException
+     *             if the parse failed
+     */
+    public static Date parse(String isoDate) {
+        Date parsed = null;
+
+        try {
+            int offset = 0;
+
+            // extract year
+            int year = Integer.parseInt(isoDate.substring(offset, offset += 4));
+            if (isoDate.charAt(offset) != '-') {
+                throw new IndexOutOfBoundsException("Expected - character but found " + isoDate.charAt(offset));
+            }
+
+            // extract month
+            int month = Integer.parseInt(isoDate.substring(offset += 1, offset += 2));
+            if (isoDate.charAt(offset) != '-') {
+                throw new IndexOutOfBoundsException("Expected - character but found " + isoDate.charAt(offset));
+            }
+
+            // extract day
+            int day = Integer.parseInt(isoDate.substring(offset += 1, offset += 2));
+            if (isoDate.charAt(offset) != 'T') {
+                throw new IndexOutOfBoundsException("Expected T character but found " + isoDate.charAt(offset));
+            }
+
+            // extract hours, minutes, seconds and milliseconds
+            int hour = Integer.parseInt(isoDate.substring(offset += 1, offset += 2));
+            if (isoDate.charAt(offset) != ':') {
+                throw new IndexOutOfBoundsException("Expected : character but found " + isoDate.charAt(offset));
+            }
+            int minutes = Integer.parseInt(isoDate.substring(offset += 1, offset += 2));
+            if (isoDate.charAt(offset) != ':') {
+                throw new IndexOutOfBoundsException("Expected : character but found " + isoDate.charAt(offset));
+            }
+            int seconds = Integer.parseInt(isoDate.substring(offset += 1, offset += 2));
+            if (isoDate.charAt(offset) != '.') {
+                throw new IndexOutOfBoundsException("Expected . character but found " + isoDate.charAt(offset));
+            }
+            int milliseconds = Integer.parseInt(isoDate.substring(offset += 1, offset += 3));
+
+            // extract timezone
+            String timezoneId;
+            char timezoneIndicator = isoDate.charAt(offset);
+            if (timezoneIndicator == '+' || timezoneIndicator == '-') {
+                timezoneId = "GMT" + isoDate.substring(offset);
+            } else if (timezoneIndicator == 'Z') {
+                timezoneId = "GMT";
+            } else {
+                throw new IndexOutOfBoundsException("Invalid time zone indicator " + timezoneIndicator);
+            }
+            TimeZone timezone = TimeZone.getTimeZone(timezoneId);
+            if (!timezone.getID().equals(timezoneId)) {
+                throw new IndexOutOfBoundsException();
+            }
+
+            // initialize Calendar object#
+            // Note: always de-serialise from Gregorian Calendar
+            Calendar calendar = new GregorianCalendar(timezone);
+            calendar.setLenient(false);
+            calendar.set(Calendar.YEAR, year);
+            calendar.set(Calendar.MONTH, month - 1);
+            calendar.set(Calendar.DAY_OF_MONTH, day);
+            calendar.set(Calendar.HOUR_OF_DAY, hour);
+            calendar.set(Calendar.MINUTE, minutes);
+            calendar.set(Calendar.SECOND, seconds);
+            calendar.set(Calendar.MILLISECOND, milliseconds);
+
+            // extract the date
+            parsed = calendar.getTime();
+        } catch (IndexOutOfBoundsException e) {
+            throw new RuntimeException("Failed to parse date " + isoDate, e);
+        } catch (NumberFormatException e) {
+            throw new RuntimeException("Failed to parse date " + isoDate, e);
+        } catch (IllegalArgumentException e) {
+            throw new RuntimeException("Failed to parse date " + isoDate, e);
+        }
+
+        return parsed;
+    }
+
+    /**
+     * Helper to zero pad a number to specified length
+     */
+    private static void padInt(StringBuilder buffer, int value, int length) {
+        String strValue = Integer.toString(value);
+        for (int i = length - strValue.length(); i > 0; i--) {
+            buffer.append('0');
+        }
+        buffer.append(strValue);
+    }
+}

Propchange: incubator/chemistry/trunk/chemistry/chemistry-tck-atompub/src/main/java/org/apache/chemistry/tck/atompub/utils/ISO8601DateFormat.java
------------------------------------------------------------------------------
    svn:eol-style = native

Added: incubator/chemistry/trunk/chemistry/chemistry-tck-atompub/src/main/java/org/apache/chemistry/tck/atompub/utils/ResourceLoader.java
URL: http://svn.apache.org/viewvc/incubator/chemistry/trunk/chemistry/chemistry-tck-atompub/src/main/java/org/apache/chemistry/tck/atompub/utils/ResourceLoader.java?rev=805426&view=auto
==============================================================================
--- incubator/chemistry/trunk/chemistry/chemistry-tck-atompub/src/main/java/org/apache/chemistry/tck/atompub/utils/ResourceLoader.java (added)
+++ incubator/chemistry/trunk/chemistry/chemistry-tck-atompub/src/main/java/org/apache/chemistry/tck/atompub/utils/ResourceLoader.java Tue Aug 18 14:27:55 2009
@@ -0,0 +1,74 @@
+/*
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ * Authors:
+ *     David Caruana, Alfresco
+ *     Gabriele Columbro, Alfresco
+ */
+package org.apache.chemistry.tck.atompub.utils;
+
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.InputStreamReader;
+import java.io.StringWriter;
+
+
+/**
+ * Load resource from classpath
+ */
+public class ResourceLoader {
+    
+    private String basePath;
+
+    public ResourceLoader() {
+        this(null);
+    }
+
+    public ResourceLoader(String basePath) {
+        this.basePath = basePath;
+    }
+
+    /**
+     * Load text from file specified by class path
+     * 
+     * @param classPath
+     *            XML file
+     * @return XML
+     * @throws IOException
+     */
+    public String load(String path) throws IOException {
+        String fullPath = (basePath == null) ? path : basePath + path;
+        InputStream input = getClass().getResourceAsStream(fullPath);
+        if (input == null) {
+            throw new IOException(fullPath + " not found.");
+        }
+
+        InputStreamReader reader = new InputStreamReader(input, "UTF-8");
+        StringWriter writer = new StringWriter();
+
+        try {
+            char[] buffer = new char[4096];
+            int bytesRead = -1;
+            while ((bytesRead = reader.read(buffer)) != -1) {
+                writer.write(buffer, 0, bytesRead);
+            }
+            writer.flush();
+        } finally {
+            reader.close();
+            writer.close();
+        }
+
+        return writer.toString();
+    }
+
+}

Propchange: incubator/chemistry/trunk/chemistry/chemistry-tck-atompub/src/main/java/org/apache/chemistry/tck/atompub/utils/ResourceLoader.java
------------------------------------------------------------------------------
    svn:eol-style = native

Added: incubator/chemistry/trunk/chemistry/chemistry-tck-atompub/src/main/java/org/apache/chemistry/tck/atompub/utils/SystemPropertyOptions.java
URL: http://svn.apache.org/viewvc/incubator/chemistry/trunk/chemistry/chemistry-tck-atompub/src/main/java/org/apache/chemistry/tck/atompub/utils/SystemPropertyOptions.java?rev=805426&view=auto
==============================================================================
--- incubator/chemistry/trunk/chemistry/chemistry-tck-atompub/src/main/java/org/apache/chemistry/tck/atompub/utils/SystemPropertyOptions.java (added)
+++ incubator/chemistry/trunk/chemistry/chemistry-tck-atompub/src/main/java/org/apache/chemistry/tck/atompub/utils/SystemPropertyOptions.java Tue Aug 18 14:27:55 2009
@@ -0,0 +1,74 @@
+/*
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ * Authors:
+ *     David Caruana, Alfresco
+ *     Gabriele Columbro, Alfresco
+ */
+package org.apache.chemistry.tck.atompub.utils;
+
+import org.apache.chemistry.tck.atompub.TCKOptions;
+
+
+/**
+ * TCK Options sourced from System Properties
+ */
+public class SystemPropertyOptions implements TCKOptions {
+
+    private final static String PROP_SERVICE_URL = "chemistry.tck.serviceUrl";
+    private final static String PROP_USER = "chemistry.tck.user";
+    private final static String PROP_PASSWORD = "chemistry.tck.password";
+    private final static String PROP_VALIDATE = "chemistry.tck.validate";
+    private final static String PROP_FAIL_ON_VALIDATION_ERROR = "chemistry.tck.failOnValidationError";
+    private final static String PROP_TRACE_REQUESTS = "chemistry.tck.traceRequests";
+    private final static String PROP_DELETE_TEST_FIXTURE = "chemistry.tck.deleteTestFixture";
+
+    public Boolean getFailOnValidationError() {
+        String val = System.getProperty(PROP_FAIL_ON_VALIDATION_ERROR);
+        return val != null && val.length() > 0 ? Boolean.valueOf(val) : null;
+    }
+
+    public String getPassword() {
+        String val = System.getProperty(PROP_PASSWORD);
+        return val != null && val.length() > 0 ? val : null;
+    }
+
+    public String getServiceUrl() {
+        String val = System.getProperty(PROP_SERVICE_URL);
+        return val != null && val.length() > 0 ? val : null;
+    }
+
+    public Boolean getTraceRequests() {
+        String val = System.getProperty(PROP_TRACE_REQUESTS);
+        return val != null && val.length() > 0 ? Boolean.valueOf(val) : null;
+    }
+
+    public String getUser() {
+        String val = System.getProperty(PROP_USER);
+        return val != null && val.length() > 0 ? val : null;
+    }
+
+    public Boolean getValidate() {
+        String val = System.getProperty(PROP_VALIDATE);
+        return val != null && val.length() > 0 ? Boolean.valueOf(val) : null;
+    }
+
+    public String getConnectionFactory() {
+        return null;
+    }
+
+    public Boolean getDeleteTestFixture() {
+        String val = System.getProperty(PROP_DELETE_TEST_FIXTURE);
+        return val != null && val.length() > 0 ? Boolean.valueOf(val) : null;
+    }
+}

Propchange: incubator/chemistry/trunk/chemistry/chemistry-tck-atompub/src/main/java/org/apache/chemistry/tck/atompub/utils/SystemPropertyOptions.java
------------------------------------------------------------------------------
    svn:eol-style = native

Added: incubator/chemistry/trunk/chemistry/chemistry-tck-atompub/src/main/resources/org/apache/chemistry/tck/atompub/examples/AllowableActions.xml
URL: http://svn.apache.org/viewvc/incubator/chemistry/trunk/chemistry/chemistry-tck-atompub/src/main/resources/org/apache/chemistry/tck/atompub/examples/AllowableActions.xml?rev=805426&view=auto
==============================================================================
--- incubator/chemistry/trunk/chemistry/chemistry-tck-atompub/src/main/resources/org/apache/chemistry/tck/atompub/examples/AllowableActions.xml (added)
+++ incubator/chemistry/trunk/chemistry/chemistry-tck-atompub/src/main/resources/org/apache/chemistry/tck/atompub/examples/AllowableActions.xml Tue Aug 18 14:27:55 2009
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
+<cmis:allowableActions xmlns:cmis="http://docs.oasis-open.org/ns/cmis/core/200901" xmlns:cmism="http://docs.oasis-open.org/ns/cmis/messaging/200901"
+  xmlns:atom="http://www.w3.org/2005/Atom" xmlns:app="http://www.w3.org/2007/app" xmlns:cmisra="http://docs.oasis-open.org/ns/cmis/restatom/200901">
+  <cmis:canDeleteObject>true</cmis:canDeleteObject>
+  <cmis:canUpdateProperties>true</cmis:canUpdateProperties>
+  <cmis:canGetProperties>true</cmis:canGetProperties>
+  <cmis:canGetRelationships>true</cmis:canGetRelationships>
+  <cmis:canGetObjectParents>true</cmis:canGetObjectParents>
+  <cmis:canMoveObject>true</cmis:canMoveObject>
+  <cmis:canDeleteContentStream>true</cmis:canDeleteContentStream>
+  <cmis:canCheckOut>true</cmis:canCheckOut>
+  <cmis:canCancelCheckOut>true</cmis:canCancelCheckOut>
+  <cmis:canCheckIn>true</cmis:canCheckIn>
+  <cmis:canSetContentStream>true</cmis:canSetContentStream>
+  <cmis:canGetAllVersions>true</cmis:canGetAllVersions>
+  <cmis:canAddObjectToFolder>true</cmis:canAddObjectToFolder>
+  <cmis:canRemoveObjectFromFolder>true</cmis:canRemoveObjectFromFolder>
+  <cmis:canGetContentStream>true</cmis:canGetContentStream>
+  <cmis:canApplyPolicy>true</cmis:canApplyPolicy>
+  <cmis:canGetAppliedPolicies>true</cmis:canGetAppliedPolicies>
+  <cmis:canRemovePolicy>true</cmis:canRemovePolicy>
+  <cmis:canCreateDocument>true</cmis:canCreateDocument>
+</cmis:allowableActions>

Propchange: incubator/chemistry/trunk/chemistry/chemistry-tck-atompub/src/main/resources/org/apache/chemistry/tck/atompub/examples/AllowableActions.xml
------------------------------------------------------------------------------
    svn:eol-style = native

Added: incubator/chemistry/trunk/chemistry/chemistry-tck-atompub/src/main/resources/org/apache/chemistry/tck/atompub/examples/ChangeLog.xml
URL: http://svn.apache.org/viewvc/incubator/chemistry/trunk/chemistry/chemistry-tck-atompub/src/main/resources/org/apache/chemistry/tck/atompub/examples/ChangeLog.xml?rev=805426&view=auto
==============================================================================
--- incubator/chemistry/trunk/chemistry/chemistry-tck-atompub/src/main/resources/org/apache/chemistry/tck/atompub/examples/ChangeLog.xml (added)
+++ incubator/chemistry/trunk/chemistry/chemistry-tck-atompub/src/main/resources/org/apache/chemistry/tck/atompub/examples/ChangeLog.xml Tue Aug 18 14:27:55 2009
@@ -0,0 +1,353 @@
+<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
+<atom:feed xmlns:cmis="http://docs.oasis-open.org/ns/cmis/core/200901" xmlns:cmism="http://docs.oasis-open.org/ns/cmis/messaging/200901" xmlns:atom="http://www.w3.org/2005/Atom"
+  xmlns:app="http://www.w3.org/2007/app" xmlns:cmisra="http://docs.oasis-open.org/ns/cmis/restatom/200901">
+  <atom:title type="text">changelog feed</atom:title>
+  <atom:author>
+    <atom:name>Al Brown</atom:name>
+    <atom:uri>http://www.ibm.com/</atom:uri>
+    <atom:email>albertcbrown@us.ibm.com</atom:email>
+  </atom:author>
+  <atom:updated>2009-07-17T09:13:33.109-07:00</atom:updated>
+  <atom:id>urn:uuid:bbf11f9e-0534-43f4-b5a3-436c7d1cf74a</atom:id>
+  <atom:link type="application/atom+xml;type=feed" rel="self" href="http://cmisexample.oasis-open.org/rep1/folder1feed/3" />
+  <atom:link type="application/atom+xml;type=entry" rel="via" href="http://cmisexample.oasis-open.org/rep1/folder1feed" />
+  <atom:link type="application/atom+xml;type=feed" rel="first" href="http://cmisexample.oasis-open.org/rep1/folder1feed/first" />
+  <atom:link type="application/atom+xml;type=feed" rel="next" href="http://cmisexample.oasis-open.org/rep1/folder1feed/4" />
+  <atom:link type="application/atom+xml;type=feed" rel="previous" href="http://cmisexample.oasis-open.org/rep1/folder1feed/2" />
+  <atom:link type="application/atom+xml;type=feed" rel="last" href="http://cmisexample.oasis-open.org/rep1/folder1feed/last" />
+  <app:collection href="http://cmisexample.oasis-open.org/rep1/folder1feed/3">
+    <atom:title type="text">changelog feed</atom:title>
+    <app:accept>application/atom+xml;type=entry</app:accept>
+    <app:accept>application/atom+xml</app:accept>
+    <app:accept>*/*</app:accept>
+  </app:collection>
+  <atom:entry>
+    <atom:author>
+      <atom:name>Al Brown</atom:name>
+      <atom:uri>http://www.ibm.com/</atom:uri>
+      <atom:email>albertcbrown@us.ibm.com</atom:email>
+    </atom:author>
+    <atom:content src="http://cmisexample.oasis-open.org/rep1/eca5cd9a-a34e-4001-8bcc-99a8d171f08a" />
+    <atom:id>urn:uuid:eca5cd9a-a34e-4001-8bcc-99a8d171f08a</atom:id>
+    <atom:link rel="self" href="http://cmisexample.oasis-open.org/rep1/eca5cd9a-a34e-4001-8bcc-99a8d171f08a" />
+    <atom:link rel="edit" href="http://cmisexample.oasis-open.org/rep1/eca5cd9a-a34e-4001-8bcc-99a8d171f08a" />
+    <atom:link type="application/cmis+xml;type=allowableActions" rel="allowableactions" href="http://cmisexample.oasis-open.org/rep1/eca5cd9a-a34e-4001-8bcc-99a8d171f08a/allowableactions" />
+    <atom:link type="application/atom+xml;type=entry" rel="type" href="http://cmisexample.oasis-open.org/rep1/eca5cd9a-a34e-4001-8bcc-99a8d171f08a/type" />
+    <atom:published>2009-07-17T09:13:33.109-07:00</atom:published>
+    <atom:summary type="html">HTML summary of Entry eca5cd9a-a34e-4001-8bcc-99a8d171f08a</atom:summary>
+    <atom:title type="text">CMIS Example Folder as Customer type</atom:title>
+    <atom:updated>2009-07-17T09:13:33.109-07:00</atom:updated>
+    <atom:link type="application/atom+xml;type=feed" rel="relationships" href="http://cmisexample.oasis-open.org/rep1/eca5cd9a-a34e-4001-8bcc-99a8d171f08a/relationships" />
+    <atom:link type="application/atom+xml;type=entry" rel="up" href="http://cmisexample.oasis-open.org/rep1/eca5cd9a-a34e-4001-8bcc-99a8d171f08a/up" />
+    <atom:link type="application/atom+xml;type=feed" rel="down" href="http://cmisexample.oasis-open.org/rep1/eca5cd9a-a34e-4001-8bcc-99a8d171f08a/children/flat" />
+    <atom:link type="application/cmistree+xml" rel="down" href="http://cmisexample.oasis-open.org/rep1/eca5cd9a-a34e-4001-8bcc-99a8d171f08a/children/tree" />
+    <cmisra:object>
+      <cmis:properties>
+        <cmis:propertyBoolean localname="rep-cmis:IsImmutable" pdid="cmis:IsImmutable">
+          <cmis:value>false</cmis:value>
+        </cmis:propertyBoolean>
+        <cmis:propertyDateTime localname="rep-cmis:CreationDate" pdid="cmis:CreationDate">
+          <cmis:value>2009-07-17T09:13:33.109-07:00</cmis:value>
+        </cmis:propertyDateTime>
+        <cmis:propertyDateTime localname="rep-cmis:LastModificationDate" pdid="cmis:LastModificationDate">
+          <cmis:value>2009-07-17T09:13:33.109-07:00</cmis:value>
+        </cmis:propertyDateTime>
+        <cmis:propertyId localname="rep-cmis:ObjectId" pdid="cmis:ObjectId">
+          <cmis:value>eca5cd9a-a34e-4001-8bcc-99a8d171f08a</cmis:value>
+        </cmis:propertyId>
+        <cmis:propertyId localname="rep-cmis:ObjectTypeId" pdid="cmis:ObjectTypeId">
+          <cmis:value>customer</cmis:value>
+        </cmis:propertyId>
+        <cmis:propertyId localname="rep-cmis:BaseTypeId" pdid="cmis:BaseTypeId">
+          <cmis:value>cmis:folder</cmis:value>
+        </cmis:propertyId>
+        <cmis:propertyString localname="rep-cmis:LastModifiedBy" pdid="cmis:LastModifiedBy">
+          <cmis:value>Al Brown</cmis:value>
+        </cmis:propertyString>
+        <cmis:propertyString localname="rep-cmis:CreatedBy" pdid="cmis:CreatedBy">
+          <cmis:value>Al Brown</cmis:value>
+        </cmis:propertyString>
+        <cmis:propertyId localname="rep-cmis:ParentId" pdid="cmis:ParentId">
+          <cmis:value>eca5cd9a-a34e-4001-8bcc-99a8d171f08aup</cmis:value>
+        </cmis:propertyId>
+      </cmis:properties>
+      <cmis:allowableActions>
+        <cmis:canDeleteObject>true</cmis:canDeleteObject>
+        <cmis:canUpdateProperties>true</cmis:canUpdateProperties>
+        <cmis:canGetProperties>true</cmis:canGetProperties>
+        <cmis:canGetRelationships>true</cmis:canGetRelationships>
+        <cmis:canGetFolderParent>true</cmis:canGetFolderParent>
+        <cmis:canGetDescendants>true</cmis:canGetDescendants>
+        <cmis:canMoveObject>true</cmis:canMoveObject>
+        <cmis:canAddObjectToFolder>true</cmis:canAddObjectToFolder>
+        <cmis:canRemoveObjectFromFolder>true</cmis:canRemoveObjectFromFolder>
+        <cmis:canApplyPolicy>true</cmis:canApplyPolicy>
+        <cmis:canGetAppliedPolicies>true</cmis:canGetAppliedPolicies>
+        <cmis:canRemovePolicy>true</cmis:canRemovePolicy>
+        <cmis:canGetChildren>true</cmis:canGetChildren>
+        <cmis:canCreateFolder>true</cmis:canCreateFolder>
+        <cmis:canDeleteTree>true</cmis:canDeleteTree>
+      </cmis:allowableActions>
+      <cmis:changeEventInfo>
+        <cmis:changeType>updated</cmis:changeType>
+        <cmis:changeTime>2009-07-17T09:13:33.109-07:00</cmis:changeTime>
+      </cmis:changeEventInfo>
+    </cmisra:object>
+  </atom:entry>
+  <atom:entry>
+    <atom:author>
+      <atom:name>Al Brown</atom:name>
+      <atom:uri>http://www.ibm.com/</atom:uri>
+      <atom:email>albertcbrown@us.ibm.com</atom:email>
+    </atom:author>
+    <atom:content src="http://cmisexample.oasis-open.org/rep1/094b6e99-c409-40de-aa61-6af5feb68a7f" />
+    <atom:id>urn:uuid:094b6e99-c409-40de-aa61-6af5feb68a7f</atom:id>
+    <atom:link rel="self" href="http://cmisexample.oasis-open.org/rep1/094b6e99-c409-40de-aa61-6af5feb68a7f" />
+    <atom:link rel="edit" href="http://cmisexample.oasis-open.org/rep1/094b6e99-c409-40de-aa61-6af5feb68a7f" />
+    <atom:link type="application/cmis+xml;type=allowableActions" rel="allowableactions" href="http://cmisexample.oasis-open.org/rep1/094b6e99-c409-40de-aa61-6af5feb68a7f/allowableactions" />
+    <atom:link type="application/atom+xml;type=entry" rel="type" href="http://cmisexample.oasis-open.org/rep1/094b6e99-c409-40de-aa61-6af5feb68a7f/type" />
+    <atom:published>2009-07-17T09:13:33.109-07:00</atom:published>
+    <atom:summary type="html">HTML summary of Entry 094b6e99-c409-40de-aa61-6af5feb68a7f</atom:summary>
+    <atom:title type="text">CMIS Example Folder as Customer type</atom:title>
+    <atom:updated>2009-07-17T09:13:33.109-07:00</atom:updated>
+    <atom:link type="application/atom+xml;type=feed" rel="relationships" href="http://cmisexample.oasis-open.org/rep1/094b6e99-c409-40de-aa61-6af5feb68a7f/relationships" />
+    <atom:link type="application/atom+xml;type=entry" rel="up" href="http://cmisexample.oasis-open.org/rep1/094b6e99-c409-40de-aa61-6af5feb68a7f/up" />
+    <atom:link type="application/atom+xml;type=feed" rel="down" href="http://cmisexample.oasis-open.org/rep1/094b6e99-c409-40de-aa61-6af5feb68a7f/children/flat" />
+    <atom:link type="application/cmistree+xml" rel="down" href="http://cmisexample.oasis-open.org/rep1/094b6e99-c409-40de-aa61-6af5feb68a7f/children/tree" />
+    <cmisra:object>
+      <cmis:properties>
+        <cmis:propertyBoolean localname="rep-cmis:IsImmutable" pdid="cmis:IsImmutable">
+          <cmis:value>false</cmis:value>
+        </cmis:propertyBoolean>
+        <cmis:propertyDateTime localname="rep-cmis:CreationDate" pdid="cmis:CreationDate">
+          <cmis:value>2009-07-17T09:13:33.109-07:00</cmis:value>
+        </cmis:propertyDateTime>
+        <cmis:propertyDateTime localname="rep-cmis:LastModificationDate" pdid="cmis:LastModificationDate">
+          <cmis:value>2009-07-17T09:13:33.125-07:00</cmis:value>
+        </cmis:propertyDateTime>
+        <cmis:propertyId localname="rep-cmis:ObjectId" pdid="cmis:ObjectId">
+          <cmis:value>094b6e99-c409-40de-aa61-6af5feb68a7f</cmis:value>
+        </cmis:propertyId>
+        <cmis:propertyId localname="rep-cmis:ObjectTypeId" pdid="cmis:ObjectTypeId">
+          <cmis:value>customer</cmis:value>
+        </cmis:propertyId>
+        <cmis:propertyId localname="rep-cmis:BaseTypeId" pdid="cmis:BaseTypeId">
+          <cmis:value>cmis:folder</cmis:value>
+        </cmis:propertyId>
+        <cmis:propertyString localname="rep-cmis:LastModifiedBy" pdid="cmis:LastModifiedBy">
+          <cmis:value>Al Brown</cmis:value>
+        </cmis:propertyString>
+        <cmis:propertyString localname="rep-cmis:CreatedBy" pdid="cmis:CreatedBy">
+          <cmis:value>Al Brown</cmis:value>
+        </cmis:propertyString>
+        <cmis:propertyId localname="rep-cmis:ParentId" pdid="cmis:ParentId">
+          <cmis:value>094b6e99-c409-40de-aa61-6af5feb68a7fup</cmis:value>
+        </cmis:propertyId>
+      </cmis:properties>
+      <cmis:allowableActions>
+        <cmis:canDeleteObject>true</cmis:canDeleteObject>
+        <cmis:canUpdateProperties>true</cmis:canUpdateProperties>
+        <cmis:canGetProperties>true</cmis:canGetProperties>
+        <cmis:canGetRelationships>true</cmis:canGetRelationships>
+        <cmis:canGetFolderParent>true</cmis:canGetFolderParent>
+        <cmis:canGetDescendants>true</cmis:canGetDescendants>
+        <cmis:canMoveObject>true</cmis:canMoveObject>
+        <cmis:canAddObjectToFolder>true</cmis:canAddObjectToFolder>
+        <cmis:canRemoveObjectFromFolder>true</cmis:canRemoveObjectFromFolder>
+        <cmis:canApplyPolicy>true</cmis:canApplyPolicy>
+        <cmis:canGetAppliedPolicies>true</cmis:canGetAppliedPolicies>
+        <cmis:canRemovePolicy>true</cmis:canRemovePolicy>
+        <cmis:canGetChildren>true</cmis:canGetChildren>
+        <cmis:canCreateFolder>true</cmis:canCreateFolder>
+        <cmis:canDeleteTree>true</cmis:canDeleteTree>
+      </cmis:allowableActions>
+      <cmis:changeEventInfo>
+        <cmis:changeType>updated</cmis:changeType>
+        <cmis:changeTime>2009-07-17T09:13:33.125-07:00</cmis:changeTime>
+      </cmis:changeEventInfo>
+    </cmisra:object>
+  </atom:entry>
+  <atom:entry>
+    <atom:author>
+      <atom:name>Al Brown</atom:name>
+      <atom:uri>http://www.ibm.com/</atom:uri>
+      <atom:email>albertcbrown@us.ibm.com</atom:email>
+    </atom:author>
+    <atom:content src="http://cmisexample.oasis-open.org/rep1/13792086-4a35-4818-81a3-0ee63dbe023e" />
+    <atom:id>urn:uuid:13792086-4a35-4818-81a3-0ee63dbe023e</atom:id>
+    <atom:link rel="self" href="http://cmisexample.oasis-open.org/rep1/13792086-4a35-4818-81a3-0ee63dbe023e" />
+    <atom:link rel="edit" href="http://cmisexample.oasis-open.org/rep1/13792086-4a35-4818-81a3-0ee63dbe023e" />
+    <atom:link type="application/cmis+xml;type=allowableActions" rel="allowableactions" href="http://cmisexample.oasis-open.org/rep1/13792086-4a35-4818-81a3-0ee63dbe023e/allowableactions" />
+    <atom:link type="application/atom+xml;type=entry" rel="type" href="http://cmisexample.oasis-open.org/rep1/13792086-4a35-4818-81a3-0ee63dbe023e/type" />
+    <atom:published>2009-07-17T09:13:33.125-07:00</atom:published>
+    <atom:summary type="html">HTML summary of Entry 13792086-4a35-4818-81a3-0ee63dbe023e</atom:summary>
+    <atom:title type="text">CMIS Example Folder as Invoice type</atom:title>
+    <atom:updated>2009-07-17T09:13:33.125-07:00</atom:updated>
+    <atom:link type="application/atom+xml;type=feed" rel="relationships" href="http://cmisexample.oasis-open.org/rep1/13792086-4a35-4818-81a3-0ee63dbe023e/relationships" />
+    <atom:link type="application/atom+xml;type=entry" rel="up" href="http://cmisexample.oasis-open.org/rep1/13792086-4a35-4818-81a3-0ee63dbe023e/up" />
+    <atom:link type="application/atom+xml;type=feed" rel="down" href="http://cmisexample.oasis-open.org/rep1/13792086-4a35-4818-81a3-0ee63dbe023e/children/flat" />
+    <atom:link type="application/cmistree+xml" rel="down" href="http://cmisexample.oasis-open.org/rep1/13792086-4a35-4818-81a3-0ee63dbe023e/children/tree" />
+    <cmisra:object>
+      <cmis:properties>
+        <cmis:propertyBoolean localname="rep-cmis:IsImmutable" pdid="cmis:IsImmutable">
+          <cmis:value>false</cmis:value>
+        </cmis:propertyBoolean>
+        <cmis:propertyDateTime localname="rep-cmis:CreationDate" pdid="cmis:CreationDate">
+          <cmis:value>2009-07-17T09:13:33.125-07:00</cmis:value>
+        </cmis:propertyDateTime>
+        <cmis:propertyDateTime localname="rep-cmis:LastModificationDate" pdid="cmis:LastModificationDate">
+          <cmis:value>2009-07-17T09:13:33.125-07:00</cmis:value>
+        </cmis:propertyDateTime>
+        <cmis:propertyId localname="rep-cmis:ObjectId" pdid="cmis:ObjectId">
+          <cmis:value>13792086-4a35-4818-81a3-0ee63dbe023e</cmis:value>
+        </cmis:propertyId>
+        <cmis:propertyId localname="rep-cmis:ObjectTypeId" pdid="cmis:ObjectTypeId">
+          <cmis:value>invoice</cmis:value>
+        </cmis:propertyId>
+        <cmis:propertyId localname="rep-cmis:BaseTypeId" pdid="cmis:BaseTypeId">
+          <cmis:value>cmis:folder</cmis:value>
+        </cmis:propertyId>
+        <cmis:propertyString localname="rep-cmis:LastModifiedBy" pdid="cmis:LastModifiedBy">
+          <cmis:value>Al Brown</cmis:value>
+        </cmis:propertyString>
+        <cmis:propertyString localname="rep-cmis:CreatedBy" pdid="cmis:CreatedBy">
+          <cmis:value>Al Brown</cmis:value>
+        </cmis:propertyString>
+        <cmis:propertyId localname="rep-cmis:ParentId" pdid="cmis:ParentId">
+          <cmis:value>13792086-4a35-4818-81a3-0ee63dbe023eup</cmis:value>
+        </cmis:propertyId>
+      </cmis:properties>
+      <cmis:allowableActions>
+        <cmis:canDeleteObject>true</cmis:canDeleteObject>
+        <cmis:canUpdateProperties>true</cmis:canUpdateProperties>
+        <cmis:canGetProperties>true</cmis:canGetProperties>
+        <cmis:canGetRelationships>true</cmis:canGetRelationships>
+        <cmis:canGetFolderParent>true</cmis:canGetFolderParent>
+        <cmis:canGetDescendants>true</cmis:canGetDescendants>
+        <cmis:canMoveObject>true</cmis:canMoveObject>
+        <cmis:canAddObjectToFolder>true</cmis:canAddObjectToFolder>
+        <cmis:canRemoveObjectFromFolder>true</cmis:canRemoveObjectFromFolder>
+        <cmis:canApplyPolicy>true</cmis:canApplyPolicy>
+        <cmis:canGetAppliedPolicies>true</cmis:canGetAppliedPolicies>
+        <cmis:canRemovePolicy>true</cmis:canRemovePolicy>
+        <cmis:canGetChildren>true</cmis:canGetChildren>
+        <cmis:canCreateFolder>true</cmis:canCreateFolder>
+        <cmis:canDeleteTree>true</cmis:canDeleteTree>
+      </cmis:allowableActions>
+      <cmis:changeEventInfo>
+        <cmis:changeType>updated</cmis:changeType>
+        <cmis:changeTime>2009-07-17T09:13:33.125-07:00</cmis:changeTime>
+      </cmis:changeEventInfo>
+    </cmisra:object>
+  </atom:entry>
+  <atom:entry>
+    <atom:author>
+      <atom:name>Al Brown</atom:name>
+      <atom:uri>http://www.ibm.com/</atom:uri>
+      <atom:email>albertcbrown@us.ibm.com</atom:email>
+    </atom:author>
+    <atom:content src="http://cmisexample.oasis-open.org/rep1/0c35d523-c8fc-42bb-b08d-ba57452c63c0" />
+    <atom:id>urn:uuid:0c35d523-c8fc-42bb-b08d-ba57452c63c0</atom:id>
+    <atom:link rel="self" href="http://cmisexample.oasis-open.org/rep1/0c35d523-c8fc-42bb-b08d-ba57452c63c0" />
+    <atom:link rel="edit" href="http://cmisexample.oasis-open.org/rep1/0c35d523-c8fc-42bb-b08d-ba57452c63c0" />
+    <atom:link type="application/cmis+xml;type=allowableActions" rel="allowableactions" href="http://cmisexample.oasis-open.org/rep1/0c35d523-c8fc-42bb-b08d-ba57452c63c0/allowableactions" />
+    <atom:link type="application/atom+xml;type=entry" rel="type" href="http://cmisexample.oasis-open.org/rep1/0c35d523-c8fc-42bb-b08d-ba57452c63c0/type" />
+    <atom:published>2009-07-17T09:13:33.125-07:00</atom:published>
+    <atom:summary type="html">HTML summary of Entry 0c35d523-c8fc-42bb-b08d-ba57452c63c0</atom:summary>
+    <atom:title type="text">CMIS Example Folder as Invoice type</atom:title>
+    <atom:updated>2009-07-17T09:13:33.125-07:00</atom:updated>
+    <atom:link rel="edit-media" href="http://cmisexample.oasis-open.org/rep1/0c35d523-c8fc-42bb-b08d-ba57452c63c0/edit-media" />
+    <atom:link rel="alternate" href="http://cmisexample.oasis-open.org/rep1/0c35d523-c8fc-42bb-b08d-ba57452c63c0/alternate" />
+    <atom:link type="application/atom+xml;type=feed" rel="parents" href="http://cmisexample.oasis-open.org/rep1/0c35d523-c8fc-42bb-b08d-ba57452c63c0/parents" />
+    <atom:link type="application/atom+xml;type=feed" rel="allversions" href="http://cmisexample.oasis-open.org/rep1/0c35d523-c8fc-42bb-b08d-ba57452c63c0/allversions" />
+    <atom:link type="application/atom+xml;type=entry" rel="latestversion" href="http://cmisexample.oasis-open.org/rep1/0c35d523-c8fc-42bb-b08d-ba57452c63c0/latestversions" />
+    <atom:link length="4123" type="text/plain" rel="stream" href="http://cmisexample.oasis-open.org/rep1/0c35d523-c8fc-42bb-b08d-ba57452c63c0media" />
+    <atom:link type="application/atom+xml;type=feed" rel="relationships" href="http://cmisexample.oasis-open.org/rep1/0c35d523-c8fc-42bb-b08d-ba57452c63c0/relationships" />
+    <cmisra:object>
+      <cmis:properties>
+        <cmis:propertyBoolean localname="rep-cmis:IsImmutable" pdid="cmis:IsImmutable">
+          <cmis:value>false</cmis:value>
+        </cmis:propertyBoolean>
+        <cmis:propertyDateTime localname="rep-cmis:CreationDate" pdid="cmis:CreationDate">
+          <cmis:value>2009-07-17T09:13:33.140-07:00</cmis:value>
+        </cmis:propertyDateTime>
+        <cmis:propertyDateTime localname="rep-cmis:LastModificationDate" pdid="cmis:LastModificationDate">
+          <cmis:value>2009-07-17T09:13:33.140-07:00</cmis:value>
+        </cmis:propertyDateTime>
+        <cmis:propertyId localname="rep-cmis:ObjectId" pdid="cmis:ObjectId">
+          <cmis:value>0c35d523-c8fc-42bb-b08d-ba57452c63c0</cmis:value>
+        </cmis:propertyId>
+        <cmis:propertyId localname="rep-cmis:ObjectTypeId" pdid="cmis:ObjectTypeId">
+          <cmis:value>invoice</cmis:value>
+        </cmis:propertyId>
+        <cmis:propertyId localname="rep-cmis:BaseTypeId" pdid="cmis:BaseTypeId">
+          <cmis:value>cmis:document</cmis:value>
+        </cmis:propertyId>
+        <cmis:propertyString localname="rep-cmis:LastModifiedBy" pdid="cmis:LastModifiedBy">
+          <cmis:value>Al Brown</cmis:value>
+        </cmis:propertyString>
+        <cmis:propertyString localname="rep-cmis:CreatedBy" pdid="cmis:CreatedBy">
+          <cmis:value>Al Brown</cmis:value>
+        </cmis:propertyString>
+        <cmis:propertyBoolean localname="rep-cmis:IsLatestVersion" pdid="cmis:IsLatestVersion">
+          <cmis:value>true</cmis:value>
+        </cmis:propertyBoolean>
+        <cmis:propertyBoolean localname="rep-cmis:IsVersionSeriesCheckedOut" pdid="cmis:IsVersionSeriesCheckedOut">
+          <cmis:value>false</cmis:value>
+        </cmis:propertyBoolean>
+        <cmis:propertyBoolean localname="rep-cmis:IsMajorVersion" pdid="cmis:IsMajorVersion">
+          <cmis:value>false</cmis:value>
+        </cmis:propertyBoolean>
+        <cmis:propertyBoolean localname="rep-cmis:IsLatestMajorVersion" pdid="cmis:IsLatestMajorVersion">
+          <cmis:value>false</cmis:value>
+        </cmis:propertyBoolean>
+        <cmis:propertyString localname="rep-cmis:CheckinComment" pdid="cmis:CheckinComment">
+          <cmis:value>Checkin comment</cmis:value>
+        </cmis:propertyString>
+        <cmis:propertyString localname="rep-cmis:VersionLabel" pdid="cmis:VersionLabel">
+          <cmis:value>0.1</cmis:value>
+        </cmis:propertyString>
+        <cmis:propertyString localname="rep-cmis:ContentStreamMimeType" pdid="cmis:ContentStreamMimeType">
+          <cmis:value>text/plain</cmis:value>
+        </cmis:propertyString>
+        <cmis:propertyString localname="rep-cmis:ContentStreamFileName" pdid="cmis:ContentStreamFileName">
+          <cmis:value>text.txt</cmis:value>
+        </cmis:propertyString>
+        <cmis:propertyInteger localname="rep-cmis:ContentStreamLength" pdid="cmis:ContentStreamLength">
+          <cmis:value>4234</cmis:value>
+        </cmis:propertyInteger>
+        <cmis:propertyString displayname="Keywords for Document" localname="keywords" pdid="keywords">
+          <cmis:value>document</cmis:value>
+          <cmis:value>example</cmis:value>
+          <cmis:value>sample</cmis:value>
+          <cmis:value>cmis</cmis:value>
+        </cmis:propertyString>
+      </cmis:properties>
+      <cmis:allowableActions>
+        <cmis:canDeleteObject>true</cmis:canDeleteObject>
+        <cmis:canUpdateProperties>true</cmis:canUpdateProperties>
+        <cmis:canGetProperties>true</cmis:canGetProperties>
+        <cmis:canGetRelationships>true</cmis:canGetRelationships>
+        <cmis:canGetObjectParents>true</cmis:canGetObjectParents>
+        <cmis:canMoveObject>true</cmis:canMoveObject>
+        <cmis:canDeleteContentStream>true</cmis:canDeleteContentStream>
+        <cmis:canCheckOut>true</cmis:canCheckOut>
+        <cmis:canCancelCheckOut>true</cmis:canCancelCheckOut>
+        <cmis:canCheckIn>true</cmis:canCheckIn>
+        <cmis:canSetContentStream>true</cmis:canSetContentStream>
+        <cmis:canGetAllVersions>true</cmis:canGetAllVersions>
+        <cmis:canAddObjectToFolder>true</cmis:canAddObjectToFolder>
+        <cmis:canRemoveObjectFromFolder>true</cmis:canRemoveObjectFromFolder>
+        <cmis:canGetContentStream>true</cmis:canGetContentStream>
+        <cmis:canApplyPolicy>true</cmis:canApplyPolicy>
+        <cmis:canGetAppliedPolicies>true</cmis:canGetAppliedPolicies>
+        <cmis:canRemovePolicy>true</cmis:canRemovePolicy>
+        <cmis:canCreateDocument>true</cmis:canCreateDocument>
+      </cmis:allowableActions>
+      <cmis:changeEventInfo>
+        <cmis:changeType>updated</cmis:changeType>
+        <cmis:changeTime>2009-07-17T09:13:33.140-07:00</cmis:changeTime>
+      </cmis:changeEventInfo>
+    </cmisra:object>
+  </atom:entry>
+</atom:feed>

Propchange: incubator/chemistry/trunk/chemistry/chemistry-tck-atompub/src/main/resources/org/apache/chemistry/tck/atompub/examples/ChangeLog.xml
------------------------------------------------------------------------------
    svn:eol-style = native

Added: incubator/chemistry/trunk/chemistry/chemistry-tck-atompub/src/main/resources/org/apache/chemistry/tck/atompub/examples/DocumentEntry.xml
URL: http://svn.apache.org/viewvc/incubator/chemistry/trunk/chemistry/chemistry-tck-atompub/src/main/resources/org/apache/chemistry/tck/atompub/examples/DocumentEntry.xml?rev=805426&view=auto
==============================================================================
--- incubator/chemistry/trunk/chemistry/chemistry-tck-atompub/src/main/resources/org/apache/chemistry/tck/atompub/examples/DocumentEntry.xml (added)
+++ incubator/chemistry/trunk/chemistry/chemistry-tck-atompub/src/main/resources/org/apache/chemistry/tck/atompub/examples/DocumentEntry.xml Tue Aug 18 14:27:55 2009
@@ -0,0 +1,108 @@
+<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
+<atom:entry xmlns:cmis="http://docs.oasis-open.org/ns/cmis/core/200901" xmlns:cmism="http://docs.oasis-open.org/ns/cmis/messaging/200901" xmlns:atom="http://www.w3.org/2005/Atom"
+  xmlns:app="http://www.w3.org/2007/app" xmlns:cmisra="http://docs.oasis-open.org/ns/cmis/restatom/200901">
+  <atom:author>
+    <atom:name>Al Brown</atom:name>
+    <atom:uri>http://www.ibm.com/</atom:uri>
+    <atom:email>albertcbrown@us.ibm.com</atom:email>
+  </atom:author>
+  <atom:content src="http://cmisexample.oasis-open.org/rep1/d6ea99e2-ef5e-4bbb-97fa-feeae20d0f94" />
+  <atom:id>urn:uuid:d6ea99e2-ef5e-4bbb-97fa-feeae20d0f94</atom:id>
+  <atom:link rel="self" href="http://cmisexample.oasis-open.org/rep1/d6ea99e2-ef5e-4bbb-97fa-feeae20d0f94" />
+  <atom:link rel="edit" href="http://cmisexample.oasis-open.org/rep1/d6ea99e2-ef5e-4bbb-97fa-feeae20d0f94" />
+  <atom:link type="application/cmis+xml;type=allowableActions" rel="allowableactions" href="http://cmisexample.oasis-open.org/rep1/d6ea99e2-ef5e-4bbb-97fa-feeae20d0f94/allowableactions" />
+  <atom:link type="application/atom+xml;type=entry" rel="type" href="http://cmisexample.oasis-open.org/rep1/d6ea99e2-ef5e-4bbb-97fa-feeae20d0f94/type" />
+  <atom:published>2009-07-17T09:13:32.890-07:00</atom:published>
+  <atom:summary type="html">HTML summary of Entry d6ea99e2-ef5e-4bbb-97fa-feeae20d0f94</atom:summary>
+  <atom:title type="text">CMIS Example Document</atom:title>
+  <atom:updated>2009-07-17T09:13:32.906-07:00</atom:updated>
+  <atom:link rel="edit-media" href="http://cmisexample.oasis-open.org/rep1/d6ea99e2-ef5e-4bbb-97fa-feeae20d0f94/edit-media" />
+  <atom:link rel="alternate" href="http://cmisexample.oasis-open.org/rep1/d6ea99e2-ef5e-4bbb-97fa-feeae20d0f94/alternate" />
+  <atom:link type="application/atom+xml;type=feed" rel="parents" href="http://cmisexample.oasis-open.org/rep1/d6ea99e2-ef5e-4bbb-97fa-feeae20d0f94/parents" />
+  <atom:link type="application/atom+xml;type=feed" rel="allversions" href="http://cmisexample.oasis-open.org/rep1/d6ea99e2-ef5e-4bbb-97fa-feeae20d0f94/allversions" />
+  <atom:link type="application/atom+xml;type=entry" rel="latestversion" href="http://cmisexample.oasis-open.org/rep1/d6ea99e2-ef5e-4bbb-97fa-feeae20d0f94/latestversions" />
+  <atom:link length="4123" type="text/plain" rel="stream" href="http://cmisexample.oasis-open.org/rep1/d6ea99e2-ef5e-4bbb-97fa-feeae20d0f94media" />
+  <atom:link type="application/atom+xml;type=feed" rel="relationships" href="http://cmisexample.oasis-open.org/rep1/d6ea99e2-ef5e-4bbb-97fa-feeae20d0f94/relationships" />
+  <cmisra:object>
+    <cmis:properties>
+      <cmis:propertyBoolean localname="rep-cmis:IsImmutable" pdid="cmis:IsImmutable">
+        <cmis:value>false</cmis:value>
+      </cmis:propertyBoolean>
+      <cmis:propertyDateTime localname="rep-cmis:CreationDate" pdid="cmis:CreationDate">
+        <cmis:value>2009-07-17T09:13:32.906-07:00</cmis:value>
+      </cmis:propertyDateTime>
+      <cmis:propertyDateTime localname="rep-cmis:LastModificationDate" pdid="cmis:LastModificationDate">
+        <cmis:value>2009-07-17T09:13:32.906-07:00</cmis:value>
+      </cmis:propertyDateTime>
+      <cmis:propertyId localname="rep-cmis:ObjectId" pdid="cmis:ObjectId">
+        <cmis:value>d6ea99e2-ef5e-4bbb-97fa-feeae20d0f94</cmis:value>
+      </cmis:propertyId>
+      <cmis:propertyId localname="rep-cmis:ObjectTypeId" pdid="cmis:ObjectTypeId">
+        <cmis:value>invoice</cmis:value>
+      </cmis:propertyId>
+      <cmis:propertyId localname="rep-cmis:BaseTypeId" pdid="cmis:BaseTypeId">
+        <cmis:value>cmis:document</cmis:value>
+      </cmis:propertyId>
+      <cmis:propertyString localname="rep-cmis:LastModifiedBy" pdid="cmis:LastModifiedBy">
+        <cmis:value>Al Brown</cmis:value>
+      </cmis:propertyString>
+      <cmis:propertyString localname="rep-cmis:CreatedBy" pdid="cmis:CreatedBy">
+        <cmis:value>Al Brown</cmis:value>
+      </cmis:propertyString>
+      <cmis:propertyBoolean localname="rep-cmis:IsLatestVersion" pdid="cmis:IsLatestVersion">
+        <cmis:value>true</cmis:value>
+      </cmis:propertyBoolean>
+      <cmis:propertyBoolean localname="rep-cmis:IsVersionSeriesCheckedOut" pdid="cmis:IsVersionSeriesCheckedOut">
+        <cmis:value>false</cmis:value>
+      </cmis:propertyBoolean>
+      <cmis:propertyBoolean localname="rep-cmis:IsMajorVersion" pdid="cmis:IsMajorVersion">
+        <cmis:value>false</cmis:value>
+      </cmis:propertyBoolean>
+      <cmis:propertyBoolean localname="rep-cmis:IsLatestMajorVersion" pdid="cmis:IsLatestMajorVersion">
+        <cmis:value>false</cmis:value>
+      </cmis:propertyBoolean>
+      <cmis:propertyString localname="rep-cmis:CheckinComment" pdid="cmis:CheckinComment">
+        <cmis:value>Checkin comment</cmis:value>
+      </cmis:propertyString>
+      <cmis:propertyString localname="rep-cmis:VersionLabel" pdid="cmis:VersionLabel">
+        <cmis:value>0.1</cmis:value>
+      </cmis:propertyString>
+      <cmis:propertyString localname="rep-cmis:ContentStreamMimeType" pdid="cmis:ContentStreamMimeType">
+        <cmis:value>text/plain</cmis:value>
+      </cmis:propertyString>
+      <cmis:propertyString localname="rep-cmis:ContentStreamFileName" pdid="cmis:ContentStreamFileName">
+        <cmis:value>text.txt</cmis:value>
+      </cmis:propertyString>
+      <cmis:propertyInteger localname="rep-cmis:ContentStreamLength" pdid="cmis:ContentStreamLength">
+        <cmis:value>4234</cmis:value>
+      </cmis:propertyInteger>
+      <cmis:propertyString displayname="Keywords for Document" localname="keywords" pdid="keywords">
+        <cmis:value>document</cmis:value>
+        <cmis:value>example</cmis:value>
+        <cmis:value>sample</cmis:value>
+        <cmis:value>cmis</cmis:value>
+      </cmis:propertyString>
+    </cmis:properties>
+    <cmis:allowableActions>
+      <cmis:canDeleteObject>true</cmis:canDeleteObject>
+      <cmis:canUpdateProperties>true</cmis:canUpdateProperties>
+      <cmis:canGetProperties>true</cmis:canGetProperties>
+      <cmis:canGetRelationships>true</cmis:canGetRelationships>
+      <cmis:canGetObjectParents>true</cmis:canGetObjectParents>
+      <cmis:canMoveObject>true</cmis:canMoveObject>
+      <cmis:canDeleteContentStream>true</cmis:canDeleteContentStream>
+      <cmis:canCheckOut>true</cmis:canCheckOut>
+      <cmis:canCancelCheckOut>true</cmis:canCancelCheckOut>
+      <cmis:canCheckIn>true</cmis:canCheckIn>
+      <cmis:canSetContentStream>true</cmis:canSetContentStream>
+      <cmis:canGetAllVersions>true</cmis:canGetAllVersions>
+      <cmis:canAddObjectToFolder>true</cmis:canAddObjectToFolder>
+      <cmis:canRemoveObjectFromFolder>true</cmis:canRemoveObjectFromFolder>
+      <cmis:canGetContentStream>true</cmis:canGetContentStream>
+      <cmis:canApplyPolicy>true</cmis:canApplyPolicy>
+      <cmis:canGetAppliedPolicies>true</cmis:canGetAppliedPolicies>
+      <cmis:canRemovePolicy>true</cmis:canRemovePolicy>
+      <cmis:canCreateDocument>true</cmis:canCreateDocument>
+    </cmis:allowableActions>
+  </cmisra:object>
+</atom:entry>

Propchange: incubator/chemistry/trunk/chemistry/chemistry-tck-atompub/src/main/resources/org/apache/chemistry/tck/atompub/examples/DocumentEntry.xml
------------------------------------------------------------------------------
    svn:eol-style = native

Added: incubator/chemistry/trunk/chemistry/chemistry-tck-atompub/src/main/resources/org/apache/chemistry/tck/atompub/examples/DocumentEntryPWC.xml
URL: http://svn.apache.org/viewvc/incubator/chemistry/trunk/chemistry/chemistry-tck-atompub/src/main/resources/org/apache/chemistry/tck/atompub/examples/DocumentEntryPWC.xml?rev=805426&view=auto
==============================================================================
--- incubator/chemistry/trunk/chemistry/chemistry-tck-atompub/src/main/resources/org/apache/chemistry/tck/atompub/examples/DocumentEntryPWC.xml (added)
+++ incubator/chemistry/trunk/chemistry/chemistry-tck-atompub/src/main/resources/org/apache/chemistry/tck/atompub/examples/DocumentEntryPWC.xml Tue Aug 18 14:27:55 2009
@@ -0,0 +1,115 @@
+<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
+<atom:entry xmlns:cmis="http://docs.oasis-open.org/ns/cmis/core/200901" xmlns:cmism="http://docs.oasis-open.org/ns/cmis/messaging/200901" xmlns:atom="http://www.w3.org/2005/Atom"
+  xmlns:app="http://www.w3.org/2007/app" xmlns:cmisra="http://docs.oasis-open.org/ns/cmis/restatom/200901">
+  <atom:author>
+    <atom:name>Al Brown</atom:name>
+    <atom:uri>http://www.ibm.com/</atom:uri>
+    <atom:email>albertcbrown@us.ibm.com</atom:email>
+  </atom:author>
+  <atom:content src="http://cmisexample.oasis-open.org/rep1/24f3aad1-485c-468e-a9a7-aff29fdbeafb" />
+  <atom:id>urn:uuid:24f3aad1-485c-468e-a9a7-aff29fdbeafb</atom:id>
+  <atom:link rel="self" href="http://cmisexample.oasis-open.org/rep1/24f3aad1-485c-468e-a9a7-aff29fdbeafb" />
+  <atom:link rel="edit" href="http://cmisexample.oasis-open.org/rep1/24f3aad1-485c-468e-a9a7-aff29fdbeafb" />
+  <atom:link type="application/cmis+xml;type=allowableActions" rel="allowableactions" href="http://cmisexample.oasis-open.org/rep1/24f3aad1-485c-468e-a9a7-aff29fdbeafb/allowableactions" />
+  <atom:link type="application/atom+xml;type=entry" rel="type" href="http://cmisexample.oasis-open.org/rep1/24f3aad1-485c-468e-a9a7-aff29fdbeafb/type" />
+  <atom:published>2009-07-17T09:13:32.921-07:00</atom:published>
+  <atom:summary type="html">HTML summary of Entry 24f3aad1-485c-468e-a9a7-aff29fdbeafb</atom:summary>
+  <atom:title type="text">CMIS Example Document for PWC</atom:title>
+  <atom:updated>2009-07-17T09:13:32.937-07:00</atom:updated>
+  <atom:link rel="edit-media" href="http://cmisexample.oasis-open.org/rep1/24f3aad1-485c-468e-a9a7-aff29fdbeafb/edit-media" />
+  <atom:link rel="alternate" href="http://cmisexample.oasis-open.org/rep1/24f3aad1-485c-468e-a9a7-aff29fdbeafb/alternate" />
+  <atom:link type="application/atom+xml;type=feed" rel="parents" href="http://cmisexample.oasis-open.org/rep1/24f3aad1-485c-468e-a9a7-aff29fdbeafb/parents" />
+  <atom:link type="application/atom+xml;type=feed" rel="allversions" href="http://cmisexample.oasis-open.org/rep1/24f3aad1-485c-468e-a9a7-aff29fdbeafb/allversions" />
+  <atom:link type="application/atom+xml;type=entry" rel="latestversion" href="http://cmisexample.oasis-open.org/rep1/24f3aad1-485c-468e-a9a7-aff29fdbeafb/latestversions" />
+  <atom:link length="4123" type="text/plain" rel="stream" href="http://cmisexample.oasis-open.org/rep1/24f3aad1-485c-468e-a9a7-aff29fdbeafbmedia" />
+  <atom:link type="application/atom+xml;type=feed" rel="relationships" href="http://cmisexample.oasis-open.org/rep1/24f3aad1-485c-468e-a9a7-aff29fdbeafb/relationships" />
+  <atom:link type="application/atom+xml;type=feed" rel="pwc" href="http://cmisexample.oasis-open.org/rep1/24f3aad1-485c-468e-a9a7-aff29fdbeafb/pwc" />
+  <cmisra:object>
+    <cmis:properties>
+      <cmis:propertyBoolean localname="rep-cmis:IsImmutable" pdid="cmis:IsImmutable">
+        <cmis:value>false</cmis:value>
+      </cmis:propertyBoolean>
+      <cmis:propertyDateTime localname="rep-cmis:CreationDate" pdid="cmis:CreationDate">
+        <cmis:value>2009-07-17T09:13:32.937-07:00</cmis:value>
+      </cmis:propertyDateTime>
+      <cmis:propertyDateTime localname="rep-cmis:LastModificationDate" pdid="cmis:LastModificationDate">
+        <cmis:value>2009-07-17T09:13:32.937-07:00</cmis:value>
+      </cmis:propertyDateTime>
+      <cmis:propertyId localname="rep-cmis:ObjectId" pdid="cmis:ObjectId">
+        <cmis:value>24f3aad1-485c-468e-a9a7-aff29fdbeafb</cmis:value>
+      </cmis:propertyId>
+      <cmis:propertyId localname="rep-cmis:ObjectTypeId" pdid="cmis:ObjectTypeId">
+        <cmis:value>invoice</cmis:value>
+      </cmis:propertyId>
+      <cmis:propertyId localname="rep-cmis:BaseTypeId" pdid="cmis:BaseTypeId">
+        <cmis:value>cmis:document</cmis:value>
+      </cmis:propertyId>
+      <cmis:propertyString localname="rep-cmis:LastModifiedBy" pdid="cmis:LastModifiedBy">
+        <cmis:value>Al Brown</cmis:value>
+      </cmis:propertyString>
+      <cmis:propertyString localname="rep-cmis:CreatedBy" pdid="cmis:CreatedBy">
+        <cmis:value>Al Brown</cmis:value>
+      </cmis:propertyString>
+      <cmis:propertyBoolean localname="rep-cmis:IsLatestVersion" pdid="cmis:IsLatestVersion">
+        <cmis:value>true</cmis:value>
+      </cmis:propertyBoolean>
+      <cmis:propertyBoolean localname="rep-cmis:IsVersionSeriesCheckedOut" pdid="cmis:IsVersionSeriesCheckedOut">
+        <cmis:value>true</cmis:value>
+      </cmis:propertyBoolean>
+      <cmis:propertyBoolean localname="rep-cmis:IsMajorVersion" pdid="cmis:IsMajorVersion">
+        <cmis:value>false</cmis:value>
+      </cmis:propertyBoolean>
+      <cmis:propertyBoolean localname="rep-cmis:IsLatestMajorVersion" pdid="cmis:IsLatestMajorVersion">
+        <cmis:value>false</cmis:value>
+      </cmis:propertyBoolean>
+      <cmis:propertyString localname="rep-cmis:CheckinComment" pdid="cmis:CheckinComment">
+        <cmis:value>Checkin comment</cmis:value>
+      </cmis:propertyString>
+      <cmis:propertyString localname="rep-cmis:VersionLabel" pdid="cmis:VersionLabel">
+        <cmis:value>0.1</cmis:value>
+      </cmis:propertyString>
+      <cmis:propertyString localname="rep-cmis:ContentStreamMimeType" pdid="cmis:ContentStreamMimeType">
+        <cmis:value>text/plain</cmis:value>
+      </cmis:propertyString>
+      <cmis:propertyString localname="rep-cmis:ContentStreamFileName" pdid="cmis:ContentStreamFileName">
+        <cmis:value>text.txt</cmis:value>
+      </cmis:propertyString>
+      <cmis:propertyInteger localname="rep-cmis:ContentStreamLength" pdid="cmis:ContentStreamLength">
+        <cmis:value>4234</cmis:value>
+      </cmis:propertyInteger>
+      <cmis:propertyString displayname="Keywords for Document" localname="keywords" pdid="keywords">
+        <cmis:value>document</cmis:value>
+        <cmis:value>example</cmis:value>
+        <cmis:value>sample</cmis:value>
+        <cmis:value>cmis</cmis:value>
+      </cmis:propertyString>
+      <cmis:propertyId localname="rep-cmis:VersionSeriesCheckedOutId" pdid="cmis:VersionSeriesCheckedOutId">
+        <cmis:value>vs-24f3aad1-485c-468e-a9a7-aff29fdbeafb</cmis:value>
+      </cmis:propertyId>
+      <cmis:propertyString localname="rep-cmis:VersionSeriesCheckedOutBy" pdid="cmis:VersionSeriesCheckedOutBy">
+        <cmis:value>Al Brown</cmis:value>
+      </cmis:propertyString>
+    </cmis:properties>
+    <cmis:allowableActions>
+      <cmis:canDeleteObject>true</cmis:canDeleteObject>
+      <cmis:canUpdateProperties>true</cmis:canUpdateProperties>
+      <cmis:canGetProperties>true</cmis:canGetProperties>
+      <cmis:canGetRelationships>true</cmis:canGetRelationships>
+      <cmis:canGetObjectParents>true</cmis:canGetObjectParents>
+      <cmis:canMoveObject>true</cmis:canMoveObject>
+      <cmis:canDeleteContentStream>true</cmis:canDeleteContentStream>
+      <cmis:canCheckOut>true</cmis:canCheckOut>
+      <cmis:canCancelCheckOut>true</cmis:canCancelCheckOut>
+      <cmis:canCheckIn>true</cmis:canCheckIn>
+      <cmis:canSetContentStream>true</cmis:canSetContentStream>
+      <cmis:canGetAllVersions>true</cmis:canGetAllVersions>
+      <cmis:canAddObjectToFolder>true</cmis:canAddObjectToFolder>
+      <cmis:canRemoveObjectFromFolder>true</cmis:canRemoveObjectFromFolder>
+      <cmis:canGetContentStream>true</cmis:canGetContentStream>
+      <cmis:canApplyPolicy>true</cmis:canApplyPolicy>
+      <cmis:canGetAppliedPolicies>true</cmis:canGetAppliedPolicies>
+      <cmis:canRemovePolicy>true</cmis:canRemovePolicy>
+      <cmis:canCreateDocument>true</cmis:canCreateDocument>
+    </cmis:allowableActions>
+  </cmisra:object>
+</atom:entry>

Propchange: incubator/chemistry/trunk/chemistry/chemistry-tck-atompub/src/main/resources/org/apache/chemistry/tck/atompub/examples/DocumentEntryPWC.xml
------------------------------------------------------------------------------
    svn:eol-style = native

Added: incubator/chemistry/trunk/chemistry/chemistry-tck-atompub/src/main/resources/org/apache/chemistry/tck/atompub/examples/DocumentEntryWithChanges.xml
URL: http://svn.apache.org/viewvc/incubator/chemistry/trunk/chemistry/chemistry-tck-atompub/src/main/resources/org/apache/chemistry/tck/atompub/examples/DocumentEntryWithChanges.xml?rev=805426&view=auto
==============================================================================
--- incubator/chemistry/trunk/chemistry/chemistry-tck-atompub/src/main/resources/org/apache/chemistry/tck/atompub/examples/DocumentEntryWithChanges.xml (added)
+++ incubator/chemistry/trunk/chemistry/chemistry-tck-atompub/src/main/resources/org/apache/chemistry/tck/atompub/examples/DocumentEntryWithChanges.xml Tue Aug 18 14:27:55 2009
@@ -0,0 +1,112 @@
+<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
+<atom:entry xmlns:cmis="http://docs.oasis-open.org/ns/cmis/core/200901" xmlns:cmism="http://docs.oasis-open.org/ns/cmis/messaging/200901" xmlns:atom="http://www.w3.org/2005/Atom"
+  xmlns:app="http://www.w3.org/2007/app" xmlns:cmisra="http://docs.oasis-open.org/ns/cmis/restatom/200901">
+  <atom:author>
+    <atom:name>Al Brown</atom:name>
+    <atom:uri>http://www.ibm.com/</atom:uri>
+    <atom:email>albertcbrown@us.ibm.com</atom:email>
+  </atom:author>
+  <atom:content src="http://cmisexample.oasis-open.org/rep1/fb7b8894-bf63-4f61-bcb6-8678d3af7b64" />
+  <atom:id>urn:uuid:fb7b8894-bf63-4f61-bcb6-8678d3af7b64</atom:id>
+  <atom:link rel="self" href="http://cmisexample.oasis-open.org/rep1/fb7b8894-bf63-4f61-bcb6-8678d3af7b64" />
+  <atom:link rel="edit" href="http://cmisexample.oasis-open.org/rep1/fb7b8894-bf63-4f61-bcb6-8678d3af7b64" />
+  <atom:link type="application/cmis+xml;type=allowableActions" rel="allowableactions" href="http://cmisexample.oasis-open.org/rep1/fb7b8894-bf63-4f61-bcb6-8678d3af7b64/allowableactions" />
+  <atom:link type="application/atom+xml;type=entry" rel="type" href="http://cmisexample.oasis-open.org/rep1/fb7b8894-bf63-4f61-bcb6-8678d3af7b64/type" />
+  <atom:published>2009-07-17T09:13:33.156-07:00</atom:published>
+  <atom:summary type="html">HTML summary of Entry fb7b8894-bf63-4f61-bcb6-8678d3af7b64</atom:summary>
+  <atom:title type="text">CMIS Example Document - Loan</atom:title>
+  <atom:updated>2009-07-17T09:13:33.156-07:00</atom:updated>
+  <atom:link rel="edit-media" href="http://cmisexample.oasis-open.org/rep1/fb7b8894-bf63-4f61-bcb6-8678d3af7b64/edit-media" />
+  <atom:link rel="alternate" href="http://cmisexample.oasis-open.org/rep1/fb7b8894-bf63-4f61-bcb6-8678d3af7b64/alternate" />
+  <atom:link type="application/atom+xml;type=feed" rel="parents" href="http://cmisexample.oasis-open.org/rep1/fb7b8894-bf63-4f61-bcb6-8678d3af7b64/parents" />
+  <atom:link type="application/atom+xml;type=feed" rel="allversions" href="http://cmisexample.oasis-open.org/rep1/fb7b8894-bf63-4f61-bcb6-8678d3af7b64/allversions" />
+  <atom:link type="application/atom+xml;type=entry" rel="latestversion" href="http://cmisexample.oasis-open.org/rep1/fb7b8894-bf63-4f61-bcb6-8678d3af7b64/latestversions" />
+  <atom:link length="4123" type="text/plain" rel="stream" href="http://cmisexample.oasis-open.org/rep1/fb7b8894-bf63-4f61-bcb6-8678d3af7b64media" />
+  <atom:link type="application/atom+xml;type=feed" rel="relationships" href="http://cmisexample.oasis-open.org/rep1/fb7b8894-bf63-4f61-bcb6-8678d3af7b64/relationships" />
+  <cmisra:object>
+    <cmis:properties>
+      <cmis:propertyBoolean localname="rep-cmis:IsImmutable" pdid="cmis:IsImmutable">
+        <cmis:value>false</cmis:value>
+      </cmis:propertyBoolean>
+      <cmis:propertyDateTime localname="rep-cmis:CreationDate" pdid="cmis:CreationDate">
+        <cmis:value>2009-07-17T09:13:33.156-07:00</cmis:value>
+      </cmis:propertyDateTime>
+      <cmis:propertyDateTime localname="rep-cmis:LastModificationDate" pdid="cmis:LastModificationDate">
+        <cmis:value>2009-07-17T09:13:33.156-07:00</cmis:value>
+      </cmis:propertyDateTime>
+      <cmis:propertyId localname="rep-cmis:ObjectId" pdid="cmis:ObjectId">
+        <cmis:value>fb7b8894-bf63-4f61-bcb6-8678d3af7b64</cmis:value>
+      </cmis:propertyId>
+      <cmis:propertyId localname="rep-cmis:ObjectTypeId" pdid="cmis:ObjectTypeId">
+        <cmis:value>loan</cmis:value>
+      </cmis:propertyId>
+      <cmis:propertyId localname="rep-cmis:BaseTypeId" pdid="cmis:BaseTypeId">
+        <cmis:value>cmis:document</cmis:value>
+      </cmis:propertyId>
+      <cmis:propertyString localname="rep-cmis:LastModifiedBy" pdid="cmis:LastModifiedBy">
+        <cmis:value>Al Brown</cmis:value>
+      </cmis:propertyString>
+      <cmis:propertyString localname="rep-cmis:CreatedBy" pdid="cmis:CreatedBy">
+        <cmis:value>Al Brown</cmis:value>
+      </cmis:propertyString>
+      <cmis:propertyBoolean localname="rep-cmis:IsLatestVersion" pdid="cmis:IsLatestVersion">
+        <cmis:value>true</cmis:value>
+      </cmis:propertyBoolean>
+      <cmis:propertyBoolean localname="rep-cmis:IsVersionSeriesCheckedOut" pdid="cmis:IsVersionSeriesCheckedOut">
+        <cmis:value>false</cmis:value>
+      </cmis:propertyBoolean>
+      <cmis:propertyBoolean localname="rep-cmis:IsMajorVersion" pdid="cmis:IsMajorVersion">
+        <cmis:value>false</cmis:value>
+      </cmis:propertyBoolean>
+      <cmis:propertyBoolean localname="rep-cmis:IsLatestMajorVersion" pdid="cmis:IsLatestMajorVersion">
+        <cmis:value>false</cmis:value>
+      </cmis:propertyBoolean>
+      <cmis:propertyString localname="rep-cmis:CheckinComment" pdid="cmis:CheckinComment">
+        <cmis:value>Checkin comment</cmis:value>
+      </cmis:propertyString>
+      <cmis:propertyString localname="rep-cmis:VersionLabel" pdid="cmis:VersionLabel">
+        <cmis:value>0.1</cmis:value>
+      </cmis:propertyString>
+      <cmis:propertyString localname="rep-cmis:ContentStreamMimeType" pdid="cmis:ContentStreamMimeType">
+        <cmis:value>text/plain</cmis:value>
+      </cmis:propertyString>
+      <cmis:propertyString localname="rep-cmis:ContentStreamFileName" pdid="cmis:ContentStreamFileName">
+        <cmis:value>text.txt</cmis:value>
+      </cmis:propertyString>
+      <cmis:propertyInteger localname="rep-cmis:ContentStreamLength" pdid="cmis:ContentStreamLength">
+        <cmis:value>4234</cmis:value>
+      </cmis:propertyInteger>
+      <cmis:propertyString displayname="Keywords for Document" localname="keywords" pdid="keywords">
+        <cmis:value>document</cmis:value>
+        <cmis:value>example</cmis:value>
+        <cmis:value>sample</cmis:value>
+        <cmis:value>cmis</cmis:value>
+      </cmis:propertyString>
+    </cmis:properties>
+    <cmis:allowableActions>
+      <cmis:canDeleteObject>true</cmis:canDeleteObject>
+      <cmis:canUpdateProperties>true</cmis:canUpdateProperties>
+      <cmis:canGetProperties>true</cmis:canGetProperties>
+      <cmis:canGetRelationships>true</cmis:canGetRelationships>
+      <cmis:canGetObjectParents>true</cmis:canGetObjectParents>
+      <cmis:canMoveObject>true</cmis:canMoveObject>
+      <cmis:canDeleteContentStream>true</cmis:canDeleteContentStream>
+      <cmis:canCheckOut>true</cmis:canCheckOut>
+      <cmis:canCancelCheckOut>true</cmis:canCancelCheckOut>
+      <cmis:canCheckIn>true</cmis:canCheckIn>
+      <cmis:canSetContentStream>true</cmis:canSetContentStream>
+      <cmis:canGetAllVersions>true</cmis:canGetAllVersions>
+      <cmis:canAddObjectToFolder>true</cmis:canAddObjectToFolder>
+      <cmis:canRemoveObjectFromFolder>true</cmis:canRemoveObjectFromFolder>
+      <cmis:canGetContentStream>true</cmis:canGetContentStream>
+      <cmis:canApplyPolicy>true</cmis:canApplyPolicy>
+      <cmis:canGetAppliedPolicies>true</cmis:canGetAppliedPolicies>
+      <cmis:canRemovePolicy>true</cmis:canRemovePolicy>
+      <cmis:canCreateDocument>true</cmis:canCreateDocument>
+    </cmis:allowableActions>
+    <cmis:changeEventInfo>
+      <cmis:changeType>updated</cmis:changeType>
+      <cmis:changeTime>2009-07-17T09:13:33.156-07:00</cmis:changeTime>
+    </cmis:changeEventInfo>
+  </cmisra:object>
+</atom:entry>

Propchange: incubator/chemistry/trunk/chemistry/chemistry-tck-atompub/src/main/resources/org/apache/chemistry/tck/atompub/examples/DocumentEntryWithChanges.xml
------------------------------------------------------------------------------
    svn:eol-style = native