[jboss-cvs] JBossAS SVN: r107072 - projects/cluster/ha-server-ispn/trunk/src/main/java/org/jboss/ha/ispn.

jboss-cvs-commits at lists.jboss.org jboss-cvs-commits at lists.jboss.org
Fri Jul 23 19:10:04 EDT 2010


Author: pferraro
Date: 2010-07-23 19:10:04 -0400 (Fri, 23 Jul 2010)
New Revision: 107072

Modified:
   projects/cluster/ha-server-ispn/trunk/src/main/java/org/jboss/ha/ispn/DefaultCacheContainerRegistry.java
Log:
Add singleton accessor - replaces CacheManagerLocator.

Modified: projects/cluster/ha-server-ispn/trunk/src/main/java/org/jboss/ha/ispn/DefaultCacheContainerRegistry.java
===================================================================
--- projects/cluster/ha-server-ispn/trunk/src/main/java/org/jboss/ha/ispn/DefaultCacheContainerRegistry.java	2010-07-23 20:16:01 UTC (rev 107071)
+++ projects/cluster/ha-server-ispn/trunk/src/main/java/org/jboss/ha/ispn/DefaultCacheContainerRegistry.java	2010-07-23 23:10:04 UTC (rev 107072)
@@ -28,6 +28,7 @@
 import java.util.Map;
 import java.util.Set;
 import java.util.concurrent.ConcurrentHashMap;
+import java.util.concurrent.atomic.AtomicReference;
 
 import javax.naming.Context;
 import javax.naming.InitialContext;
@@ -49,11 +50,20 @@
 {
    private static Logger logger = Logger.getLogger(DefaultCacheContainerRegistry.class);
    
+   private static final AtomicReference<CacheContainerRegistry> singleton = new AtomicReference<CacheContainerRegistry>();
+   
+   public static CacheContainerRegistry getInstance()
+   {
+      CacheContainerRegistry registry = singleton.get();
+      if (registry == null) throw new IllegalStateException("");
+      return registry;
+   }
+   
    private final CacheContainerFactory factory;
    private final CacheContainerRegistryConfigurationSource source;
    private final Context context;
    private final Map<String, Map.Entry<String, CacheContainer>> containers = new ConcurrentHashMap<String, Map.Entry<String, CacheContainer>>();
-   
+
    private CacheContainer defaultContainer;
    
    /**
@@ -102,10 +112,14 @@
       }
       
       this.defaultContainer = this.containers.get(defaultEntry.getId()).getValue();
+      
+      singleton.compareAndSet(null, this);
    }
    
    public void stop() throws Exception
    {
+      singleton.set(null);
+      
       for (Map.Entry<String, CacheContainer> entry: this.containers.values())
       {
          try



More information about the jboss-cvs-commits mailing list