[jbosscache-commits] JBoss Cache SVN: r6206 - in core/trunk/src/main/java/org/jboss/cache: factories and 1 other directory.

jbosscache-commits at lists.jboss.org jbosscache-commits at lists.jboss.org
Tue Jul 8 06:46:20 EDT 2008


Author: manik.surtani at jboss.com
Date: 2008-07-08 06:46:19 -0400 (Tue, 08 Jul 2008)
New Revision: 6206

Added:
   core/trunk/src/main/java/org/jboss/cache/RegionRegistry.java
Modified:
   core/trunk/src/main/java/org/jboss/cache/RegionManagerImpl.java
   core/trunk/src/main/java/org/jboss/cache/factories/EmptyConstructorFactory.java
Log:
Created a separate, non-volatile RegionsRegistry class to hold regions.

Modified: core/trunk/src/main/java/org/jboss/cache/RegionManagerImpl.java
===================================================================
--- core/trunk/src/main/java/org/jboss/cache/RegionManagerImpl.java	2008-07-08 10:23:48 UTC (rev 6205)
+++ core/trunk/src/main/java/org/jboss/cache/RegionManagerImpl.java	2008-07-08 10:46:19 UTC (rev 6206)
@@ -24,9 +24,7 @@
 import java.util.Collections;
 import java.util.HashSet;
 import java.util.List;
-import java.util.Map;
 import java.util.Set;
-import java.util.concurrent.ConcurrentHashMap;
 
 /**
  * The default region manager, used with MVCC locking.
@@ -44,10 +42,7 @@
     */
    public static final Fqn<?> DEFAULT_REGION = Fqn.fromString("/_default_");
 
-   /**
-    * A registry of regions that have been defined.
-    */
-   private final Map<Fqn, Region> regionsRegistry = new ConcurrentHashMap<Fqn, Region>();
+   private RegionRegistry regionsRegistry;
    private boolean defaultInactive;
    private final Log log = LogFactory.getLog(RegionManagerImpl.class);
    CacheSPI cache;
@@ -64,13 +59,14 @@
 
    @Inject
    void injectDependencies(CacheSPI cache, Configuration configuration, RPCManager rpcManager, LockManager lockManager,
-                           BuddyFqnTransformer transformer)
+                           BuddyFqnTransformer transformer, RegionRegistry regionsRegistry)
    {
       this.cache = cache;
       this.rpcManager = rpcManager;
       this.configuration = configuration;
       this.lockManager = lockManager;
       this.buddyFqnTransformer = transformer;
+      this.regionsRegistry = regionsRegistry;
    }
 
    @Start
@@ -472,13 +468,8 @@
     *
     * @param fqn Fqn string indicating the uppermost node in the
     *            portion of the cache that should be activated.
-    * @throws RegionNameConflictException if <code>subtreeFqn</code> indicates
-    *                                     a node that is part of another
-    *                                     subtree that is being specially
-    *                                     managed (either by activate/inactiveRegion()
-    *                                     or by registerClassLoader())
-    * @throws CacheException              if there is a problem evicting nodes
-    * @throws IllegalStateException       if {@link org.jboss.cache.config.Configuration#isUseRegionBasedMarshalling()} is <code>false</code>
+    * @throws CacheException        if there is a problem evicting nodes
+    * @throws IllegalStateException if {@link org.jboss.cache.config.Configuration#isUseRegionBasedMarshalling()} is <code>false</code>
     */
    private void inactivateRegion(Fqn fqn) throws CacheException
    {

Added: core/trunk/src/main/java/org/jboss/cache/RegionRegistry.java
===================================================================
--- core/trunk/src/main/java/org/jboss/cache/RegionRegistry.java	                        (rev 0)
+++ core/trunk/src/main/java/org/jboss/cache/RegionRegistry.java	2008-07-08 10:46:19 UTC (rev 6206)
@@ -0,0 +1,21 @@
+package org.jboss.cache;
+
+import org.jboss.cache.factories.annotations.NonVolatile;
+
+import java.util.concurrent.ConcurrentHashMap;
+
+/**
+ * An extension of the ConcurrentHashMap that acts as a container for regions.
+ *
+ * @author Manik Surtani (<a href="mailto:manik at jboss.org">manik at jboss.org</a>)
+ * @since 3.0
+ */
+ at NonVolatile
+public class RegionRegistry extends ConcurrentHashMap<Fqn, Region>
+{
+   public RegionRegistry()
+   {
+      // default CHM constructor.  Potentially fine-tune later?
+      super();
+   }
+}

Modified: core/trunk/src/main/java/org/jboss/cache/factories/EmptyConstructorFactory.java
===================================================================
--- core/trunk/src/main/java/org/jboss/cache/factories/EmptyConstructorFactory.java	2008-07-08 10:23:48 UTC (rev 6205)
+++ core/trunk/src/main/java/org/jboss/cache/factories/EmptyConstructorFactory.java	2008-07-08 10:46:19 UTC (rev 6206)
@@ -1,6 +1,7 @@
 package org.jboss.cache.factories;
 
 import org.jboss.cache.DataContainer;
+import org.jboss.cache.RegionRegistry;
 import org.jboss.cache.buddyreplication.BuddyFqnTransformer;
 import org.jboss.cache.config.ConfigurationException;
 import org.jboss.cache.factories.annotations.DefaultFactoryFor;
@@ -21,7 +22,7 @@
  * @author Manik Surtani (<a href="mailto:manik at jboss.org">manik at jboss.org</a>)
  * @since 2.1.0
  */
- at DefaultFactoryFor(classes = {Notifier.class, MVCCNodeHelper.class,
+ at DefaultFactoryFor(classes = {Notifier.class, MVCCNodeHelper.class, RegionRegistry.class,
       ChannelMessageListener.class, CacheLoaderManager.class, Marshaller.class, InvocationContextContainer.class,
       CacheInvocationDelegate.class, TransactionTable.class, DataContainer.class,
       LockStrategyFactory.class, BuddyFqnTransformer.class})




More information about the jbosscache-commits mailing list