You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@chemistry.apache.org by fm...@apache.org on 2015/08/11 14:20:28 UTC

svn commit: r1695291 - in /chemistry/opencmis/trunk: chemistry-opencmis-client/chemistry-opencmis-client-api/src/main/java/org/apache/chemistry/opencmis/client/api/ chemistry-opencmis-client/chemistry-opencmis-client-impl/src/main/java/org/apache/chemi...

Author: fmui
Date: Tue Aug 11 12:20:27 2015
New Revision: 1695291

URL: http://svn.apache.org/r1695291
Log:
added Session.exists()

Modified:
    chemistry/opencmis/trunk/chemistry-opencmis-client/chemistry-opencmis-client-api/src/main/java/org/apache/chemistry/opencmis/client/api/Session.java
    chemistry/opencmis/trunk/chemistry-opencmis-client/chemistry-opencmis-client-impl/src/main/java/org/apache/chemistry/opencmis/client/runtime/SessionImpl.java
    chemistry/opencmis/trunk/chemistry-opencmis-test/chemistry-opencmis-test-tck/src/main/java/org/apache/chemistry/opencmis/tck/tests/basics/RootFolderTest.java

Modified: chemistry/opencmis/trunk/chemistry-opencmis-client/chemistry-opencmis-client-api/src/main/java/org/apache/chemistry/opencmis/client/api/Session.java
URL: http://svn.apache.org/viewvc/chemistry/opencmis/trunk/chemistry-opencmis-client/chemistry-opencmis-client-api/src/main/java/org/apache/chemistry/opencmis/client/api/Session.java?rev=1695291&r1=1695290&r2=1695291&view=diff
==============================================================================
--- chemistry/opencmis/trunk/chemistry-opencmis-client/chemistry-opencmis-client-api/src/main/java/org/apache/chemistry/opencmis/client/api/Session.java (original)
+++ chemistry/opencmis/trunk/chemistry-opencmis-client/chemistry-opencmis-client-api/src/main/java/org/apache/chemistry/opencmis/client/api/Session.java Tue Aug 11 12:20:27 2015
@@ -620,6 +620,36 @@ public interface Session extends Seriali
     Document getLatestDocumentVersion(String objectId, boolean major, OperationContext context);
 
     /**
+     * Checks if an object with given object ID exists in the repository and is
+     * visible for the current user.
+     * 
+     * If the object doesn't exist (anymore), it is removed from the cache.
+     * 
+     * @param objectId
+     *            object ID
+     * @return {@code true} if the object exists in the repository,
+     *         {@code false} otherwise
+     * 
+     * @cmis 1.0
+     */
+    boolean exists(ObjectId objectId);
+
+    /**
+     * Checks if an object with given object ID exists in the repository and is
+     * visible for the current user.
+     * 
+     * If the object doesn't exist (anymore), it is removed from the cache.
+     * 
+     * @param objectId
+     *            object ID
+     * @return {@code true} if the object exists in the repository,
+     *         {@code false} otherwise
+     * 
+     * @cmis 1.0
+     */
+    boolean exists(String objectId);
+
+    /**
      * Removes the given object from the cache.
      * 
      * @param objectId

Modified: chemistry/opencmis/trunk/chemistry-opencmis-client/chemistry-opencmis-client-impl/src/main/java/org/apache/chemistry/opencmis/client/runtime/SessionImpl.java
URL: http://svn.apache.org/viewvc/chemistry/opencmis/trunk/chemistry-opencmis-client/chemistry-opencmis-client-impl/src/main/java/org/apache/chemistry/opencmis/client/runtime/SessionImpl.java?rev=1695291&r1=1695290&r2=1695291&view=diff
==============================================================================
--- chemistry/opencmis/trunk/chemistry-opencmis-client/chemistry-opencmis-client-impl/src/main/java/org/apache/chemistry/opencmis/client/runtime/SessionImpl.java (original)
+++ chemistry/opencmis/trunk/chemistry-opencmis-client/chemistry-opencmis-client-impl/src/main/java/org/apache/chemistry/opencmis/client/runtime/SessionImpl.java Tue Aug 11 12:20:27 2015
@@ -84,6 +84,7 @@ import org.apache.chemistry.opencmis.com
 import org.apache.chemistry.opencmis.commons.enums.VersioningState;
 import org.apache.chemistry.opencmis.commons.exceptions.CmisConstraintException;
 import org.apache.chemistry.opencmis.commons.exceptions.CmisNotSupportedException;
+import org.apache.chemistry.opencmis.commons.exceptions.CmisObjectNotFoundException;
 import org.apache.chemistry.opencmis.commons.exceptions.CmisRuntimeException;
 import org.apache.chemistry.opencmis.commons.impl.ClassLoaderUtil;
 import org.apache.chemistry.opencmis.commons.impl.Constants;
@@ -705,6 +706,24 @@ public class SessionImpl implements Sess
     }
 
     @Override
+    public boolean exists(ObjectId objectId) {
+        checkObjectId(objectId);
+        return exists(objectId.getId());
+    }
+
+    @Override
+    public boolean exists(String objectId) {
+        try {
+            binding.getObjectService().getObject(getRepositoryId(), objectId, "cmis:objectId", Boolean.FALSE,
+                    IncludeRelationships.NONE, "cmis:none", Boolean.FALSE, Boolean.FALSE, null);
+            return true;
+        } catch (CmisObjectNotFoundException onf) {
+            removeObjectFromCache(objectId);
+            return false;
+        }
+    }
+
+    @Override
     public void removeObjectFromCache(ObjectId objectId) {
         checkObjectId(objectId);
         removeObjectFromCache(objectId.getId());

Modified: chemistry/opencmis/trunk/chemistry-opencmis-test/chemistry-opencmis-test-tck/src/main/java/org/apache/chemistry/opencmis/tck/tests/basics/RootFolderTest.java
URL: http://svn.apache.org/viewvc/chemistry/opencmis/trunk/chemistry-opencmis-test/chemistry-opencmis-test-tck/src/main/java/org/apache/chemistry/opencmis/tck/tests/basics/RootFolderTest.java?rev=1695291&r1=1695290&r2=1695291&view=diff
==============================================================================
--- chemistry/opencmis/trunk/chemistry-opencmis-test/chemistry-opencmis-test-tck/src/main/java/org/apache/chemistry/opencmis/tck/tests/basics/RootFolderTest.java (original)
+++ chemistry/opencmis/trunk/chemistry-opencmis-test/chemistry-opencmis-test-tck/src/main/java/org/apache/chemistry/opencmis/tck/tests/basics/RootFolderTest.java Tue Aug 11 12:20:27 2015
@@ -64,6 +64,11 @@ public class RootFolderTest extends Abst
             return;
         }
 
+        // check existence
+        failure = createResult(FAILURE, "Root folder doesn't exist?!");
+        addResult(assertIsTrue(session.exists(ri.getRootFolderId()), null, failure));
+
+        // check folder object
         addResult(checkObject(session, rootFolder, getAllProperties(rootFolder), "Root folder object spec compliance"));
 
         // folder and path