Author: julien(a)jboss.com
Date: 2007-01-18 18:51:07 -0500 (Thu, 18 Jan 2007)
New Revision: 6042
Modified:
trunk/identity/src/main/org/jboss/portal/identity/IdentityContextImpl.java
Log:
use CopyOnWriteRegistry in IdentityContextImpl
Modified: trunk/identity/src/main/org/jboss/portal/identity/IdentityContextImpl.java
===================================================================
--- trunk/identity/src/main/org/jboss/portal/identity/IdentityContextImpl.java 2007-01-18
23:48:10 UTC (rev 6041)
+++ trunk/identity/src/main/org/jboss/portal/identity/IdentityContextImpl.java 2007-01-18
23:51:07 UTC (rev 6042)
@@ -22,12 +22,8 @@
package org.jboss.portal.identity;
import org.jboss.portal.jems.as.system.AbstractJBossService;
-import org.jboss.portal.identity.IdentityException;
-import org.jboss.portal.identity.IdentityContext;
+import org.jboss.portal.common.util.CopyOnWriteRegistry;
-import java.util.Map;
-import java.util.HashMap;
-
/**
* Keeps references to all identity related modules to enable them interactions
*
@@ -37,61 +33,27 @@
public class IdentityContextImpl extends AbstractJBossService implements IdentityContext
{
//private static final org.jboss.logging.Logger log =
org.jboss.logging.Logger.getLogger(IdentityContextImpl.class);
- private volatile Map registry;
+ private final CopyOnWriteRegistry registry;
public IdentityContextImpl()
{
- registry = new HashMap();
+ registry = new CopyOnWriteRegistry();
}
public void register(Object object, String name) throws IdentityException
{
- if (object == null)
- {
- throw new IllegalArgumentException("Cannot register null reference");
- }
- if (name == null)
- {
- throw new IllegalArgumentException("Cannot register object with null
name");
- }
-
- synchronized(this)
- {
- if (registry.containsKey(name))
- {
- throw new IdentityException("Name: " + name + " already
registered.");
- }
- if (log.isDebugEnabled()) log.debug("registering object: " + name +
" ; " + object.getClass());
- Map tmp = new HashMap(registry);
- tmp.put(name, object);
- registry = tmp;
- }
+ registry.register(object, name);
+ if (log.isDebugEnabled()) log.debug("registering object: " + name +
" ; " + object.getClass());
}
public void unregister(String name)
{
- if (name == null)
- {
- throw new IllegalArgumentException("Name cannot be null");
- }
- synchronized(this)
- {
- if(registry.containsKey(name))
- {
- if (log.isDebugEnabled()) log.debug("unregistering object: " +
name);
- Map tmp = new HashMap(registry);
- tmp.remove(name);
- registry = tmp;
- }
- }
+ registry.unregister(name);
+ if (log.isDebugEnabled()) log.debug("unregistering object: " + name);
}
public Object getObject(String name) throws IdentityException
{
- if (name == null)
- {
- throw new IllegalArgumentException("Name cannot be null");
- }
Object o = registry.get(name);
if (o == null)
{
Show replies by date