Author: bdekruijff at gmail.com
Date: Thu Nov 25 19:41:47 2010
New Revision: 445

Log:
AMDATU-177 processed code review: naming / logging / dead code / additional 
unit test for hashcode equality

Modified:
   
trunk/amdatu-core/useradminstore-fs/src/main/java/org/amdatu/core/useradminstore/fs/internal/FSRole.java
   
trunk/amdatu-core/useradminstore-fs/src/main/java/org/amdatu/core/useradminstore/fs/internal/FSRoleNameList.java
   
trunk/amdatu-core/useradminstore-fs/src/main/java/org/amdatu/core/useradminstore/fs/internal/FSRoleStorage.java
   
trunk/amdatu-core/useradminstore-fs/src/main/java/org/amdatu/core/useradminstore/fs/service/FSUserAdminStorageProvider.java
   
trunk/amdatu-core/useradminstore-fs/src/test/java/org/amdatu/core/useradminstore/fs/service/FSUserAdminStorageProviderTest.java

Modified: 
trunk/amdatu-core/useradminstore-fs/src/main/java/org/amdatu/core/useradminstore/fs/internal/FSRole.java
==============================================================================
--- 
trunk/amdatu-core/useradminstore-fs/src/main/java/org/amdatu/core/useradminstore/fs/internal/FSRole.java
    (original)
+++ 
trunk/amdatu-core/useradminstore-fs/src/main/java/org/amdatu/core/useradminstore/fs/internal/FSRole.java
    Thu Nov 25 19:41:47 2010
@@ -27,8 +27,6 @@
     protected String m_name;
     protected Dictionary m_properties;
 
-    protected FSRoleStorage m_internalRoleFile;
-
     public String getName() {
         return m_name;
     }
@@ -66,12 +64,4 @@
         }
         return null;
     }
-
-    public FSRoleStorage getInternalRoleFile() {
-        return m_internalRoleFile;
-    }
-
-    public void setInternalRoleFile(final FSRoleStorage internalRoleFile) {
-        m_internalRoleFile = internalRoleFile;
-    }
 }

Modified: 
trunk/amdatu-core/useradminstore-fs/src/main/java/org/amdatu/core/useradminstore/fs/internal/FSRoleNameList.java
==============================================================================
--- 
trunk/amdatu-core/useradminstore-fs/src/main/java/org/amdatu/core/useradminstore/fs/internal/FSRoleNameList.java
    (original)
+++ 
trunk/amdatu-core/useradminstore-fs/src/main/java/org/amdatu/core/useradminstore/fs/internal/FSRoleNameList.java
    Thu Nov 25 19:41:47 2010
@@ -28,7 +28,7 @@
 import org.ops4j.pax.useradmin.service.spi.StorageException;
 
 /**
- * Implementation of a persistent list of tenant identifiers on disk.
+ * Implementation of a persistent list of role names on disk.
  */
 public final class FSRoleNameList {
 
@@ -62,7 +62,7 @@
         }
     }
 
-    public synchronized void removeTenantId(final String roleName) throws 
StorageException {
+    public synchronized void removeRoleName(final String roleName) throws 
StorageException {
         try {
             if (m_roleNameList.contains(roleName)) {
                 m_roleNameList.remove(roleName);

Modified: 
trunk/amdatu-core/useradminstore-fs/src/main/java/org/amdatu/core/useradminstore/fs/internal/FSRoleStorage.java
==============================================================================
--- 
trunk/amdatu-core/useradminstore-fs/src/main/java/org/amdatu/core/useradminstore/fs/internal/FSRoleStorage.java
     (original)
+++ 
trunk/amdatu-core/useradminstore-fs/src/main/java/org/amdatu/core/useradminstore/fs/internal/FSRoleStorage.java
     Thu Nov 25 19:41:47 2010
@@ -83,7 +83,6 @@
                 final int numberOfUsers = ois.readInt();
                 for (int i = 0; i < numberOfUsers; i++) {
                     FSRole role = readRole(ois);
-                    role.setInternalRoleFile(this);
                     m_roles.put(role.getName(), role);
                 }
             }

Modified: 
trunk/amdatu-core/useradminstore-fs/src/main/java/org/amdatu/core/useradminstore/fs/service/FSUserAdminStorageProvider.java
==============================================================================
--- 
trunk/amdatu-core/useradminstore-fs/src/main/java/org/amdatu/core/useradminstore/fs/service/FSUserAdminStorageProvider.java
 (original)
+++ 
trunk/amdatu-core/useradminstore-fs/src/main/java/org/amdatu/core/useradminstore/fs/service/FSUserAdminStorageProvider.java
 Thu Nov 25 19:41:47 2010
@@ -78,6 +78,9 @@
         }
         m_dataDirectory = dataDirectory;
         m_roleNamelist = new FSRoleNameList(new File(m_dataDirectory, 
ENTITYLIST_FILENAME));
+
+        if (m_logService != null)
+            m_logService.log(LogService.LOG_DEBUG, "Datadirectory set to: " + 
m_dataDirectory.getAbsolutePath());
     }
 
     /*
@@ -87,10 +90,15 @@
     public synchronized void start() throws StorageException {
         // by contract DM ConfigurationDependency contract dataDirectory has
         // been set through the updated method.
+        if (m_logService != null)
+            m_logService.log(LogService.LOG_INFO, "Filesystem UserAdmin 
storage provider started");
     }
 
     public synchronized void stop() {
         m_roleNamelist = null;
+        
+        if (m_logService != null)
+            m_logService.log(LogService.LOG_INFO, "Filesystem UserAdmin 
storage provider stopped");
     }
 
     /*
@@ -189,13 +197,13 @@
         final FSRoleStorage internalRoleFile = getStorageFile(role.getName());
         final FSRole internalRole = internalRoleFile.getRole(role.getName());
         if (internalRole != null) {
-            if (internalRole.getType() == role.USER) {
+            if (internalRole.getType() == Role.USER) {
                 internalRoleFile.removeRole(new FSUser((User) role));
             }
-            else if (internalRole.getType() == role.GROUP) {
+            else if (internalRole.getType() == Role.GROUP) {
                 internalRoleFile.removeRole(new FSGroup((Group) role));
             }
-            m_roleNamelist.removeTenantId(role.getName());
+            m_roleNamelist.removeRoleName(role.getName());
             internalRoleFile.save();
             return true;
         }

Modified: 
trunk/amdatu-core/useradminstore-fs/src/test/java/org/amdatu/core/useradminstore/fs/service/FSUserAdminStorageProviderTest.java
==============================================================================
--- 
trunk/amdatu-core/useradminstore-fs/src/test/java/org/amdatu/core/useradminstore/fs/service/FSUserAdminStorageProviderTest.java
     (original)
+++ 
trunk/amdatu-core/useradminstore-fs/src/test/java/org/amdatu/core/useradminstore/fs/service/FSUserAdminStorageProviderTest.java
     Thu Nov 25 19:41:47 2010
@@ -259,4 +259,41 @@
         User matchingUser3 = 
m_userAdminStorageProvider.getUser(m_userAdminFactory, "oogkleur", "groen");
         Assert.assertNull("Expected no matching user", matchingUser3);
     }
+
+    /**
+     * Testing behavior on tenantEntities with same hashcode() for the id. 
This is based on knowledge of the
+     * implementation but as it is a likely pitfall let's test it anyway to 
catch future mistakes.
+     * 
+     * @throws StorageException
+     */
+    @Test
+    public void testWithEqualHashcodes() throws StorageException {
+
+        // Assert the reason for this test
+        Assert.assertEquals("BB".hashCode(), "Aa".hashCode());
+
+        User user1 = m_userAdminStorageProvider.createUser(m_userAdminFactory, 
"BB");
+        m_userAdminStorageProvider.setRoleAttribute(user1, "check", "BB user");
+
+        User user2 = m_userAdminStorageProvider.createUser(m_userAdminFactory, 
"Aa");
+        m_userAdminStorageProvider.setRoleAttribute(user2, "check", "Aa user");
+
+        User user3 = (User) 
m_userAdminStorageProvider.getRole(m_userAdminFactory, "BB");
+        Assert.assertNotNull(user3);
+        Assert.assertEquals("BB user", user3.getProperties().get("check"));
+
+        User user4 = (User) 
m_userAdminStorageProvider.getRole(m_userAdminFactory, "Aa");
+        Assert.assertNotNull(user4);
+        Assert.assertEquals("Aa user", user4.getProperties().get("check"));
+
+        m_userAdminStorageProvider.deleteRole(user3);
+
+        User user5 = (User) 
m_userAdminStorageProvider.getRole(m_userAdminFactory, "BB");
+        Assert.assertNull(user5);
+
+        User user6 = (User) 
m_userAdminStorageProvider.getRole(m_userAdminFactory, "Aa");
+        Assert.assertNotNull(user6);
+        Assert.assertEquals("Aa user", user6.getProperties().get("check"));
+    }
+
 }

Reply via email to