[jbosscache-commits] JBoss Cache SVN: r5165 - core/trunk/src/main/java/org/jboss/cache/factories.

jbosscache-commits at lists.jboss.org jbosscache-commits at lists.jboss.org
Mon Jan 21 09:17:57 EST 2008


Author: manik.surtani at jboss.com
Date: 2008-01-21 09:17:57 -0500 (Mon, 21 Jan 2008)
New Revision: 5165

Modified:
   core/trunk/src/main/java/org/jboss/cache/factories/InterceptorChainFactory.java
Log:
Simplified chain construction logic

Modified: core/trunk/src/main/java/org/jboss/cache/factories/InterceptorChainFactory.java
===================================================================
--- core/trunk/src/main/java/org/jboss/cache/factories/InterceptorChainFactory.java	2008-01-18 14:18:58 UTC (rev 5164)
+++ core/trunk/src/main/java/org/jboss/cache/factories/InterceptorChainFactory.java	2008-01-21 14:17:57 UTC (rev 5165)
@@ -77,6 +77,16 @@
    }
 
    /**
+    * Crates and adds an interceptor at the end of the chain
+    */
+   private void addInterceptor(Interceptor first, Class<? extends Interceptor> clazz) throws IllegalAccessException, InstantiationException
+   {
+      if (first == null) return;
+      while (first.getNext() != null) first = first.getNext();
+      first.setNext(createInterceptor(clazz));
+   }
+
+   /**
     * Adds an interceptor at the end of the chain
     */
    private void addInterceptor(Interceptor first, Interceptor i)
@@ -88,107 +98,60 @@
 
    private Interceptor createPessimisticInterceptorChain() throws IllegalAccessException, InstantiationException, ClassNotFoundException
    {
-      Interceptor call_interceptor;
-      Interceptor lock_interceptor;
-      Interceptor repl_interceptor = null;
-      Interceptor cache_loader_interceptor = null;
-      Interceptor cache_store_interceptor = null;
-      Interceptor unlock_interceptor;
-      Interceptor passivation_interceptor = null;
-      Interceptor activation_interceptor = null;
-      Interceptor cacheMgmtInterceptor;
-      Interceptor txInterceptor;
-      Interceptor eviction_interceptor;
-      Interceptor dataGravitatorInterceptor = null;
-      Interceptor invocationCtxInterceptor = createInterceptor(InvocationContextInterceptor.class);
-      Interceptor notificationInterceptor = createInterceptor(NotificationInterceptor.class);
-      Interceptor first = null;
-
-
-      call_interceptor = createInterceptor(CallInterceptor.class);
       // load the icInterceptor first
-      first = setFirstInterceptor(invocationCtxInterceptor);
+      Interceptor first = setFirstInterceptor(InvocationContextInterceptor.class);
 
+      // load the cache management interceptor next
+      if (configuration.getExposeManagementStatistics()) addInterceptor(first, CacheMgmtInterceptor.class);
 
-      if (isUsingBuddyReplication()) dataGravitatorInterceptor = createInterceptor(DataGravitatorInterceptor.class);
+      // load the tx interceptor
+      addInterceptor(first, TxInterceptor.class);
 
-      lock_interceptor = createInterceptor(PessimisticLockInterceptor.class);
+      addInterceptor(first, NotificationInterceptor.class);
 
-      unlock_interceptor = createInterceptor(UnlockInterceptor.class);
-
-      cacheMgmtInterceptor = createInterceptor(CacheMgmtInterceptor.class);
-
-      txInterceptor = createInterceptor(TxInterceptor.class);
-
       switch (configuration.getCacheMode())
       {
          case REPL_SYNC:
          case REPL_ASYNC:
-            repl_interceptor = createInterceptor(ReplicationInterceptor.class);
+            addInterceptor(first, ReplicationInterceptor.class);
             break;
          case INVALIDATION_SYNC:
          case INVALIDATION_ASYNC:
-            repl_interceptor = createInterceptor(InvalidationInterceptor.class);
+            addInterceptor(first, InvalidationInterceptor.class);
             break;
          case LOCAL:
             //Nothing...
       }
 
+      addInterceptor(first, PessimisticLockInterceptor.class);
+      addInterceptor(first, UnlockInterceptor.class);
+
       if (isUsingCacheLoaders())
       {
          if (configuration.getCacheLoaderConfig().isPassivation())
          {
-            activation_interceptor = createInterceptor(ActivationInterceptor.class);
-            passivation_interceptor = createInterceptor(PassivationInterceptor.class);
+            addInterceptor(first, ActivationInterceptor.class);
+            addInterceptor(first, PassivationInterceptor.class);
+
          }
          else
          {
-            cache_loader_interceptor = createInterceptor(CacheLoaderInterceptor.class);
-            cache_store_interceptor = createInterceptor(CacheStoreInterceptor.class);
+            addInterceptor(first, CacheLoaderInterceptor.class);
+            addInterceptor(first, CacheStoreInterceptor.class);
+
          }
       }
 
-      // load the cache management interceptor next
-      if (configuration.getExposeManagementStatistics())
-      {
-         addInterceptor(first, cacheMgmtInterceptor);
-      }
+      if (isUsingBuddyReplication()) addInterceptor(first, DataGravitatorInterceptor.class);
 
-      // load the tx interceptor
-      addInterceptor(first, txInterceptor);
-
-      addInterceptor(first, notificationInterceptor);
-
-      if (repl_interceptor != null) addInterceptor(first, repl_interceptor);
-
-      addInterceptor(first, lock_interceptor);
-
-
-      if (unlock_interceptor != null) addInterceptor(first, unlock_interceptor);
-
-      if (activation_interceptor != null)
-      {
-         addInterceptor(first, activation_interceptor);
-         addInterceptor(first, passivation_interceptor);
-      }
-
-      if (cache_loader_interceptor != null)
-      {
-         addInterceptor(first, cache_loader_interceptor);
-         addInterceptor(first, cache_store_interceptor);
-      }
-
-      if (dataGravitatorInterceptor != null) addInterceptor(first, dataGravitatorInterceptor);
-
       if (configuration.getEvictionConfig() != null && configuration.getEvictionConfig().isValidConfig())
       {
-         eviction_interceptor = createInterceptor(EvictionInterceptor.class);
-         addInterceptor(first, eviction_interceptor);
+         addInterceptor(first, EvictionInterceptor.class);
       }
 
-      addInterceptor(first, call_interceptor);
-
-      return setLastInterceptorPointer(first, call_interceptor);
+      Interceptor callInterceptor = createInterceptor(CallInterceptor.class);
+      addInterceptor(first, callInterceptor);
+      return setLastInterceptorPointer(first, callInterceptor);
    }
 
    private boolean isUsingCacheLoaders()
@@ -203,79 +166,43 @@
 
    private Interceptor createOptimisticInterceptorChain() throws IllegalAccessException, InstantiationException, ClassNotFoundException
    {
-      Interceptor txInterceptor, replicationInterceptor = null, lockInterceptor, validationInterceptor;
-      Interceptor createIfNotExistsInterceptor, nodeInterceptor, invokerInterceptor, activationInterceptor = null;
-      Interceptor passivationInterceptor = null, cacheLoaderInterceptor = null, cacheStoreInterceptor = null, first = null;
-      Interceptor cacheMgmtInterceptor, evictionInterceptor = null, dataGravitatorInterceptor = null;
-      Interceptor invocationCtxInterceptor = createInterceptor(InvocationContextInterceptor.class);
-      Interceptor notificationInterceptor = createInterceptor(NotificationInterceptor.class);
-
       // load the icInterceptor first
-      first = setFirstInterceptor(invocationCtxInterceptor);
+      Interceptor first = setFirstInterceptor(InvocationContextInterceptor.class);
 
+      if (configuration.getExposeManagementStatistics()) addInterceptor(first, CacheMgmtInterceptor.class);
 
-      if (isUsingCacheLoaders())
-      {
-         if (configuration.getCacheLoaderConfig().isPassivation())
-         {
-            activationInterceptor = createInterceptor(ActivationInterceptor.class);
-            passivationInterceptor = createInterceptor(PassivationInterceptor.class);
-         }
-         else
-         {
-            cacheLoaderInterceptor = createInterceptor(CacheLoaderInterceptor.class);
-            cacheStoreInterceptor = createInterceptor(CacheStoreInterceptor.class);
-         }
-      }
+      addInterceptor(first, TxInterceptor.class);
+      addInterceptor(first, NotificationInterceptor.class);
 
-      txInterceptor = createInterceptor(TxInterceptor.class);
-
-      if (isUsingBuddyReplication()) dataGravitatorInterceptor = createInterceptor(DataGravitatorInterceptor.class);
-
       switch (configuration.getCacheMode())
       {
          case REPL_SYNC:
          case REPL_ASYNC:
-            replicationInterceptor = createInterceptor(OptimisticReplicationInterceptor.class);
+            addInterceptor(first, OptimisticReplicationInterceptor.class);
             break;
          case INVALIDATION_SYNC:
          case INVALIDATION_ASYNC:
-            replicationInterceptor = createInterceptor(InvalidationInterceptor.class);
+            addInterceptor(first, InvalidationInterceptor.class);
             break;
          case LOCAL:
             //Nothing...
       }
 
-      lockInterceptor = createInterceptor(OptimisticLockingInterceptor.class);
-
-      validationInterceptor = createInterceptor(OptimisticValidatorInterceptor.class);
-
-      createIfNotExistsInterceptor = createInterceptor(OptimisticCreateIfNotExistsInterceptor.class);
-
-      nodeInterceptor = createInterceptor(OptimisticNodeInterceptor.class);
-
-      invokerInterceptor = createInterceptor(CallInterceptor.class);
-
-      if (configuration.getEvictionConfig() != null && configuration.getEvictionConfig().isValidConfig())
+      Interceptor activationInterceptor = null, passivationInterceptor = null, cacheLoaderInterceptor = null, cacheStoreInterceptor = null;
+      if (isUsingCacheLoaders())
       {
-         evictionInterceptor = createInterceptor(EvictionInterceptor.class);
+         if (configuration.getCacheLoaderConfig().isPassivation())
+         {
+            activationInterceptor = createInterceptor(ActivationInterceptor.class);
+            passivationInterceptor = createInterceptor(PassivationInterceptor.class);
+         }
+         else
+         {
+            cacheLoaderInterceptor = createInterceptor(CacheLoaderInterceptor.class);
+            cacheStoreInterceptor = createInterceptor(CacheStoreInterceptor.class);
+         }
       }
 
-      if (configuration.getExposeManagementStatistics())
-      {
-         cacheMgmtInterceptor = createInterceptor(CacheMgmtInterceptor.class);
-         addInterceptor(first, cacheMgmtInterceptor);
-      }
-
-      if (txInterceptor != null)
-      {
-         addInterceptor(first, txInterceptor);
-      }
-
-      addInterceptor(first, notificationInterceptor);
-
-      addInterceptor(first, replicationInterceptor);
-
       if (passivationInterceptor != null && !configuration.getCacheLoaderConfig().isFetchPersistentState())
       {
          addInterceptor(first, passivationInterceptor);
@@ -308,25 +235,26 @@
          }
       }
 
-      if (dataGravitatorInterceptor != null)
-      {
-         addInterceptor(first, dataGravitatorInterceptor);
-      }
+      if (isUsingBuddyReplication()) addInterceptor(first, DataGravitatorInterceptor.class);
 
+      addInterceptor(first, OptimisticLockingInterceptor.class);
 
-      addInterceptor(first, lockInterceptor);
-
-      addInterceptor(first, validationInterceptor);
-      addInterceptor(first, createIfNotExistsInterceptor);
-
+      addInterceptor(first, OptimisticValidatorInterceptor.class);
+      addInterceptor(first, OptimisticCreateIfNotExistsInterceptor.class);
       // eviction interceptor to come before the optimistic node interceptor
-      addInterceptor(first, evictionInterceptor);
+      if (configuration.getEvictionConfig() != null && configuration.getEvictionConfig().isValidConfig())
+         addInterceptor(first, EvictionInterceptor.class);
 
-      addInterceptor(first, nodeInterceptor);
+      addInterceptor(first, OptimisticNodeInterceptor.class);
 
-      addInterceptor(first, invokerInterceptor);
+      Interceptor callInterceptor = createInterceptor(CallInterceptor.class);
+      addInterceptor(first, callInterceptor);
+      return setLastInterceptorPointer(first, callInterceptor);
+   }
 
-      return setLastInterceptorPointer(first, invokerInterceptor);
+   public Interceptor setFirstInterceptor(Class<? extends Interceptor> clazz) throws IllegalAccessException, InstantiationException
+   {
+      return setFirstInterceptor(createInterceptor(clazz));
    }
 
    public Interceptor setFirstInterceptor(Interceptor i)




More information about the jbosscache-commits mailing list