[jboss-cvs] JBossAS SVN: r72965 - trunk/cluster/src/main/org/jboss/ha/cachemanager.

jboss-cvs-commits at lists.jboss.org jboss-cvs-commits at lists.jboss.org
Thu May 1 20:57:01 EDT 2008


Author: bstansberry at jboss.com
Date: 2008-05-01 20:57:00 -0400 (Thu, 01 May 2008)
New Revision: 72965

Modified:
   trunk/cluster/src/main/org/jboss/ha/cachemanager/CacheManager.java
Log:
[JBAS-5501] CacheManager to support aliasing of caches

Modified: trunk/cluster/src/main/org/jboss/ha/cachemanager/CacheManager.java
===================================================================
--- trunk/cluster/src/main/org/jboss/ha/cachemanager/CacheManager.java	2008-05-02 00:48:05 UTC (rev 72964)
+++ trunk/cluster/src/main/org/jboss/ha/cachemanager/CacheManager.java	2008-05-02 00:57:00 UTC (rev 72965)
@@ -86,6 +86,8 @@
 
    private Map<String, Integer> pojoCacheCheckouts = new HashMap<String, Integer>();
 
+   private Map<String, String> configAliases = new HashMap<String, String>();
+   
    private boolean registerCachesInJmx = true;
    
    private String jndiName;
@@ -121,6 +123,8 @@
    {
       super(configFileName, factory);
    }
+   
+   // -------------------------------------------------------- PojoCacheManager
 
    @SuppressWarnings("unchecked")
    public Set<String> getConfigurationNames()
@@ -129,6 +133,7 @@
       {
          Set<String> configNames = super.getConfigurationNames();
          configNames.addAll(getPojoCacheNames());
+         configNames.addAll(configAliases.keySet());
          return configNames;
       }
    }
@@ -143,6 +148,9 @@
 
    public PojoCache getPojoCache(String configName, boolean create) throws Exception
    {
+      // Check if there's an alias involved
+      configName = resolveAlias(configName);
+      
       PojoCache cache = null;
       synchronized (pojoCaches)
       {
@@ -216,6 +224,9 @@
    @Override
    public Cache<Object, Object> getCache(String configName, boolean create) throws Exception
    {
+      // Check if there's an alias involved
+      configName = resolveAlias(configName);
+      
       synchronized (pojoCaches)
       {
          if (create && pojoCaches.containsKey(configName))
@@ -264,6 +275,9 @@
    @Override
    public void releaseCache(String configName)
    {
+      // Check if there's an alias involved
+      configName = resolveAlias(configName);  
+      
       synchronized (pojoCaches)
       {
          if (pojoCaches.containsKey(configName))
@@ -449,7 +463,26 @@
    }
    
    
+   public Map<String, String> getConfigAliases()
+   {
+      synchronized (configAliases)
+      {
+         return new HashMap<String, String>(configAliases);
+      }
+   }
    
+   public void setConfigAliases(Map<String, String> aliases)
+   {
+      synchronized (configAliases)
+      {
+         configAliases.clear();
+         if (aliases != null)
+            configAliases.putAll(aliases);
+      }
+   }
+   
+   
+   
    // ------------------------------------------------------  MBeanRegistration
 
    public ObjectName preRegister(MBeanServer server, ObjectName name) throws Exception
@@ -619,5 +652,11 @@
       Reference ref = new Reference(classType.getName (), addr, NonSerializableFactory.class.getName (), null);
       ctx.rebind (n.get (0), ref);
    }
+   
+   private String resolveAlias(String configName)
+   {
+      String alias = configAliases.get(configName);
+      return alias == null ? configName : alias;
+   }
 
 }




More information about the jboss-cvs-commits mailing list