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"));
+ }
+
}