Author: julien(a)jboss.com
Date: 2007-01-18 18:55:48 -0500 (Thu, 18 Jan 2007)
New Revision: 6044
Modified:
trunk/common/src/main/org/jboss/portal/common/util/CopyOnWriteRegistry.java
trunk/security/src/main/org/jboss/portal/security/impl/JBossAuthorizationDomainRegistryImpl.java
Log:
use CopyOnWriteRegistry in JBossAuthorizationDomainRegistryImpl
Modified: trunk/common/src/main/org/jboss/portal/common/util/CopyOnWriteRegistry.java
===================================================================
--- trunk/common/src/main/org/jboss/portal/common/util/CopyOnWriteRegistry.java 2007-01-18
23:53:20 UTC (rev 6043)
+++ trunk/common/src/main/org/jboss/portal/common/util/CopyOnWriteRegistry.java 2007-01-18
23:55:48 UTC (rev 6044)
@@ -26,6 +26,7 @@
import java.util.HashMap;
import java.util.Set;
import java.util.Collections;
+import java.util.Collection;
/**
* @author <a href="mailto:julien@jboss.org">Julien Viet</a>
@@ -104,7 +105,17 @@
}
/**
+ * Return the registrations.
*
+ * @return the registrations
+ */
+ public Collection getRegistrations()
+ {
+ return Collections.unmodifiableCollection(content.values());
+ }
+
+ /**
+ *
* @param key the registration key
* @return the registeted object
* @throws IllegalArgumentException if the key is null
Modified:
trunk/security/src/main/org/jboss/portal/security/impl/JBossAuthorizationDomainRegistryImpl.java
===================================================================
---
trunk/security/src/main/org/jboss/portal/security/impl/JBossAuthorizationDomainRegistryImpl.java 2007-01-18
23:53:20 UTC (rev 6043)
+++
trunk/security/src/main/org/jboss/portal/security/impl/JBossAuthorizationDomainRegistryImpl.java 2007-01-18
23:55:48 UTC (rev 6044)
@@ -24,6 +24,7 @@
import org.jboss.portal.jems.as.system.AbstractJBossService;
import org.jboss.portal.security.spi.provider.AuthorizationDomain;
+import org.jboss.portal.common.util.CopyOnWriteRegistry;
import java.util.Collection;
import java.util.HashMap;
@@ -40,7 +41,7 @@
{
/** A map of permission types to stores. */
- private Map domains = new HashMap();
+ private CopyOnWriteRegistry domains = new CopyOnWriteRegistry();
public void addDomain(AuthorizationDomain domain)
{
@@ -48,17 +49,8 @@
{
throw new IllegalArgumentException("Authorization Domain is null");
}
- synchronized (this)
- {
- if (domains.containsKey(domain.getType()))
- {
- throw new IllegalArgumentException("Authorization Domain is already
registered");
- }
- log.debug("Add authorization domain " + domain.getType());
- Map copy = new HashMap(domains);
- copy.put(domain.getType(), domain);
- domains = copy;
- }
+ log.debug("Add authorization domain " + domain.getType());
+ domains.register(domain.getType(), domain);
}
public void removeDomain(AuthorizationDomain domain)
@@ -67,13 +59,8 @@
{
throw new IllegalArgumentException();
}
- synchronized (this)
- {
- log.debug("Remove authorization domain " + domain.getType());
- Map copy = new HashMap(domains);
- copy.remove(domain.getType());
- domains = copy;
- }
+ log.debug("Remove authorization domain " + domain.getType());
+ domains.unregister(domain.getType());
}
public AuthorizationDomain getDomain(String domainType)
@@ -83,6 +70,6 @@
public Collection getDomains()
{
- return domains.values();
+ return domains.getRegistrations();
}
}
Show replies by date