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 2012/02/25 14:43:34 UTC

svn commit: r1293600 [4/9] - in /chemistry/opencmis/branches/android: ./ chemistry-opencmis-client/chemistry-opencmis-client-bindings/ chemistry-opencmis-client/chemistry-opencmis-client-bindings/src/main/java/org/apache/chemistry/opencmis/client/bindi...

Modified: chemistry/opencmis/branches/android/chemistry-opencmis-server/chemistry-opencmis-server-inmemory/src/test/java/org/apache/chemistry/opencmis/inmemory/AclServiceTest.java
URL: http://svn.apache.org/viewvc/chemistry/opencmis/branches/android/chemistry-opencmis-server/chemistry-opencmis-server-inmemory/src/test/java/org/apache/chemistry/opencmis/inmemory/AclServiceTest.java?rev=1293600&r1=1293599&r2=1293600&view=diff
==============================================================================
--- chemistry/opencmis/branches/android/chemistry-opencmis-server/chemistry-opencmis-server-inmemory/src/test/java/org/apache/chemistry/opencmis/inmemory/AclServiceTest.java (original)
+++ chemistry/opencmis/branches/android/chemistry-opencmis-server/chemistry-opencmis-server-inmemory/src/test/java/org/apache/chemistry/opencmis/inmemory/AclServiceTest.java Sat Feb 25 13:43:31 2012
@@ -1,367 +1,367 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you 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.opencmis.inmemory;
-
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertFalse;
-import static org.junit.Assert.assertNotNull;
-import static org.junit.Assert.assertNull;
-import static org.junit.Assert.assertTrue;
-
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.Collections;
-import java.util.List;
-
-import org.apache.chemistry.opencmis.commons.data.Ace;
-import org.apache.chemistry.opencmis.commons.data.Acl;
-import org.apache.chemistry.opencmis.commons.data.ObjectData;
-import org.apache.chemistry.opencmis.commons.enums.AclPropagation;
-import org.apache.chemistry.opencmis.commons.enums.IncludeRelationships;
-import org.apache.chemistry.opencmis.commons.enums.VersioningState;
-import org.apache.chemistry.opencmis.commons.impl.jaxb.EnumBasicPermissions;
-import org.apache.chemistry.opencmis.inmemory.ObjectServiceTest.ObjectTestTypeSystemCreator;
-import org.apache.chemistry.opencmis.inmemory.storedobj.impl.InMemoryAce;
-import org.apache.chemistry.opencmis.inmemory.types.InMemoryDocumentTypeDefinition;
-import org.apache.chemistry.opencmis.inmemory.types.InMemoryFolderTypeDefinition;
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
-import org.junit.After;
-import org.junit.Before;
-import org.junit.Test;
-
-public class AclServiceTest extends AbstractServiceTest {
-
-    private static final Log LOG = LogFactory.getLog(AclServiceTest.class);
-    private ObjectCreator fCreator;
-    private static final String DOCUMENT_NAME = "DocumentWithAcl";
-    private static final String FOLDER_NAME = "FolderWithAcl";
-    private static final String DOCUMENT_TYPE_ID = InMemoryDocumentTypeDefinition.getRootDocumentType().getId();
-    private static final String FOLDER_TYPE_ID = InMemoryFolderTypeDefinition.getRootFolderType().getId();
-    private static final String USER = "user";
-    private static final String ALICE = "alice";
-    private static final String BOB = "bob";
-    private static final String CHRIS = "chris";
-    private static final String DAN = "dan";        
-    private Acl defaultAcl = null;
-    
-    @Override
-    @Before
-    public void setUp() {
-        super.setTypeCreatorClass(ObjectTestTypeSystemCreator.class.getName());
-        super.setUp();
-        fCreator = new ObjectCreator(fFactory, fObjSvc, fRepositoryId);
-        
-        List<Ace> defaultACEs = new ArrayList<Ace>(1);
-        defaultACEs.add(fFactory.createAccessControlEntry(InMemoryAce.getAnyoneUser(), Collections.singletonList( EnumBasicPermissions.CMIS_ALL.value())));
-        defaultAcl = fFactory.createAccessControlList(defaultACEs); 
-
-    }
-
-    @Override
-    @After
-    public void tearDown() {
-        super.tearDown();
-    }
-
-    @Test
-    public void testCreateDocumentWithAcl() {
-        LOG.info("starting testCreateDocumentWithAcl() ...");
-        Acl removeAces = defaultAcl;
-        Acl acl = createSimpleTestAcl();
-
-        String id = createDocument(fRootFolderId, acl, removeAces);
-        LOG.debug("created document with id: " + id);
-        
-        // get ACL using AclService
-        Acl aclReturn = fAclSvc.getAcl(fRepositoryId, id, true, null);        
-        checkSimpleTestAcl(acl, aclReturn);
-        
-        // get ACL using ObjectService getObject
-        ObjectData objData = fObjSvc.getObject(fRepositoryId, id, "*", false, IncludeRelationships.NONE, null, false, true, null);
-        checkSimpleTestAcl(acl, aclReturn);
-       
-        // get ACL using ObjectService getObjectByPath
-        objData = fObjSvc.getObjectByPath(fRepositoryId, "/" + DOCUMENT_NAME, "*", false, IncludeRelationships.NONE, null, false,
-                true, null);
-        assertNotNull(objData);
-        aclReturn = objData.getAcl();
-        checkSimpleTestAcl(acl, aclReturn);
-
-        LOG.info("... testCreateDocumentWithAcl() finished.");
-    }
-
-    @Test
-    public void testCreateFolderWithAcl() {
-        LOG.info("starting testCreateFolderWithAcl() ...");
-        Acl removeAces = defaultAcl;
-        Acl acl = createSimpleTestAcl();
-        
-        String id = createFolder(fRootFolderId, acl, removeAces);
-        LOG.debug("created folder with id: " + id);
-        
-        // get ACL using AclService
-        Acl aclReturn = fAclSvc.getAcl(fRepositoryId, id, true, null);        
-        checkSimpleTestAcl(acl, aclReturn);
-
-        // get ACL using ObjectService getObject
-        ObjectData objData = fObjSvc.getObject(fRepositoryId, id, "*", false, IncludeRelationships.NONE, null, false, true, null);
-        checkSimpleTestAcl(acl, aclReturn);
-       
-        // get ACL using ObjectService getObjectByPath
-        objData = fObjSvc.getObjectByPath(fRepositoryId, "/" + FOLDER_NAME, "*", false, IncludeRelationships.NONE, null, false,
-                true, null);
-        assertNotNull(objData);
-        aclReturn = objData.getAcl();
-        checkSimpleTestAcl(acl, aclReturn);        
-        LOG.info("... testCreateFolderWithAcl() finished.");
-   }
-        
-    @Test
-    public void testApplyAcl() {
-        LOG.info("starting testApplyAcl() ...");
-        Acl acl = createSimpleTestAcl();
-        
-        String id = createDocument(fRootFolderId, null, null);
-        LOG.debug("created document with id: " + id);
-        
-        // apply absolute ACL using AclService
-        Acl acl1 = fAclSvc.applyAcl(fRepositoryId, id, acl, defaultAcl, AclPropagation.OBJECTONLY, null);        
-        checkSimpleTestAcl(acl, acl1);
-
-        // get ACL using AclService
-        Acl aclReturn = fAclSvc.getAcl(fRepositoryId, id, true, null);        
-        checkSimpleTestAcl(acl, aclReturn);
-
-        LOG.info("... testApplyAcl() finished.");
-    }
-    
-    @Test
-    public void testAddRemoveAcl() {
-        
-        LOG.info("starting testAddRemoveAcl() ...");
-        Acl acl = createAdvancedTestAcl();        
-        
-        String id = createDocument(fRootFolderId, acl, defaultAcl);
-        LOG.debug("created document with id: " + id);
-        
-        Acl aclAdd = createAclAdd();        
-        Acl aclRemove = createAclRemove();
-        // apply absolute ACL using AclService
-        Acl aclReturn = fAclSvc.applyAcl(fRepositoryId, id, aclAdd, aclRemove, AclPropagation.OBJECTONLY, null);        
-
-        checkAclAfterAddRemove(aclReturn);
-                
-        LOG.info("... testAddRemoveAcl() finished.");
-    }
-    
-    @Test
-    public void testAddRemoveDuplicatedAcl() {
-        final String DOCUMENT_NAME_1 = "DocumentWithAcl-1";
-        final String DOCUMENT_NAME_2 = "DocumentWithAcl-2";
-
-        LOG.info("starting testAddRemoveDuplicatedAcl() ...");
-        Acl acl = createAdvancedTestAcl();  
-        String id1 = createDocument(DOCUMENT_NAME_1, fRootFolderId, acl, defaultAcl);
-        String id2 = createDocument(DOCUMENT_NAME_2, fRootFolderId, acl, defaultAcl);
-        
-//        // modify ACL of first doc
-//        List<Ace> acesRemove = Arrays.asList(new Ace[] { 
-//                createAce(BOB, EnumBasicPermissions.CMIS_WRITE.value()),
-//                });
-//        Acl aclRemove = new AccessControlListImpl(acesRemove);        
-//        List<Ace> acesAdd = Arrays.asList(new Ace[] { 
-//                createAce(DAN, EnumBasicPermissions.CMIS_WRITE.value()),
-//                });
-//        Acl aclAdd = new AccessControlListImpl(acesAdd);        
-        Acl aclAdd = createAclAdd();        
-        Acl aclRemove = createAclRemove();
-        Acl aclReturn = fAclSvc.applyAcl(fRepositoryId, id1, aclAdd, aclRemove, AclPropagation.OBJECTONLY, null);        
-
-        checkAclAfterAddRemove(aclReturn);
-  
-        // Ensure that ACL of second doc is unchanged
-        aclReturn = fAclSvc.getAcl(fRepositoryId, id2, true, null);        
-        checkAdvancedTestAcl(acl, aclReturn);
-        LOG.info("... testAddRemoveDuplicatedAcl() finished.");
-    }
- 
-    @Test
-    public void testApplyAclRecursiveSimple () {
-        LOG.info("starting testApplyAclRecursiveSimple() ...");
-        Acl acl = createSimpleTestAcl();
-        String[] ids = createHierarchy(acl, defaultAcl);
-        fAclSvc.applyAcl(fRepositoryId, ids[0], acl, null, AclPropagation.PROPAGATE, null);        
-        checkAclRecursiveSimple(ids, acl);                
-        LOG.info("... testApplyAclRecursiveSimple() finished.");
-    }    
-
-    @Test
-    public void testApplyAclRecursiveIncremental() {
-        LOG.info("starting testApplyAclRecursiveIncremental() ...");
-        Acl acl = createAdvancedTestAcl();        
-        String[] ids = createHierarchy(acl, defaultAcl);
-               
-        Acl aclRemove = createAclRemove();        
-        Acl aclAdd = createAclAdd();        
-
-        Acl aclReturn = fAclSvc.applyAcl(fRepositoryId, ids[0], aclAdd, aclRemove, AclPropagation.PROPAGATE, null);        
-        checkAclAfterAddRemove(aclReturn);
-        for (String id : ids) {
-            aclReturn = fAclSvc.getAcl(fRepositoryId, id, true, null);        
-            checkAclAfterAddRemove(aclReturn);
-        }
-        LOG.info("... testApplyAclRecursiveIncremental() finished.");
-    }    
-
-    @Test
-    public void testRemoveAllAcls() {
-        LOG.info("starting testRemoveAllAcls() ...");
-
-        Acl acl = createAdvancedTestAcl();                
-        String id = createDocument(fRootFolderId, acl, defaultAcl);
-        LOG.debug("created document with id: " + id);
-        
-        Acl aclReturn = fAclSvc.applyAcl(fRepositoryId, id, null, acl, AclPropagation.OBJECTONLY, null);
-        assertNotNull(aclReturn);
-        assertEquals(1, aclReturn.getAces().size());
-        assertTrue(aclHasPermission(aclReturn, "anyone", EnumBasicPermissions.CMIS_ALL.value()));        
-
-        LOG.info("... testRemoveAllAcls() finished.");
-    }    
-
-    private String createDocument(String name, String folderId, Acl addAces, Acl removeAces) {
-        return createDocumentNoCatch(name, folderId, DOCUMENT_TYPE_ID, VersioningState.NONE, false, addAces,
-                removeAces);        
-    }
-    
-    private String createDocument(String folderId, Acl addAces, Acl removeAces) {
-        return createDocumentNoCatch(DOCUMENT_NAME, folderId, DOCUMENT_TYPE_ID, VersioningState.NONE, false, addAces,
-                removeAces);        
-    }
-
-    private String createFolder(String folderId, Acl addAces, Acl removeAces) {
-        return createFolderNoCatch(FOLDER_NAME, folderId, FOLDER_TYPE_ID, addAces, removeAces);        
-    }
-    
-    private String[] createHierarchy(Acl addAces, Acl removeAces) {
-        String result[] = new String [6];
-        String rootFolderId = createFolderNoCatch(FOLDER_NAME, fRootFolderId, FOLDER_TYPE_ID, addAces, removeAces);
-        result[0] = rootFolderId;
-        result[1] = createDocument(DOCUMENT_NAME + "-1", rootFolderId, addAces, removeAces);
-        result[2] = createDocument(DOCUMENT_NAME + "-2", rootFolderId, addAces, removeAces);
-        String subFolderId = createFolderNoCatch(FOLDER_NAME, rootFolderId, FOLDER_TYPE_ID, addAces, removeAces);
-        result[3] = subFolderId;
-        result[4] = createDocument(DOCUMENT_NAME + "-1", subFolderId, addAces, removeAces);
-        result[5] = createDocument(DOCUMENT_NAME + "-2", subFolderId, addAces, removeAces);
-        return result;
-    }
-    
-    private void checkAclRecursiveSimple(String[] ids, Acl acl) {
-        // get ACL using ObjectService getObject
-        for (String id : ids) {
-            ObjectData objData = fObjSvc.getObject(fRepositoryId, id, "*", false, IncludeRelationships.NONE, null, false, true, null);
-            checkSimpleTestAcl(acl, objData.getAcl());
-        }
-    }
-
-    private Acl createSimpleTestAcl() {
-        List<Ace> aces = Arrays.asList(new Ace[] { createAce(USER, EnumBasicPermissions.CMIS_READ.value()) });
-        return fFactory.createAccessControlList(aces);        
-    }
-    
-    private void checkSimpleTestAcl(Acl acl, Acl aclReturn) {
-        assertNotNull(aclReturn);
-        assertEquals(acl.getAces().size(), aclReturn.getAces().size());
-        assertTrue(aclHasPermission(aclReturn, USER, EnumBasicPermissions.CMIS_READ.value()));        
-    }
-    
-    private Acl createAdvancedTestAcl() {
-        List<Ace> aces = Arrays.asList(new Ace[] { 
-                createAce(ALICE, EnumBasicPermissions.CMIS_READ.value()),
-                createAce(BOB, EnumBasicPermissions.CMIS_WRITE.value()),
-                createAce(CHRIS, EnumBasicPermissions.CMIS_ALL.value()),
-                });
-        return fFactory.createAccessControlList(aces);        
-    }
-    
-    private Acl createAclAdd() {
-        List<Ace> acesAdd = Arrays.asList(new Ace[] { 
-                createAce(DAN, EnumBasicPermissions.CMIS_WRITE.value()),
-                });
-       return fFactory.createAccessControlList(acesAdd);                
-    }
-    
-    private Acl createAclRemove() {
-        List<Ace> acesRemove = Arrays.asList(new Ace[] { 
-                createAce(BOB, EnumBasicPermissions.CMIS_WRITE.value()),
-                createAce(CHRIS, EnumBasicPermissions.CMIS_ALL.value())
-                });
-        return fFactory.createAccessControlList(acesRemove);               
-    }
-    
-    private void checkAclAfterAddRemove(Acl aclReturn) {
-        assertNotNull(aclReturn);
-        assertEquals(2, aclReturn.getAces().size());
-        assertTrue(aclHasPermission(aclReturn, ALICE, EnumBasicPermissions.CMIS_READ.value()));        
-        assertTrue(aclHasPermission(aclReturn, DAN, EnumBasicPermissions.CMIS_WRITE.value()));        
-        assertFalse(aclHasPermission(aclReturn, BOB, EnumBasicPermissions.CMIS_WRITE.value()));        
-        assertFalse(aclHasPermission(aclReturn, CHRIS, EnumBasicPermissions.CMIS_ALL.value()));        
-        assertTrue(aclHasNoPermission(aclReturn, BOB));        
-        assertTrue(aclHasNoPermission(aclReturn, CHRIS));        
-    }
-    
-   private void checkAdvancedTestAcl(Acl acl, Acl aclReturn) {
-        assertNotNull(aclReturn);
-        assertEquals(acl.getAces().size(), aclReturn.getAces().size());
-        assertTrue(aclHasPermission(aclReturn, ALICE, EnumBasicPermissions.CMIS_READ.value()));        
-        assertTrue(aclHasPermission(aclReturn, BOB, EnumBasicPermissions.CMIS_WRITE.value()));        
-        assertTrue(aclHasPermission(aclReturn, CHRIS, EnumBasicPermissions.CMIS_ALL.value()));        
-    }
-
-    private Ace createAce(String principalId, String permission) {
-        return  fFactory.createAccessControlEntry(principalId, Collections.singletonList( permission ));
-    }
-    
-    private boolean aclHasPermission(Acl acl, String principalId, String permission) {
-        for (Ace ace : acl.getAces()) {
-            if (ace.getPrincipalId().equals(principalId) && aceContainsPermission(ace, permission))
-                return true;            
-        }
-        return false;
-    }
-    
-    private boolean aclHasNoPermission(Acl acl, String principalId) {
-        if (null == acl)
-            return false;
-        
-        for (Ace ace : acl.getAces()) {
-            if (ace.getPrincipalId().equals(principalId))
-                return false;
-        }
-        return true;
-    }
-    
-    private boolean aceContainsPermission(Ace ace, String permission) {
-        for (String acePerm : ace.getPermissions())
-            if (permission.equals(acePerm))
-                return true;
-        return false;
-    }
-}
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you 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.opencmis.inmemory;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertNotNull;
+import static org.junit.Assert.assertNull;
+import static org.junit.Assert.assertTrue;
+
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.List;
+
+import org.apache.chemistry.opencmis.commons.data.Ace;
+import org.apache.chemistry.opencmis.commons.data.Acl;
+import org.apache.chemistry.opencmis.commons.data.ObjectData;
+import org.apache.chemistry.opencmis.commons.enums.AclPropagation;
+import org.apache.chemistry.opencmis.commons.enums.IncludeRelationships;
+import org.apache.chemistry.opencmis.commons.enums.VersioningState;
+import org.apache.chemistry.opencmis.commons.impl.jaxb.EnumBasicPermissions;
+import org.apache.chemistry.opencmis.inmemory.ObjectServiceTest.ObjectTestTypeSystemCreator;
+import org.apache.chemistry.opencmis.inmemory.storedobj.impl.InMemoryAce;
+import org.apache.chemistry.opencmis.inmemory.types.InMemoryDocumentTypeDefinition;
+import org.apache.chemistry.opencmis.inmemory.types.InMemoryFolderTypeDefinition;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.junit.After;
+import org.junit.Before;
+import org.junit.Test;
+
+public class AclServiceTest extends AbstractServiceTest {
+
+    private static final Logger LOG = LoggerFactory.getLogger(AclServiceTest.class);
+    private ObjectCreator fCreator;
+    private static final String DOCUMENT_NAME = "DocumentWithAcl";
+    private static final String FOLDER_NAME = "FolderWithAcl";
+    private static final String DOCUMENT_TYPE_ID = InMemoryDocumentTypeDefinition.getRootDocumentType().getId();
+    private static final String FOLDER_TYPE_ID = InMemoryFolderTypeDefinition.getRootFolderType().getId();
+    private static final String USER = "user";
+    private static final String ALICE = "alice";
+    private static final String BOB = "bob";
+    private static final String CHRIS = "chris";
+    private static final String DAN = "dan";        
+    private Acl defaultAcl = null;
+    
+    @Override
+    @Before
+    public void setUp() {
+        super.setTypeCreatorClass(ObjectTestTypeSystemCreator.class.getName());
+        super.setUp();
+        fCreator = new ObjectCreator(fFactory, fObjSvc, fRepositoryId);
+        
+        List<Ace> defaultACEs = new ArrayList<Ace>(1);
+        defaultACEs.add(fFactory.createAccessControlEntry(InMemoryAce.getAnyoneUser(), Collections.singletonList( EnumBasicPermissions.CMIS_ALL.value())));
+        defaultAcl = fFactory.createAccessControlList(defaultACEs); 
+
+    }
+
+    @Override
+    @After
+    public void tearDown() {
+        super.tearDown();
+    }
+
+    @Test
+    public void testCreateDocumentWithAcl() {
+        LOG.info("starting testCreateDocumentWithAcl() ...");
+        Acl removeAces = defaultAcl;
+        Acl acl = createSimpleTestAcl();
+
+        String id = createDocument(fRootFolderId, acl, removeAces);
+        LOG.debug("created document with id: " + id);
+        
+        // get ACL using AclService
+        Acl aclReturn = fAclSvc.getAcl(fRepositoryId, id, true, null);        
+        checkSimpleTestAcl(acl, aclReturn);
+        
+        // get ACL using ObjectService getObject
+        ObjectData objData = fObjSvc.getObject(fRepositoryId, id, "*", false, IncludeRelationships.NONE, null, false, true, null);
+        checkSimpleTestAcl(acl, aclReturn);
+       
+        // get ACL using ObjectService getObjectByPath
+        objData = fObjSvc.getObjectByPath(fRepositoryId, "/" + DOCUMENT_NAME, "*", false, IncludeRelationships.NONE, null, false,
+                true, null);
+        assertNotNull(objData);
+        aclReturn = objData.getAcl();
+        checkSimpleTestAcl(acl, aclReturn);
+
+        LOG.info("... testCreateDocumentWithAcl() finished.");
+    }
+
+    @Test
+    public void testCreateFolderWithAcl() {
+        LOG.info("starting testCreateFolderWithAcl() ...");
+        Acl removeAces = defaultAcl;
+        Acl acl = createSimpleTestAcl();
+        
+        String id = createFolder(fRootFolderId, acl, removeAces);
+        LOG.debug("created folder with id: " + id);
+        
+        // get ACL using AclService
+        Acl aclReturn = fAclSvc.getAcl(fRepositoryId, id, true, null);        
+        checkSimpleTestAcl(acl, aclReturn);
+
+        // get ACL using ObjectService getObject
+        ObjectData objData = fObjSvc.getObject(fRepositoryId, id, "*", false, IncludeRelationships.NONE, null, false, true, null);
+        checkSimpleTestAcl(acl, aclReturn);
+       
+        // get ACL using ObjectService getObjectByPath
+        objData = fObjSvc.getObjectByPath(fRepositoryId, "/" + FOLDER_NAME, "*", false, IncludeRelationships.NONE, null, false,
+                true, null);
+        assertNotNull(objData);
+        aclReturn = objData.getAcl();
+        checkSimpleTestAcl(acl, aclReturn);        
+        LOG.info("... testCreateFolderWithAcl() finished.");
+   }
+        
+    @Test
+    public void testApplyAcl() {
+        LOG.info("starting testApplyAcl() ...");
+        Acl acl = createSimpleTestAcl();
+        
+        String id = createDocument(fRootFolderId, null, null);
+        LOG.debug("created document with id: " + id);
+        
+        // apply absolute ACL using AclService
+        Acl acl1 = fAclSvc.applyAcl(fRepositoryId, id, acl, defaultAcl, AclPropagation.OBJECTONLY, null);        
+        checkSimpleTestAcl(acl, acl1);
+
+        // get ACL using AclService
+        Acl aclReturn = fAclSvc.getAcl(fRepositoryId, id, true, null);        
+        checkSimpleTestAcl(acl, aclReturn);
+
+        LOG.info("... testApplyAcl() finished.");
+    }
+    
+    @Test
+    public void testAddRemoveAcl() {
+        
+        LOG.info("starting testAddRemoveAcl() ...");
+        Acl acl = createAdvancedTestAcl();        
+        
+        String id = createDocument(fRootFolderId, acl, defaultAcl);
+        LOG.debug("created document with id: " + id);
+        
+        Acl aclAdd = createAclAdd();        
+        Acl aclRemove = createAclRemove();
+        // apply absolute ACL using AclService
+        Acl aclReturn = fAclSvc.applyAcl(fRepositoryId, id, aclAdd, aclRemove, AclPropagation.OBJECTONLY, null);        
+
+        checkAclAfterAddRemove(aclReturn);
+                
+        LOG.info("... testAddRemoveAcl() finished.");
+    }
+    
+    @Test
+    public void testAddRemoveDuplicatedAcl() {
+        final String DOCUMENT_NAME_1 = "DocumentWithAcl-1";
+        final String DOCUMENT_NAME_2 = "DocumentWithAcl-2";
+
+        LOG.info("starting testAddRemoveDuplicatedAcl() ...");
+        Acl acl = createAdvancedTestAcl();  
+        String id1 = createDocument(DOCUMENT_NAME_1, fRootFolderId, acl, defaultAcl);
+        String id2 = createDocument(DOCUMENT_NAME_2, fRootFolderId, acl, defaultAcl);
+        
+//        // modify ACL of first doc
+//        List<Ace> acesRemove = Arrays.asList(new Ace[] { 
+//                createAce(BOB, EnumBasicPermissions.CMIS_WRITE.value()),
+//                });
+//        Acl aclRemove = new AccessControlListImpl(acesRemove);        
+//        List<Ace> acesAdd = Arrays.asList(new Ace[] { 
+//                createAce(DAN, EnumBasicPermissions.CMIS_WRITE.value()),
+//                });
+//        Acl aclAdd = new AccessControlListImpl(acesAdd);        
+        Acl aclAdd = createAclAdd();        
+        Acl aclRemove = createAclRemove();
+        Acl aclReturn = fAclSvc.applyAcl(fRepositoryId, id1, aclAdd, aclRemove, AclPropagation.OBJECTONLY, null);        
+
+        checkAclAfterAddRemove(aclReturn);
+  
+        // Ensure that ACL of second doc is unchanged
+        aclReturn = fAclSvc.getAcl(fRepositoryId, id2, true, null);        
+        checkAdvancedTestAcl(acl, aclReturn);
+        LOG.info("... testAddRemoveDuplicatedAcl() finished.");
+    }
+ 
+    @Test
+    public void testApplyAclRecursiveSimple () {
+        LOG.info("starting testApplyAclRecursiveSimple() ...");
+        Acl acl = createSimpleTestAcl();
+        String[] ids = createHierarchy(acl, defaultAcl);
+        fAclSvc.applyAcl(fRepositoryId, ids[0], acl, null, AclPropagation.PROPAGATE, null);        
+        checkAclRecursiveSimple(ids, acl);                
+        LOG.info("... testApplyAclRecursiveSimple() finished.");
+    }    
+
+    @Test
+    public void testApplyAclRecursiveIncremental() {
+        LOG.info("starting testApplyAclRecursiveIncremental() ...");
+        Acl acl = createAdvancedTestAcl();        
+        String[] ids = createHierarchy(acl, defaultAcl);
+               
+        Acl aclRemove = createAclRemove();        
+        Acl aclAdd = createAclAdd();        
+
+        Acl aclReturn = fAclSvc.applyAcl(fRepositoryId, ids[0], aclAdd, aclRemove, AclPropagation.PROPAGATE, null);        
+        checkAclAfterAddRemove(aclReturn);
+        for (String id : ids) {
+            aclReturn = fAclSvc.getAcl(fRepositoryId, id, true, null);        
+            checkAclAfterAddRemove(aclReturn);
+        }
+        LOG.info("... testApplyAclRecursiveIncremental() finished.");
+    }    
+
+    @Test
+    public void testRemoveAllAcls() {
+        LOG.info("starting testRemoveAllAcls() ...");
+
+        Acl acl = createAdvancedTestAcl();                
+        String id = createDocument(fRootFolderId, acl, defaultAcl);
+        LOG.debug("created document with id: " + id);
+        
+        Acl aclReturn = fAclSvc.applyAcl(fRepositoryId, id, null, acl, AclPropagation.OBJECTONLY, null);
+        assertNotNull(aclReturn);
+        assertEquals(1, aclReturn.getAces().size());
+        assertTrue(aclHasPermission(aclReturn, "anyone", EnumBasicPermissions.CMIS_ALL.value()));        
+
+        LOG.info("... testRemoveAllAcls() finished.");
+    }    
+
+    private String createDocument(String name, String folderId, Acl addAces, Acl removeAces) {
+        return createDocumentNoCatch(name, folderId, DOCUMENT_TYPE_ID, VersioningState.NONE, false, addAces,
+                removeAces);        
+    }
+    
+    private String createDocument(String folderId, Acl addAces, Acl removeAces) {
+        return createDocumentNoCatch(DOCUMENT_NAME, folderId, DOCUMENT_TYPE_ID, VersioningState.NONE, false, addAces,
+                removeAces);        
+    }
+
+    private String createFolder(String folderId, Acl addAces, Acl removeAces) {
+        return createFolderNoCatch(FOLDER_NAME, folderId, FOLDER_TYPE_ID, addAces, removeAces);        
+    }
+    
+    private String[] createHierarchy(Acl addAces, Acl removeAces) {
+        String result[] = new String [6];
+        String rootFolderId = createFolderNoCatch(FOLDER_NAME, fRootFolderId, FOLDER_TYPE_ID, addAces, removeAces);
+        result[0] = rootFolderId;
+        result[1] = createDocument(DOCUMENT_NAME + "-1", rootFolderId, addAces, removeAces);
+        result[2] = createDocument(DOCUMENT_NAME + "-2", rootFolderId, addAces, removeAces);
+        String subFolderId = createFolderNoCatch(FOLDER_NAME, rootFolderId, FOLDER_TYPE_ID, addAces, removeAces);
+        result[3] = subFolderId;
+        result[4] = createDocument(DOCUMENT_NAME + "-1", subFolderId, addAces, removeAces);
+        result[5] = createDocument(DOCUMENT_NAME + "-2", subFolderId, addAces, removeAces);
+        return result;
+    }
+    
+    private void checkAclRecursiveSimple(String[] ids, Acl acl) {
+        // get ACL using ObjectService getObject
+        for (String id : ids) {
+            ObjectData objData = fObjSvc.getObject(fRepositoryId, id, "*", false, IncludeRelationships.NONE, null, false, true, null);
+            checkSimpleTestAcl(acl, objData.getAcl());
+        }
+    }
+
+    private Acl createSimpleTestAcl() {
+        List<Ace> aces = Arrays.asList(new Ace[] { createAce(USER, EnumBasicPermissions.CMIS_READ.value()) });
+        return fFactory.createAccessControlList(aces);        
+    }
+    
+    private void checkSimpleTestAcl(Acl acl, Acl aclReturn) {
+        assertNotNull(aclReturn);
+        assertEquals(acl.getAces().size(), aclReturn.getAces().size());
+        assertTrue(aclHasPermission(aclReturn, USER, EnumBasicPermissions.CMIS_READ.value()));        
+    }
+    
+    private Acl createAdvancedTestAcl() {
+        List<Ace> aces = Arrays.asList(new Ace[] { 
+                createAce(ALICE, EnumBasicPermissions.CMIS_READ.value()),
+                createAce(BOB, EnumBasicPermissions.CMIS_WRITE.value()),
+                createAce(CHRIS, EnumBasicPermissions.CMIS_ALL.value()),
+                });
+        return fFactory.createAccessControlList(aces);        
+    }
+    
+    private Acl createAclAdd() {
+        List<Ace> acesAdd = Arrays.asList(new Ace[] { 
+                createAce(DAN, EnumBasicPermissions.CMIS_WRITE.value()),
+                });
+       return fFactory.createAccessControlList(acesAdd);                
+    }
+    
+    private Acl createAclRemove() {
+        List<Ace> acesRemove = Arrays.asList(new Ace[] { 
+                createAce(BOB, EnumBasicPermissions.CMIS_WRITE.value()),
+                createAce(CHRIS, EnumBasicPermissions.CMIS_ALL.value())
+                });
+        return fFactory.createAccessControlList(acesRemove);               
+    }
+    
+    private void checkAclAfterAddRemove(Acl aclReturn) {
+        assertNotNull(aclReturn);
+        assertEquals(2, aclReturn.getAces().size());
+        assertTrue(aclHasPermission(aclReturn, ALICE, EnumBasicPermissions.CMIS_READ.value()));        
+        assertTrue(aclHasPermission(aclReturn, DAN, EnumBasicPermissions.CMIS_WRITE.value()));        
+        assertFalse(aclHasPermission(aclReturn, BOB, EnumBasicPermissions.CMIS_WRITE.value()));        
+        assertFalse(aclHasPermission(aclReturn, CHRIS, EnumBasicPermissions.CMIS_ALL.value()));        
+        assertTrue(aclHasNoPermission(aclReturn, BOB));        
+        assertTrue(aclHasNoPermission(aclReturn, CHRIS));        
+    }
+    
+   private void checkAdvancedTestAcl(Acl acl, Acl aclReturn) {
+        assertNotNull(aclReturn);
+        assertEquals(acl.getAces().size(), aclReturn.getAces().size());
+        assertTrue(aclHasPermission(aclReturn, ALICE, EnumBasicPermissions.CMIS_READ.value()));        
+        assertTrue(aclHasPermission(aclReturn, BOB, EnumBasicPermissions.CMIS_WRITE.value()));        
+        assertTrue(aclHasPermission(aclReturn, CHRIS, EnumBasicPermissions.CMIS_ALL.value()));        
+    }
+
+    private Ace createAce(String principalId, String permission) {
+        return  fFactory.createAccessControlEntry(principalId, Collections.singletonList( permission ));
+    }
+    
+    private boolean aclHasPermission(Acl acl, String principalId, String permission) {
+        for (Ace ace : acl.getAces()) {
+            if (ace.getPrincipalId().equals(principalId) && aceContainsPermission(ace, permission))
+                return true;            
+        }
+        return false;
+    }
+    
+    private boolean aclHasNoPermission(Acl acl, String principalId) {
+        if (null == acl)
+            return false;
+        
+        for (Ace ace : acl.getAces()) {
+            if (ace.getPrincipalId().equals(principalId))
+                return false;
+        }
+        return true;
+    }
+    
+    private boolean aceContainsPermission(Ace ace, String permission) {
+        for (String acePerm : ace.getPermissions())
+            if (permission.equals(acePerm))
+                return true;
+        return false;
+    }
+}

Modified: chemistry/opencmis/branches/android/chemistry-opencmis-server/chemistry-opencmis-server-inmemory/src/test/java/org/apache/chemistry/opencmis/inmemory/AclTest.java
URL: http://svn.apache.org/viewvc/chemistry/opencmis/branches/android/chemistry-opencmis-server/chemistry-opencmis-server-inmemory/src/test/java/org/apache/chemistry/opencmis/inmemory/AclTest.java?rev=1293600&r1=1293599&r2=1293600&view=diff
==============================================================================
--- chemistry/opencmis/branches/android/chemistry-opencmis-server/chemistry-opencmis-server-inmemory/src/test/java/org/apache/chemistry/opencmis/inmemory/AclTest.java (original)
+++ chemistry/opencmis/branches/android/chemistry-opencmis-server/chemistry-opencmis-server-inmemory/src/test/java/org/apache/chemistry/opencmis/inmemory/AclTest.java Sat Feb 25 13:43:31 2012
@@ -1,302 +1,302 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you 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.opencmis.inmemory;
-
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertFalse;
-import static org.junit.Assert.assertTrue;
-import static org.junit.Assert.fail;
-
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.List;
-
-import org.apache.chemistry.opencmis.commons.data.Ace;
-import org.apache.chemistry.opencmis.commons.data.Acl;
-import org.apache.chemistry.opencmis.commons.impl.dataobjects.AccessControlEntryImpl;
-import org.apache.chemistry.opencmis.commons.impl.dataobjects.AccessControlListImpl;
-import org.apache.chemistry.opencmis.commons.impl.dataobjects.AccessControlPrincipalDataImpl;
-import org.apache.chemistry.opencmis.commons.impl.jaxb.EnumBasicPermissions;
-import org.apache.chemistry.opencmis.inmemory.storedobj.impl.InMemoryAce;
-import org.apache.chemistry.opencmis.inmemory.storedobj.impl.InMemoryAcl;
-import org.apache.chemistry.opencmis.inmemory.storedobj.impl.Permission;
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
-import org.junit.Test;
-
-public class AclTest {
-
-    private static final Log LOG = LogFactory.getLog(AclTest.class);
-
-    final static String ANDREAS = "andreas";
-    final static String BERTA = "berta";
-    final static String CHRISTIAN = "christian";
-    final static String DOROTHEE = "dorothee";
-    
-    final InMemoryAce aceN = new InMemoryAce(ANDREAS, Permission.NONE);
-    final InMemoryAce aceR = new InMemoryAce(BERTA, Permission.READ);
-    final InMemoryAce aceW = new InMemoryAce(CHRISTIAN, Permission.WRITE);
-    final InMemoryAce aceA = new InMemoryAce(DOROTHEE, Permission.ALL);
-
-    @Test
-    public void testCreateAce() {
-        InMemoryAce ace;
-        try {
-            ace = new InMemoryAce(null, Permission.NONE);
-            fail("create an ACE with null principalId should fail.");
-        } catch (RuntimeException e) {            
-        }
-
-        try {
-            ace = new InMemoryAce("xxx", null);
-            fail("create an ACE with null permission should fail.");
-        } catch (RuntimeException e) {            
-        }
-
-    }
-    
-    @Test
-    public void testCreate() {
-    
-        InMemoryAcl acl = new InMemoryAcl();
-        acl.addAce(aceA);
-        assertEquals(1, acl.getAces().size());
-        assertTrue(acl.getAces().get(0) == aceA);
-    
-        acl = new InMemoryAcl(createAceList());
-        LOG.debug(acl);
-        
-        assertEquals(2, acl.getAces().size());
-        assertTrue(acl.getAces().get(0) == aceR);
-        assertTrue(acl.getAces().get(1) == aceA);
-    
-        acl = createDefaultAcl();
-        checkDefaultAcl(acl);
-        
-        try {
-            List<InMemoryAce> aces = createAceList();
-            aces.add(null);
-            acl = new InMemoryAcl(aces);
-            fail("create an ACL with a null ACE should fail.");
-        } catch (RuntimeException e) {            
-        }
-    }
-    
-    @Test
-    public void testAdd() {
-        InMemoryAcl acl = new InMemoryAcl();
-        acl.addAce(aceR);
-        assertEquals(1, acl.getAces().size());
-        assertTrue(acl.getAces().get(0) == aceR);
-        acl.addAce(aceW);
-        assertEquals(2, acl.getAces().size());
-        assertTrue(acl.getAces().get(0) == aceR);
-        assertTrue(acl.getAces().get(1) == aceW);
-        acl.addAce(aceN);
-        assertEquals(3, acl.getAces().size());
-        assertTrue(acl.getAces().get(0) == aceN);
-        assertTrue(acl.getAces().get(1) == aceR);
-        assertTrue(acl.getAces().get(2) == aceW);
-        acl.addAce(aceA);
-        assertEquals(4, acl.getAces().size());
-        assertTrue(acl.getAces().get(0) == aceN);
-        assertTrue(acl.getAces().get(1) == aceR);
-        assertTrue(acl.getAces().get(2) == aceW);
-        assertTrue(acl.getAces().get(3) == aceA);    
-
-        assertFalse("Adding an existing ACE to an ACL should fail.", acl.addAce(aceN));
-        assertFalse("Adding null to an ACL should fail.", acl.addAce(null));
-    }
-    
-    @Test
-    public void testRemove() {
-        InMemoryAcl acl = createDefaultAcl();
-        checkDefaultAcl(acl);
-
-        acl.removeAce(aceR);
-        assertEquals(3, acl.getAces().size());
-        assertTrue(acl.getAces().get(0) == aceN);
-        assertTrue(acl.getAces().get(1) == aceW);
-        assertTrue(acl.getAces().get(2) == aceA);
-        acl.removeAce(aceW);
-        assertEquals(2, acl.getAces().size());
-        assertTrue(acl.getAces().get(0) == aceN);
-        assertTrue(acl.getAces().get(1) == aceA);
-        acl.removeAce(aceN);
-        assertEquals(1, acl.getAces().size());
-        assertTrue(acl.getAces().get(0) == aceA);
-        acl.removeAce(aceA);
-        assertEquals(0, acl.getAces().size());
-        
-        acl = createDefaultAcl();
-        final InMemoryAce ace = new InMemoryAce("xyu", Permission.ALL);
-        assertFalse("Removing an unknown ACE from an ACL should fail.", acl.removeAce(ace));
-        assertFalse("Removing null from an ACL should fail.", acl.removeAce(null));
-    }
-
-    @Test
-    public void testMerge() {
-        final InMemoryAce aceNew = new InMemoryAce("Hugo", Permission.WRITE); // will be added
-        final InMemoryAce aceRCopy = new InMemoryAce(BERTA, Permission.READ); // is same
-        final InMemoryAce aceChange = new InMemoryAce(CHRISTIAN, Permission.ALL); // changes permission
-
-        InMemoryAcl acl1 = createDefaultAcl();
-        InMemoryAcl acl2 = new InMemoryAcl(new ArrayList<InMemoryAce>() {{ add(aceNew); add(aceRCopy);  add(aceChange); }});
-        acl1.mergeAcl(acl2);
-        assertEquals(5, acl1.getAces().size());
-        assertEquals(Permission.NONE, acl1.getPermission(ANDREAS));
-        assertEquals(Permission.READ, acl1.getPermission(BERTA));
-        assertEquals(Permission.ALL, acl1.getPermission(CHRISTIAN));
-        assertEquals(Permission.ALL, acl1.getPermission(DOROTHEE));
-        assertEquals(Permission.WRITE, acl1.getPermission("Hugo"));
-    }
-    
-    @Test
-    public void testAclEquality() {
-        final InMemoryAce aceNew = new InMemoryAce("Hugo", Permission.WRITE);
-        final InMemoryAce aceRCopy = new InMemoryAce(BERTA, Permission.READ);
-
-        InMemoryAcl acl1 = createDefaultAcl();
-        InMemoryAcl acl2 = new InMemoryAcl(new ArrayList<InMemoryAce>() {{ add(aceRCopy); add(aceA);  add(aceW);  add(aceN); }});
-        InMemoryAcl acl3 = new InMemoryAcl(new ArrayList<InMemoryAce>() {{ add(aceR); add(aceNew);  add(aceW);  add(aceN); }});
-        assertEquals(acl1, acl2);
-        assertFalse(acl1.equals(acl3));      
-    }
-    
-    
-    @Test
-    public void testCheckPermissions() {
-        InMemoryAcl acl = createDefaultAcl();
-
-        assertTrue(acl.hasPermission(ANDREAS, Permission.NONE));
-        assertFalse(acl.hasPermission(ANDREAS, Permission.READ));
-        assertFalse(acl.hasPermission(ANDREAS, Permission.WRITE));
-        assertFalse(acl.hasPermission(ANDREAS, Permission.ALL));
-
-        assertTrue(acl.hasPermission(BERTA, Permission.NONE));
-        assertTrue(acl.hasPermission(BERTA, Permission.READ));
-        assertFalse(acl.hasPermission(BERTA, Permission.WRITE));
-        assertFalse(acl.hasPermission(BERTA, Permission.ALL));
-    
-        assertTrue(acl.hasPermission(CHRISTIAN, Permission.NONE));
-        assertTrue(acl.hasPermission(CHRISTIAN, Permission.READ));
-        assertTrue(acl.hasPermission(CHRISTIAN, Permission.WRITE));
-        assertFalse(acl.hasPermission(CHRISTIAN, Permission.ALL));
-
-        assertTrue(acl.hasPermission(DOROTHEE, Permission.NONE));
-        assertTrue(acl.hasPermission(DOROTHEE, Permission.READ));
-        assertTrue(acl.hasPermission(DOROTHEE, Permission.WRITE));
-        assertTrue(acl.hasPermission(DOROTHEE, Permission.ALL));
-    }
-
-    @Test
-    public void testConvertFomCmisAcl() {
-        List<Ace> aces = Arrays.asList(new Ace[] { createAce(ANDREAS, EnumBasicPermissions.CMIS_READ.value()), createAce(DOROTHEE, EnumBasicPermissions.CMIS_WRITE.value()) });
-        AccessControlListImpl cAcl = new AccessControlListImpl(aces);
-        InMemoryAcl acl = InMemoryAcl.createFromCommonsAcl(cAcl);        
-        assertEquals(2, acl.size());
-        assertEquals(Permission.READ, acl.getPermission(ANDREAS));
-        assertEquals(Permission.WRITE, acl.getPermission(DOROTHEE));
-        
-        try {
-            List<Ace> aces2 = Arrays.asList(new Ace[] { new AccessControlEntryImpl(null,  Arrays.asList(new String[] { EnumBasicPermissions.CMIS_READ.value()}))});
-            acl = InMemoryAcl.createFromCommonsAcl(new AccessControlListImpl(aces2));
-            fail("create Ace will null principal should raise exception.");
-        } catch (RuntimeException e) { }
-        try {
-            List<Ace> aces2 = Arrays.asList(new Ace[] { new AccessControlEntryImpl(new AccessControlPrincipalDataImpl(ANDREAS),  null)});
-            acl = InMemoryAcl.createFromCommonsAcl(new AccessControlListImpl(aces2));
-            fail("create Ace will null permission should raise exception.");
-        } catch (RuntimeException e) { }
-    }
-    
-    
-    @Test
-    public void testConvertToCmisAcl() {
-        Ace ace = aceN.toCommonsAce();
-        assertEquals(ANDREAS, ace.getPrincipalId());
-        assertEquals(1, ace.getPermissions().size());
-        assertEquals("", ace.getPermissions().get(0));
-
-        ace = aceR.toCommonsAce();
-        assertEquals(BERTA, ace.getPrincipalId());
-        assertEquals(1, ace.getPermissions().size());
-        assertEquals(EnumBasicPermissions.CMIS_READ.value(), ace.getPermissions().get(0));
-
-        ace = aceW.toCommonsAce();
-        assertEquals(CHRISTIAN, ace.getPrincipalId());
-        assertEquals(1, ace.getPermissions().size());
-        assertEquals(EnumBasicPermissions.CMIS_WRITE.value(), ace.getPermissions().get(0));
-
-        ace = aceA.toCommonsAce();
-        assertEquals(DOROTHEE, ace.getPrincipalId());
-        assertEquals(1, ace.getPermissions().size());
-        assertEquals(EnumBasicPermissions.CMIS_ALL.value(), ace.getPermissions().get(0));
-        
-        InMemoryAcl acl = createDefaultAcl();
-        Acl commonsAcl = acl.toCommonsAcl();
-        assertEquals(4, commonsAcl.getAces().size());
-        assertTrue(hasCommonsAce(commonsAcl, ANDREAS, ""));
-        assertFalse(hasCommonsAce(commonsAcl, ANDREAS, EnumBasicPermissions.CMIS_READ.value()));
-        assertFalse(hasCommonsAce(commonsAcl, ANDREAS, EnumBasicPermissions.CMIS_WRITE.value()));
-        assertFalse(hasCommonsAce(commonsAcl, ANDREAS, EnumBasicPermissions.CMIS_ALL.value()));
-        assertTrue(hasCommonsAce(commonsAcl, BERTA, EnumBasicPermissions.CMIS_READ.value()));
-        assertTrue(hasCommonsAce(commonsAcl, CHRISTIAN, EnumBasicPermissions.CMIS_WRITE.value()));
-        assertTrue(hasCommonsAce(commonsAcl, DOROTHEE, EnumBasicPermissions.CMIS_ALL.value()));
-    }
-    
-    @Test
-    public void testCloneAcl() {
-        InMemoryAcl acl = createDefaultAcl();
-        InMemoryAcl acl2 = acl.clone();
-        assertFalse(acl == acl2);
-        assertEquals(acl, acl2);
-    }
-    
-    private InMemoryAcl createDefaultAcl() {
-        return  new InMemoryAcl(new ArrayList<InMemoryAce>() {{ add(aceA); add(aceR);  add(aceN);  add(aceW); }});
-    }
-    
-    private void checkDefaultAcl(InMemoryAcl acl) {
-        assertEquals(4, acl.getAces().size());
-        assertTrue(acl.getAces().get(0) == aceN);
-        assertTrue(acl.getAces().get(1) == aceR);
-        assertTrue(acl.getAces().get(2) == aceW);
-        assertTrue(acl.getAces().get(3) == aceA);        
-    }
-
-    private List<InMemoryAce> createAceList() {
-        return new ArrayList<InMemoryAce>() {{ add(aceA); add(aceR); }};
-    }
-    
-    private Ace createAce(String principalId, String permission) {
-        AccessControlEntryImpl ace = new AccessControlEntryImpl(new AccessControlPrincipalDataImpl(principalId),
-                Arrays.asList(new String[] { permission }));
-        return ace;
-    }
-
-    private boolean hasCommonsAce(Acl acl, String principalId, String permission) {
-        for (Ace ace : acl.getAces()) {
-            if (ace.getPrincipalId().equals(principalId) && ace.getPermissions().get(0).equals(permission))
-                return true;
-        }
-        return false;
-        
-    }
-}
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you 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.opencmis.inmemory;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertTrue;
+import static org.junit.Assert.fail;
+
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.List;
+
+import org.apache.chemistry.opencmis.commons.data.Ace;
+import org.apache.chemistry.opencmis.commons.data.Acl;
+import org.apache.chemistry.opencmis.commons.impl.dataobjects.AccessControlEntryImpl;
+import org.apache.chemistry.opencmis.commons.impl.dataobjects.AccessControlListImpl;
+import org.apache.chemistry.opencmis.commons.impl.dataobjects.AccessControlPrincipalDataImpl;
+import org.apache.chemistry.opencmis.commons.impl.jaxb.EnumBasicPermissions;
+import org.apache.chemistry.opencmis.inmemory.storedobj.impl.InMemoryAce;
+import org.apache.chemistry.opencmis.inmemory.storedobj.impl.InMemoryAcl;
+import org.apache.chemistry.opencmis.inmemory.storedobj.impl.Permission;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.junit.Test;
+
+public class AclTest {
+
+    private static final Logger LOG = LoggerFactory.getLogger(AclTest.class);
+
+    final static String ANDREAS = "andreas";
+    final static String BERTA = "berta";
+    final static String CHRISTIAN = "christian";
+    final static String DOROTHEE = "dorothee";
+    
+    final InMemoryAce aceN = new InMemoryAce(ANDREAS, Permission.NONE);
+    final InMemoryAce aceR = new InMemoryAce(BERTA, Permission.READ);
+    final InMemoryAce aceW = new InMemoryAce(CHRISTIAN, Permission.WRITE);
+    final InMemoryAce aceA = new InMemoryAce(DOROTHEE, Permission.ALL);
+
+    @Test
+    public void testCreateAce() {
+        InMemoryAce ace;
+        try {
+            ace = new InMemoryAce(null, Permission.NONE);
+            fail("create an ACE with null principalId should fail.");
+        } catch (RuntimeException e) {            
+        }
+
+        try {
+            ace = new InMemoryAce("xxx", null);
+            fail("create an ACE with null permission should fail.");
+        } catch (RuntimeException e) {            
+        }
+
+    }
+    
+    @Test
+    public void testCreate() {
+    
+        InMemoryAcl acl = new InMemoryAcl();
+        acl.addAce(aceA);
+        assertEquals(1, acl.getAces().size());
+        assertTrue(acl.getAces().get(0) == aceA);
+    
+        acl = new InMemoryAcl(createAceList());
+        LOG.debug(acl.toString());
+        
+        assertEquals(2, acl.getAces().size());
+        assertTrue(acl.getAces().get(0) == aceR);
+        assertTrue(acl.getAces().get(1) == aceA);
+    
+        acl = createDefaultAcl();
+        checkDefaultAcl(acl);
+        
+        try {
+            List<InMemoryAce> aces = createAceList();
+            aces.add(null);
+            acl = new InMemoryAcl(aces);
+            fail("create an ACL with a null ACE should fail.");
+        } catch (RuntimeException e) {            
+        }
+    }
+    
+    @Test
+    public void testAdd() {
+        InMemoryAcl acl = new InMemoryAcl();
+        acl.addAce(aceR);
+        assertEquals(1, acl.getAces().size());
+        assertTrue(acl.getAces().get(0) == aceR);
+        acl.addAce(aceW);
+        assertEquals(2, acl.getAces().size());
+        assertTrue(acl.getAces().get(0) == aceR);
+        assertTrue(acl.getAces().get(1) == aceW);
+        acl.addAce(aceN);
+        assertEquals(3, acl.getAces().size());
+        assertTrue(acl.getAces().get(0) == aceN);
+        assertTrue(acl.getAces().get(1) == aceR);
+        assertTrue(acl.getAces().get(2) == aceW);
+        acl.addAce(aceA);
+        assertEquals(4, acl.getAces().size());
+        assertTrue(acl.getAces().get(0) == aceN);
+        assertTrue(acl.getAces().get(1) == aceR);
+        assertTrue(acl.getAces().get(2) == aceW);
+        assertTrue(acl.getAces().get(3) == aceA);    
+
+        assertFalse("Adding an existing ACE to an ACL should fail.", acl.addAce(aceN));
+        assertFalse("Adding null to an ACL should fail.", acl.addAce(null));
+    }
+    
+    @Test
+    public void testRemove() {
+        InMemoryAcl acl = createDefaultAcl();
+        checkDefaultAcl(acl);
+
+        acl.removeAce(aceR);
+        assertEquals(3, acl.getAces().size());
+        assertTrue(acl.getAces().get(0) == aceN);
+        assertTrue(acl.getAces().get(1) == aceW);
+        assertTrue(acl.getAces().get(2) == aceA);
+        acl.removeAce(aceW);
+        assertEquals(2, acl.getAces().size());
+        assertTrue(acl.getAces().get(0) == aceN);
+        assertTrue(acl.getAces().get(1) == aceA);
+        acl.removeAce(aceN);
+        assertEquals(1, acl.getAces().size());
+        assertTrue(acl.getAces().get(0) == aceA);
+        acl.removeAce(aceA);
+        assertEquals(0, acl.getAces().size());
+        
+        acl = createDefaultAcl();
+        final InMemoryAce ace = new InMemoryAce("xyu", Permission.ALL);
+        assertFalse("Removing an unknown ACE from an ACL should fail.", acl.removeAce(ace));
+        assertFalse("Removing null from an ACL should fail.", acl.removeAce(null));
+    }
+
+    @Test
+    public void testMerge() {
+        final InMemoryAce aceNew = new InMemoryAce("Hugo", Permission.WRITE); // will be added
+        final InMemoryAce aceRCopy = new InMemoryAce(BERTA, Permission.READ); // is same
+        final InMemoryAce aceChange = new InMemoryAce(CHRISTIAN, Permission.ALL); // changes permission
+
+        InMemoryAcl acl1 = createDefaultAcl();
+        InMemoryAcl acl2 = new InMemoryAcl(new ArrayList<InMemoryAce>() {{ add(aceNew); add(aceRCopy);  add(aceChange); }});
+        acl1.mergeAcl(acl2);
+        assertEquals(5, acl1.getAces().size());
+        assertEquals(Permission.NONE, acl1.getPermission(ANDREAS));
+        assertEquals(Permission.READ, acl1.getPermission(BERTA));
+        assertEquals(Permission.ALL, acl1.getPermission(CHRISTIAN));
+        assertEquals(Permission.ALL, acl1.getPermission(DOROTHEE));
+        assertEquals(Permission.WRITE, acl1.getPermission("Hugo"));
+    }
+    
+    @Test
+    public void testAclEquality() {
+        final InMemoryAce aceNew = new InMemoryAce("Hugo", Permission.WRITE);
+        final InMemoryAce aceRCopy = new InMemoryAce(BERTA, Permission.READ);
+
+        InMemoryAcl acl1 = createDefaultAcl();
+        InMemoryAcl acl2 = new InMemoryAcl(new ArrayList<InMemoryAce>() {{ add(aceRCopy); add(aceA);  add(aceW);  add(aceN); }});
+        InMemoryAcl acl3 = new InMemoryAcl(new ArrayList<InMemoryAce>() {{ add(aceR); add(aceNew);  add(aceW);  add(aceN); }});
+        assertEquals(acl1, acl2);
+        assertFalse(acl1.equals(acl3));      
+    }
+    
+    
+    @Test
+    public void testCheckPermissions() {
+        InMemoryAcl acl = createDefaultAcl();
+
+        assertTrue(acl.hasPermission(ANDREAS, Permission.NONE));
+        assertFalse(acl.hasPermission(ANDREAS, Permission.READ));
+        assertFalse(acl.hasPermission(ANDREAS, Permission.WRITE));
+        assertFalse(acl.hasPermission(ANDREAS, Permission.ALL));
+
+        assertTrue(acl.hasPermission(BERTA, Permission.NONE));
+        assertTrue(acl.hasPermission(BERTA, Permission.READ));
+        assertFalse(acl.hasPermission(BERTA, Permission.WRITE));
+        assertFalse(acl.hasPermission(BERTA, Permission.ALL));
+    
+        assertTrue(acl.hasPermission(CHRISTIAN, Permission.NONE));
+        assertTrue(acl.hasPermission(CHRISTIAN, Permission.READ));
+        assertTrue(acl.hasPermission(CHRISTIAN, Permission.WRITE));
+        assertFalse(acl.hasPermission(CHRISTIAN, Permission.ALL));
+
+        assertTrue(acl.hasPermission(DOROTHEE, Permission.NONE));
+        assertTrue(acl.hasPermission(DOROTHEE, Permission.READ));
+        assertTrue(acl.hasPermission(DOROTHEE, Permission.WRITE));
+        assertTrue(acl.hasPermission(DOROTHEE, Permission.ALL));
+    }
+
+    @Test
+    public void testConvertFomCmisAcl() {
+        List<Ace> aces = Arrays.asList(new Ace[] { createAce(ANDREAS, EnumBasicPermissions.CMIS_READ.value()), createAce(DOROTHEE, EnumBasicPermissions.CMIS_WRITE.value()) });
+        AccessControlListImpl cAcl = new AccessControlListImpl(aces);
+        InMemoryAcl acl = InMemoryAcl.createFromCommonsAcl(cAcl);        
+        assertEquals(2, acl.size());
+        assertEquals(Permission.READ, acl.getPermission(ANDREAS));
+        assertEquals(Permission.WRITE, acl.getPermission(DOROTHEE));
+        
+        try {
+            List<Ace> aces2 = Arrays.asList(new Ace[] { new AccessControlEntryImpl(null,  Arrays.asList(new String[] { EnumBasicPermissions.CMIS_READ.value()}))});
+            acl = InMemoryAcl.createFromCommonsAcl(new AccessControlListImpl(aces2));
+            fail("create Ace will null principal should raise exception.");
+        } catch (RuntimeException e) { }
+        try {
+            List<Ace> aces2 = Arrays.asList(new Ace[] { new AccessControlEntryImpl(new AccessControlPrincipalDataImpl(ANDREAS),  null)});
+            acl = InMemoryAcl.createFromCommonsAcl(new AccessControlListImpl(aces2));
+            fail("create Ace will null permission should raise exception.");
+        } catch (RuntimeException e) { }
+    }
+    
+    
+    @Test
+    public void testConvertToCmisAcl() {
+        Ace ace = aceN.toCommonsAce();
+        assertEquals(ANDREAS, ace.getPrincipalId());
+        assertEquals(1, ace.getPermissions().size());
+        assertEquals("", ace.getPermissions().get(0));
+
+        ace = aceR.toCommonsAce();
+        assertEquals(BERTA, ace.getPrincipalId());
+        assertEquals(1, ace.getPermissions().size());
+        assertEquals(EnumBasicPermissions.CMIS_READ.value(), ace.getPermissions().get(0));
+
+        ace = aceW.toCommonsAce();
+        assertEquals(CHRISTIAN, ace.getPrincipalId());
+        assertEquals(1, ace.getPermissions().size());
+        assertEquals(EnumBasicPermissions.CMIS_WRITE.value(), ace.getPermissions().get(0));
+
+        ace = aceA.toCommonsAce();
+        assertEquals(DOROTHEE, ace.getPrincipalId());
+        assertEquals(1, ace.getPermissions().size());
+        assertEquals(EnumBasicPermissions.CMIS_ALL.value(), ace.getPermissions().get(0));
+        
+        InMemoryAcl acl = createDefaultAcl();
+        Acl commonsAcl = acl.toCommonsAcl();
+        assertEquals(4, commonsAcl.getAces().size());
+        assertTrue(hasCommonsAce(commonsAcl, ANDREAS, ""));
+        assertFalse(hasCommonsAce(commonsAcl, ANDREAS, EnumBasicPermissions.CMIS_READ.value()));
+        assertFalse(hasCommonsAce(commonsAcl, ANDREAS, EnumBasicPermissions.CMIS_WRITE.value()));
+        assertFalse(hasCommonsAce(commonsAcl, ANDREAS, EnumBasicPermissions.CMIS_ALL.value()));
+        assertTrue(hasCommonsAce(commonsAcl, BERTA, EnumBasicPermissions.CMIS_READ.value()));
+        assertTrue(hasCommonsAce(commonsAcl, CHRISTIAN, EnumBasicPermissions.CMIS_WRITE.value()));
+        assertTrue(hasCommonsAce(commonsAcl, DOROTHEE, EnumBasicPermissions.CMIS_ALL.value()));
+    }
+    
+    @Test
+    public void testCloneAcl() {
+        InMemoryAcl acl = createDefaultAcl();
+        InMemoryAcl acl2 = acl.clone();
+        assertFalse(acl == acl2);
+        assertEquals(acl, acl2);
+    }
+    
+    private InMemoryAcl createDefaultAcl() {
+        return  new InMemoryAcl(new ArrayList<InMemoryAce>() {{ add(aceA); add(aceR);  add(aceN);  add(aceW); }});
+    }
+    
+    private void checkDefaultAcl(InMemoryAcl acl) {
+        assertEquals(4, acl.getAces().size());
+        assertTrue(acl.getAces().get(0) == aceN);
+        assertTrue(acl.getAces().get(1) == aceR);
+        assertTrue(acl.getAces().get(2) == aceW);
+        assertTrue(acl.getAces().get(3) == aceA);        
+    }
+
+    private List<InMemoryAce> createAceList() {
+        return new ArrayList<InMemoryAce>() {{ add(aceA); add(aceR); }};
+    }
+    
+    private Ace createAce(String principalId, String permission) {
+        AccessControlEntryImpl ace = new AccessControlEntryImpl(new AccessControlPrincipalDataImpl(principalId),
+                Arrays.asList(new String[] { permission }));
+        return ace;
+    }
+
+    private boolean hasCommonsAce(Acl acl, String principalId, String permission) {
+        for (Ace ace : acl.getAces()) {
+            if (ace.getPrincipalId().equals(principalId) && ace.getPermissions().get(0).equals(permission))
+                return true;
+        }
+        return false;
+        
+    }
+}

Modified: chemistry/opencmis/branches/android/chemistry-opencmis-server/chemistry-opencmis-server-inmemory/src/test/java/org/apache/chemistry/opencmis/inmemory/DiscoveryServiceTest.java
URL: http://svn.apache.org/viewvc/chemistry/opencmis/branches/android/chemistry-opencmis-server/chemistry-opencmis-server-inmemory/src/test/java/org/apache/chemistry/opencmis/inmemory/DiscoveryServiceTest.java?rev=1293600&r1=1293599&r2=1293600&view=diff
==============================================================================
--- chemistry/opencmis/branches/android/chemistry-opencmis-server/chemistry-opencmis-server-inmemory/src/test/java/org/apache/chemistry/opencmis/inmemory/DiscoveryServiceTest.java (original)
+++ chemistry/opencmis/branches/android/chemistry-opencmis-server/chemistry-opencmis-server-inmemory/src/test/java/org/apache/chemistry/opencmis/inmemory/DiscoveryServiceTest.java Sat Feb 25 13:43:31 2012
@@ -28,14 +28,14 @@ import org.apache.chemistry.opencmis.com
 import org.apache.chemistry.opencmis.commons.enums.IncludeRelationships;
 import org.apache.chemistry.opencmis.inmemory.ObjectServiceTest.ObjectTestTypeSystemCreator;
 import org.apache.chemistry.opencmis.util.repository.ObjectGenerator;
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 import org.junit.Before;
 import org.junit.Test;
 
 public class DiscoveryServiceTest extends AbstractServiceTest {
 
-    private static final Log log = LogFactory.getLog(DiscoveryServiceTest.class);
+    private static final Logger log = LoggerFactory.getLogger(DiscoveryServiceTest.class);
     private static final String TEST_FOLDER_TYPE_ID = ObjectServiceTest.TEST_FOLDER_TYPE_ID;
     private static final String TEST_DOCUMENT_TYPE_ID = ObjectServiceTest.TEST_DOCUMENT_TYPE_ID;
     private static final String TEST_FOLDER_STRING_PROP_ID = ObjectServiceTest.TEST_FOLDER_STRING_PROP_ID;

Modified: chemistry/opencmis/branches/android/chemistry-opencmis-server/chemistry-opencmis-server-inmemory/src/test/java/org/apache/chemistry/opencmis/inmemory/MultiFilingTest.java
URL: http://svn.apache.org/viewvc/chemistry/opencmis/branches/android/chemistry-opencmis-server/chemistry-opencmis-server-inmemory/src/test/java/org/apache/chemistry/opencmis/inmemory/MultiFilingTest.java?rev=1293600&r1=1293599&r2=1293600&view=diff
==============================================================================
--- chemistry/opencmis/branches/android/chemistry-opencmis-server/chemistry-opencmis-server-inmemory/src/test/java/org/apache/chemistry/opencmis/inmemory/MultiFilingTest.java (original)
+++ chemistry/opencmis/branches/android/chemistry-opencmis-server/chemistry-opencmis-server-inmemory/src/test/java/org/apache/chemistry/opencmis/inmemory/MultiFilingTest.java Sat Feb 25 13:43:31 2012
@@ -41,15 +41,15 @@ import org.apache.chemistry.opencmis.com
 import org.apache.chemistry.opencmis.commons.server.CallContext;
 import org.apache.chemistry.opencmis.commons.spi.Holder;
 import org.apache.chemistry.opencmis.inmemory.types.InMemoryFolderTypeDefinition;
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 import org.junit.After;
 import org.junit.Before;
 import org.junit.Test;
 
 public class MultiFilingTest extends AbstractServiceTest {
 
-    private static final Log LOG = LogFactory.getLog(MultiFilingTest.class);
+    private static final Logger LOG = LoggerFactory.getLogger(MultiFilingTest.class);
     private static final String DOCUMENT_TYPE_ID = UnitTestTypeSystemCreator.COMPLEX_TYPE;
     private static final String FOLDER_TYPE_ID = InMemoryFolderTypeDefinition.getRootFolderType().getId();
     private static final String UNFILED_DOC_NAME = "Unfiled document";

Modified: chemistry/opencmis/branches/android/chemistry-opencmis-server/chemistry-opencmis-server-inmemory/src/test/java/org/apache/chemistry/opencmis/inmemory/NavigationServiceTest.java
URL: http://svn.apache.org/viewvc/chemistry/opencmis/branches/android/chemistry-opencmis-server/chemistry-opencmis-server-inmemory/src/test/java/org/apache/chemistry/opencmis/inmemory/NavigationServiceTest.java?rev=1293600&r1=1293599&r2=1293600&view=diff
==============================================================================
--- chemistry/opencmis/branches/android/chemistry-opencmis-server/chemistry-opencmis-server-inmemory/src/test/java/org/apache/chemistry/opencmis/inmemory/NavigationServiceTest.java (original)
+++ chemistry/opencmis/branches/android/chemistry-opencmis-server/chemistry-opencmis-server-inmemory/src/test/java/org/apache/chemistry/opencmis/inmemory/NavigationServiceTest.java Sat Feb 25 13:43:31 2012
@@ -37,8 +37,8 @@ import org.apache.chemistry.opencmis.com
 import org.apache.chemistry.opencmis.commons.exceptions.CmisInvalidArgumentException;
 import org.apache.chemistry.opencmis.inmemory.types.InMemoryFolderTypeDefinition;
 import org.apache.chemistry.opencmis.util.repository.ObjectGenerator;
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 import org.junit.After;
 import org.junit.Before;
 import org.junit.Test;
@@ -47,7 +47,7 @@ import org.junit.Test;
  * @author Jens
  */
 public class NavigationServiceTest extends AbstractServiceTest {
-    private static final Log log = LogFactory.getLog(NavigationServiceTest.class);
+    private static final Logger log = LoggerFactory.getLogger(NavigationServiceTest.class);
     private static final int NUM_ROOT_FOLDERS = 10;
     private String fLevel1FolderId;
 

Modified: chemistry/opencmis/branches/android/chemistry-opencmis-server/chemistry-opencmis-server-inmemory/src/test/java/org/apache/chemistry/opencmis/inmemory/ObjectServiceTest.java
URL: http://svn.apache.org/viewvc/chemistry/opencmis/branches/android/chemistry-opencmis-server/chemistry-opencmis-server-inmemory/src/test/java/org/apache/chemistry/opencmis/inmemory/ObjectServiceTest.java?rev=1293600&r1=1293599&r2=1293600&view=diff
==============================================================================
--- chemistry/opencmis/branches/android/chemistry-opencmis-server/chemistry-opencmis-server-inmemory/src/test/java/org/apache/chemistry/opencmis/inmemory/ObjectServiceTest.java (original)
+++ chemistry/opencmis/branches/android/chemistry-opencmis-server/chemistry-opencmis-server-inmemory/src/test/java/org/apache/chemistry/opencmis/inmemory/ObjectServiceTest.java Sat Feb 25 13:43:31 2012
@@ -65,8 +65,8 @@ import org.apache.chemistry.opencmis.inm
 import org.apache.chemistry.opencmis.inmemory.types.InMemoryFolderTypeDefinition;
 import org.apache.chemistry.opencmis.inmemory.types.PropertyCreationHelper;
 import org.apache.chemistry.opencmis.util.repository.ObjectGenerator;
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 import org.junit.After;
 import org.junit.Before;
 import org.junit.Test;
@@ -77,7 +77,7 @@ import org.junit.Test;
 
 public class ObjectServiceTest extends AbstractServiceTest {
 
-    private static final Log log = LogFactory.getLog(ObjectServiceTest.class);
+    private static final Logger log = LoggerFactory.getLogger(ObjectServiceTest.class);
     public static final String TEST_FOLDER_TYPE_ID = "MyFolderType";
     public static final String TEST_DOCUMENT_TYPE_ID = "MyDocumentType";
     public static final String TEST_DOC_TYPE_WITH_DEFAULTS_ID = "DocumentTypeWithDefault";