[portal-commits] JBoss Portal SVN: r6044 - in trunk: security/src/main/org/jboss/portal/security/impl and 1 other directory.

portal-commits at lists.jboss.org portal-commits at lists.jboss.org
Thu Jan 18 18:55:48 EST 2007


Author: julien at 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 at 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();
    }
 }




More information about the portal-commits mailing list