[infinispan-commits] Infinispan SVN: r806 - in trunk/core/src/main/java/org/infinispan: loaders and 1 other directories.

infinispan-commits at lists.jboss.org infinispan-commits at lists.jboss.org
Thu Sep 10 21:37:44 EDT 2009


Author: vblagojevic at jboss.com
Date: 2009-09-10 21:37:44 -0400 (Thu, 10 Sep 2009)
New Revision: 806

Modified:
   trunk/core/src/main/java/org/infinispan/config/AbstractConfigurationBean.java
   trunk/core/src/main/java/org/infinispan/config/AbstractConfigurationBeanVisitor.java
   trunk/core/src/main/java/org/infinispan/config/CacheLoaderManagerConfig.java
   trunk/core/src/main/java/org/infinispan/config/Configuration.java
   trunk/core/src/main/java/org/infinispan/config/ConfigurationBeanVisitor.java
   trunk/core/src/main/java/org/infinispan/config/ConfigurationValidatingVisitor.java
   trunk/core/src/main/java/org/infinispan/config/CustomInterceptorConfig.java
   trunk/core/src/main/java/org/infinispan/config/GlobalConfiguration.java
   trunk/core/src/main/java/org/infinispan/config/InfinispanConfiguration.java
   trunk/core/src/main/java/org/infinispan/loaders/AbstractCacheLoaderConfig.java
   trunk/core/src/main/java/org/infinispan/loaders/AbstractCacheStoreConfig.java
   trunk/core/src/main/java/org/infinispan/loaders/CacheLoaderConfig.java
   trunk/core/src/main/java/org/infinispan/loaders/decorators/AsyncStoreConfig.java
   trunk/core/src/main/java/org/infinispan/loaders/decorators/SingletonStoreConfig.java
Log:
[ISPN-145] - No transport and singleton store enabled should not be allowed
use visitor pattern without reflection for InfinispanConfiguration

Modified: trunk/core/src/main/java/org/infinispan/config/AbstractConfigurationBean.java
===================================================================
--- trunk/core/src/main/java/org/infinispan/config/AbstractConfigurationBean.java	2009-09-10 11:34:56 UTC (rev 805)
+++ trunk/core/src/main/java/org/infinispan/config/AbstractConfigurationBean.java	2009-09-11 01:37:44 UTC (rev 806)
@@ -61,9 +61,6 @@
    protected AbstractConfigurationBean() {
    }
    
-   public void accept(ConfigurationBeanVisitor v){
-       v.visit(this);      
-   }
 
    /**
     * Safely converts a String to upper case.

Modified: trunk/core/src/main/java/org/infinispan/config/AbstractConfigurationBeanVisitor.java
===================================================================
--- trunk/core/src/main/java/org/infinispan/config/AbstractConfigurationBeanVisitor.java	2009-09-10 11:34:56 UTC (rev 805)
+++ trunk/core/src/main/java/org/infinispan/config/AbstractConfigurationBeanVisitor.java	2009-09-11 01:37:44 UTC (rev 806)
@@ -21,8 +21,28 @@
  */
 package org.infinispan.config;
 
-import java.lang.reflect.Method;
-
+import org.infinispan.config.Configuration.AsyncType;
+import org.infinispan.config.Configuration.BooleanAttributeType;
+import org.infinispan.config.Configuration.ClusteringType;
+import org.infinispan.config.Configuration.CustomInterceptorsType;
+import org.infinispan.config.Configuration.DeadlockDetectionType;
+import org.infinispan.config.Configuration.EvictionType;
+import org.infinispan.config.Configuration.ExpirationType;
+import org.infinispan.config.Configuration.HashType;
+import org.infinispan.config.Configuration.L1Type;
+import org.infinispan.config.Configuration.LockingType;
+import org.infinispan.config.Configuration.StateRetrievalType;
+import org.infinispan.config.Configuration.SyncType;
+import org.infinispan.config.Configuration.TransactionType;
+import org.infinispan.config.Configuration.UnsafeType;
+import org.infinispan.config.GlobalConfiguration.FactoryClassWithPropertiesType;
+import org.infinispan.config.GlobalConfiguration.GlobalJmxStatisticsType;
+import org.infinispan.config.GlobalConfiguration.SerializationType;
+import org.infinispan.config.GlobalConfiguration.ShutdownType;
+import org.infinispan.config.GlobalConfiguration.TransportType;
+import org.infinispan.loaders.CacheLoaderConfig;
+import org.infinispan.loaders.decorators.AsyncStoreConfig;
+import org.infinispan.loaders.decorators.SingletonStoreConfig;
 import org.infinispan.util.logging.Log;
 import org.infinispan.util.logging.LogFactory;
 
@@ -48,47 +68,117 @@
  */
 public abstract class AbstractConfigurationBeanVisitor implements ConfigurationBeanVisitor {
 
-    protected transient Log log = LogFactory.getLog(getClass());
+   protected transient Log log = LogFactory.getLog(getClass());
 
-    private Method findVisitMethod(AbstractConfigurationBean bean) throws Exception {
-        Class<?> cl = bean.getClass();
-        while (!cl.equals(AbstractConfigurationBean.class)) {
-            try {
-                return this.getClass().getDeclaredMethod("visit", new Class[] { cl });
-            } catch (NoSuchMethodException ex) {
-                cl = cl.getSuperclass();
-            }
-        }
-        // Check through interfaces for matching method
-        Class<?>[] interfaces = bean.getClass().getInterfaces();
-        for (int i = 0; i < interfaces.length; i++) {
-            try {
-                return this.getClass().getDeclaredMethod("visit", new Class[] { interfaces[i] });
-            } catch (NoSuchMethodException ex) {
-            }
-        }
-        return null;
-    }
+   public void visitInfinispanConfiguration(InfinispanConfiguration bean) {
+   }
+   
+   public void visitAsyncStoreConfig(AsyncStoreConfig bean) {
+      defaultVisit(bean);
+   }
 
-    public void visit(AbstractConfigurationBean bean) {
-        Method m = null;
-        try {
-            m = findVisitMethod(bean);
-        } catch (Exception e) {
-            log.warn("Could not reflect visit method for bean " + bean, e);
-        }
-        if (m == null) {
-            defaultVisit(bean);
-        } else {
-            try {
-                m.invoke(this, new Object[] { bean });
-            } catch (Exception e) {
-                log.warn("Invocation for visitor method " + m + " on bean " + bean
-                                + " has thrown exception", e);               
-            }
-        }
-    }
+   public void visitAsyncType(AsyncType bean) {
+      defaultVisit(bean);
+   }
 
-    public void defaultVisit(AbstractConfigurationBean c) {}
+   public void visitBooleanAttributeType(BooleanAttributeType bean) {
+      defaultVisit(bean);
 
+   }
+
+   public void visitCacheLoaderConfig(CacheLoaderConfig bean) {
+
+   }
+
+   public void visitCacheLoaderManagerConfig(CacheLoaderManagerConfig bean) {
+      defaultVisit(bean);
+   }
+
+   public void visitClusteringType(ClusteringType bean) {
+      defaultVisit(bean);
+   }
+
+   public void visitConfiguration(Configuration bean) {
+      defaultVisit(bean);
+   }
+
+   public void visitCustomInterceptorsType(CustomInterceptorsType bean) {
+      defaultVisit(bean);
+   }
+
+   public void visitDeadlockDetectionType(DeadlockDetectionType bean) {
+      defaultVisit(bean);
+   }
+
+   public void visitEvictionType(EvictionType bean) {
+      defaultVisit(bean);
+   }
+
+   public void visitExpirationType(ExpirationType bean) {
+      defaultVisit(bean);
+   }
+
+   public void visitFactoryClassWithPropertiesType(FactoryClassWithPropertiesType bean) {
+      defaultVisit(bean);
+   }
+
+   public void visitGlobalConfiguration(GlobalConfiguration bean) {
+      defaultVisit(bean);
+   }
+
+   public void visitGlobalJmxStatisticsType(GlobalJmxStatisticsType bean) {
+      defaultVisit(bean);
+   }
+
+   public void visitHashType(HashType bean) {
+      defaultVisit(bean);
+   }
+
+   public void visitL1Type(L1Type bean) {
+      defaultVisit(bean);
+   }
+
+   public void visitLockingType(LockingType bean) {
+      defaultVisit(bean);
+   }
+
+   public void visitSerializationType(SerializationType bean) {
+      defaultVisit(bean);
+   }
+
+   public void visitShutdownType(ShutdownType bean) {
+      defaultVisit(bean);
+   }
+
+   public void visitSingletonStoreConfig(SingletonStoreConfig bean) {
+      defaultVisit(bean);
+   }
+
+   public void visitStateRetrievalType(StateRetrievalType bean) {
+      defaultVisit(bean);
+   }
+
+   public void visitSyncType(SyncType bean) {
+      defaultVisit(bean);
+   }
+
+   public void visitTransactionType(TransactionType bean) {
+      defaultVisit(bean);
+   }
+
+   public void visitTransportType(TransportType bean) {
+      defaultVisit(bean);
+   }
+
+   public void visitUnsafeType(UnsafeType bean) {
+      defaultVisit(bean);
+   }
+   
+   public void visitCustomInterceptorConfig(CustomInterceptorConfig bean) {
+      defaultVisit(bean);
+   }
+
+   public void defaultVisit(AbstractConfigurationBean c) {
+   }
+
 }

Modified: trunk/core/src/main/java/org/infinispan/config/CacheLoaderManagerConfig.java
===================================================================
--- trunk/core/src/main/java/org/infinispan/config/CacheLoaderManagerConfig.java	2009-09-10 11:34:56 UTC (rev 805)
+++ trunk/core/src/main/java/org/infinispan/config/CacheLoaderManagerConfig.java	2009-09-11 01:37:44 UTC (rev 806)
@@ -148,14 +148,13 @@
       }
       return false;
    }
-   
-    @Override
-    public void accept(ConfigurationBeanVisitor v) {
-        super.accept(v);
-        for (CacheLoaderConfig clc : cacheLoaderConfigs) {
-            ((AbstractConfigurationBean) clc).accept(v);
-        }
-    }
+       
+   public void accept(ConfigurationBeanVisitor v) {
+      for (CacheLoaderConfig clc : cacheLoaderConfigs) {
+         clc.accept(v);
+      }
+      v.visitCacheLoaderManagerConfig(this);
+   }
 
    @Override
    public int hashCode() {

Modified: trunk/core/src/main/java/org/infinispan/config/Configuration.java
===================================================================
--- trunk/core/src/main/java/org/infinispan/config/Configuration.java	2009-09-10 11:34:56 UTC (rev 805)
+++ trunk/core/src/main/java/org/infinispan/config/Configuration.java	2009-09-11 01:37:44 UTC (rev 806)
@@ -538,21 +538,20 @@
    //   OVERRIDDEN METHODS
    // ------------------------------------------------------------------------------------------------------------
 
-   @Override
-   public void accept(ConfigurationBeanVisitor v) {        
-       super.accept(v);
-       clustering.accept(v);
-       customInterceptors.accept(v);
-       deadlockDetection.accept(v);
-       eviction.accept(v);
-       expiration.accept(v);
-       invocationBatching.accept(v);
-       jmxStatistics.accept(v);
-       lazyDeserialization.accept(v);
-       loaders.accept(v);
-       locking.accept(v);
-       transaction.accept(v);
-       unsafe.accept(v);
+   public void accept(ConfigurationBeanVisitor v) {      
+      clustering.accept(v);
+      customInterceptors.accept(v);
+      deadlockDetection.accept(v);
+      eviction.accept(v);
+      expiration.accept(v);
+      invocationBatching.accept(v);
+      jmxStatistics.accept(v);
+      lazyDeserialization.accept(v);
+      loaders.accept(v);
+      locking.accept(v);
+      transaction.accept(v);
+      unsafe.accept(v);
+      v.visitConfiguration(this);
    }
 
    @Override
@@ -701,6 +700,10 @@
          this.transactionManagerLookupClass = transactionManagerLookupClass;
       }
       
+      public void accept(ConfigurationBeanVisitor v) {
+         v.visitTransactionType(this);
+      }
+
       public TransactionType() {
          this.transactionManagerLookupClass = GenericTransactionManagerLookup.class.getName();
       }
@@ -797,6 +800,11 @@
       }
 
     
+      public void accept(ConfigurationBeanVisitor v) {
+         v.visitLockingType(this);
+      }
+
+
       @XmlAttribute
       public void setIsolationLevel(IsolationLevel isolationLevel) {
          testImmutability("isolationLevel");
@@ -910,14 +918,13 @@
          return dolly;
       }
       
-      @Override
-      public void accept(ConfigurationBeanVisitor v) {        
-          super.accept(v);
+      public void accept(ConfigurationBeanVisitor v) {                  
           async.accept(v);
           hash.accept(v);
           l1.accept(v);
           stateRetrieval.accept(v);
           sync.accept(v);
+          v.visitClusteringType(this);
       }
 
       @Override
@@ -1018,6 +1025,10 @@
          this.readFromXml = readFromXml;
       }
 
+      public void accept(ConfigurationBeanVisitor v) {
+         v.visitAsyncType(this);
+      }
+
       @Override
       public boolean equals(Object o) {
          if (this == o) return true;
@@ -1099,6 +1110,10 @@
          this.lifespan = lifespan;
       }
 
+      public void accept(ConfigurationBeanVisitor v) {
+         v.visitExpirationType(this);         
+      }
+
       @XmlAttribute
       public void setMaxIdle(Long maxIdle) {
          testImmutability("maxIdle");
@@ -1151,6 +1166,10 @@
          this.wakeUpInterval = wakeUpInterval;
       }
 
+      public void accept(ConfigurationBeanVisitor v) {
+         v.visitEvictionType(this);
+      }
+
       @XmlAttribute
       public void setStrategy(EvictionStrategy strategy) {
          testImmutability("strategy");
@@ -1212,6 +1231,10 @@
          this.fetchInMemoryState = fetchInMemoryState;
       }
 
+      public void accept(ConfigurationBeanVisitor v) {
+         v.visitStateRetrievalType(this);
+      }
+
       @XmlAttribute
       public void setTimeout(Long timeout) {
          testImmutability("timeout");
@@ -1261,6 +1284,10 @@
          this.replTimeout = replTimeout;
       }
 
+      public void accept(ConfigurationBeanVisitor v) {
+         v.visitSyncType(this);
+      }
+
       @Override
       public boolean equals(Object o) {
          if (this == o) return true;
@@ -1313,6 +1340,10 @@
          this.consistentHashClass = consistentHashClass;
       }
 
+      public void accept(ConfigurationBeanVisitor v) {
+         v.visitHashType(this);
+      }
+
       @XmlAttribute
       public void setNumOwners(Integer numOwners) {
          testImmutability("numOwners");
@@ -1384,6 +1415,10 @@
          this.enabled = enabled;
       }
       
+      public void accept(ConfigurationBeanVisitor v) {
+         v.visitL1Type(this);
+      }
+
       @XmlAttribute
       public void setLifespan(Long lifespan) {
          testImmutability("lifespan");
@@ -1441,6 +1476,10 @@
          this.enabled = enabled;
       }
 
+      public void accept(ConfigurationBeanVisitor v) {
+         v.visitBooleanAttributeType(this);
+      }
+
       @Override
       public boolean equals(Object o) {
          if (this == o) return true;
@@ -1483,6 +1522,10 @@
          this.enabled = enabled;
       }
 
+      public void accept(ConfigurationBeanVisitor v) {
+         v.visitDeadlockDetectionType(this);
+      }
+
       @XmlAttribute
       public void setSpinDuration(Long spinDuration) {
          testImmutability("spinDuration");
@@ -1532,6 +1575,10 @@
          this.unreliableReturnValues = unreliableReturnValues;
       }
 
+      public void accept(ConfigurationBeanVisitor v) {
+         v.visitUnsafeType(this);
+      }
+
       @Override
       public boolean equals(Object o) {
          if (this == o) return true;
@@ -1576,13 +1623,16 @@
          }
          return dolly;
       }
+            
+      public void accept(ConfigurationBeanVisitor v) {
+         for (CustomInterceptorConfig i : customInterceptors) {            
+            i.accept(v);
+         }
+         v.visitCustomInterceptorsType(this);
+      }
       
-      @Override
-      public void accept(ConfigurationBeanVisitor v) {        
-          super.accept(v);
-          for (CustomInterceptorConfig cic : customInterceptors) {
-            cic.accept(v);
-        }
+      public List<CustomInterceptorConfig> getCustomInterceptors(){
+         return customInterceptors;
       }
 
       @Override

Modified: trunk/core/src/main/java/org/infinispan/config/ConfigurationBeanVisitor.java
===================================================================
--- trunk/core/src/main/java/org/infinispan/config/ConfigurationBeanVisitor.java	2009-09-10 11:34:56 UTC (rev 805)
+++ trunk/core/src/main/java/org/infinispan/config/ConfigurationBeanVisitor.java	2009-09-11 01:37:44 UTC (rev 806)
@@ -21,6 +21,29 @@
  */
 package org.infinispan.config;
 
+import org.infinispan.config.Configuration.AsyncType;
+import org.infinispan.config.Configuration.BooleanAttributeType;
+import org.infinispan.config.Configuration.ClusteringType;
+import org.infinispan.config.Configuration.CustomInterceptorsType;
+import org.infinispan.config.Configuration.DeadlockDetectionType;
+import org.infinispan.config.Configuration.EvictionType;
+import org.infinispan.config.Configuration.ExpirationType;
+import org.infinispan.config.Configuration.HashType;
+import org.infinispan.config.Configuration.L1Type;
+import org.infinispan.config.Configuration.LockingType;
+import org.infinispan.config.Configuration.StateRetrievalType;
+import org.infinispan.config.Configuration.SyncType;
+import org.infinispan.config.Configuration.TransactionType;
+import org.infinispan.config.Configuration.UnsafeType;
+import org.infinispan.config.GlobalConfiguration.FactoryClassWithPropertiesType;
+import org.infinispan.config.GlobalConfiguration.GlobalJmxStatisticsType;
+import org.infinispan.config.GlobalConfiguration.SerializationType;
+import org.infinispan.config.GlobalConfiguration.ShutdownType;
+import org.infinispan.config.GlobalConfiguration.TransportType;
+import org.infinispan.loaders.CacheLoaderConfig;
+import org.infinispan.loaders.decorators.AsyncStoreConfig;
+import org.infinispan.loaders.decorators.SingletonStoreConfig;
+
 /**
  * ConfigurationBeanVisitor implementations are passed through InfinispanConfiguration object tree
  * visiting each configuration element of InfinispanConfiguration instance.
@@ -36,15 +59,60 @@
  * @see AbstractConfigurationBeanVisitor
  * @since 4.0
  */
-public interface ConfigurationBeanVisitor {
+public interface ConfigurationBeanVisitor { 
+   
+   void visitInfinispanConfiguration(InfinispanConfiguration bean);
+   
+   void visitGlobalConfiguration(GlobalConfiguration bean);
+   
+   void visitFactoryClassWithPropertiesType(FactoryClassWithPropertiesType bean);
+   
+   void visitGlobalJmxStatisticsType(GlobalJmxStatisticsType bean);
+   
+   void visitSerializationType(SerializationType bean);
+   
+   void visitShutdownType(ShutdownType bean);
+   
+   void visitTransportType(TransportType bean);
+   
+   void visitConfiguration(Configuration bean);
+   
+   void visitAsyncType(AsyncType bean);
+   
+   void visitBooleanAttributeType(BooleanAttributeType bean);
+   
+   void visitClusteringType(ClusteringType bean);
+   
+   void visitCustomInterceptorsType(CustomInterceptorsType bean);
+   
+   void visitDeadlockDetectionType(DeadlockDetectionType bean);
+   
+   void visitEvictionType(EvictionType bean);
+   
+   void visitExpirationType(ExpirationType bean);
+   
+   void visitHashType(HashType bean);
+   
+   void visitL1Type(L1Type bean);
+   
+   void visitLockingType(LockingType bean);
+   
+   void visitStateRetrievalType(StateRetrievalType bean);
+   
+   void visitSyncType(SyncType bean);
+   
+   void visitTransactionType(TransactionType bean);
+   
+   void visitUnsafeType(UnsafeType bean);
+   
+   void visitCacheLoaderManagerConfig(CacheLoaderManagerConfig bean);
+   
+   void visitCacheLoaderConfig(CacheLoaderConfig bean);
+   
+   void visitSingletonStoreConfig(SingletonStoreConfig bean);
+   
+   void visitAsyncStoreConfig(AsyncStoreConfig bean);
 
-   void visit(AbstractConfigurationBean bean);
+   void visitCustomInterceptorConfig(CustomInterceptorConfig customInterceptorConfig);   
 
-   /**
-    * Signals end of traversal over InfinispanConfiguration instance 
-    * 
-    * @param infinispanConfiguration
-    */
-   void traversalCompleted(InfinispanConfiguration infinispanConfiguration);
-
 }

Modified: trunk/core/src/main/java/org/infinispan/config/ConfigurationValidatingVisitor.java
===================================================================
--- trunk/core/src/main/java/org/infinispan/config/ConfigurationValidatingVisitor.java	2009-09-10 11:34:56 UTC (rev 805)
+++ trunk/core/src/main/java/org/infinispan/config/ConfigurationValidatingVisitor.java	2009-09-11 01:37:44 UTC (rev 806)
@@ -32,21 +32,15 @@
  * @since 4.0
  */
 public class ConfigurationValidatingVisitor extends AbstractConfigurationBeanVisitor {
-   private SingletonStoreConfig ssc = null;
    private TransportType tt = null;
 
-   public void visit(SingletonStoreConfig ssc) {
-      this.ssc = ssc;
+   public void visitSingletonStoreConfig(SingletonStoreConfig ssc) {
+      if (tt == null) {
+         throw new ConfigurationException("Singleton store configured without transport being configured");
+      }
    }
-
-   public void visit(TransportType tt) {
+   
+   public void visitTransportType(TransportType tt) {
       this.tt = tt;
    }
-
-   public void traversalCompleted(InfinispanConfiguration infinispanConfiguration) {
-      if (ssc != null && tt == null) {
-         throw new ConfigurationException("Singleton store configured without transport being configured for "
-                           + infinispanConfiguration);
-      }
-   }
 }

Modified: trunk/core/src/main/java/org/infinispan/config/CustomInterceptorConfig.java
===================================================================
--- trunk/core/src/main/java/org/infinispan/config/CustomInterceptorConfig.java	2009-09-10 11:34:56 UTC (rev 805)
+++ trunk/core/src/main/java/org/infinispan/config/CustomInterceptorConfig.java	2009-09-11 01:37:44 UTC (rev 806)
@@ -336,4 +336,8 @@
    enum Position {
       FIRST,LAST;
    }
+
+   public void accept(ConfigurationBeanVisitor v) {
+      v.visitCustomInterceptorConfig(this);
+   }
 }

Modified: trunk/core/src/main/java/org/infinispan/config/GlobalConfiguration.java
===================================================================
--- trunk/core/src/main/java/org/infinispan/config/GlobalConfiguration.java	2009-09-10 11:34:56 UTC (rev 805)
+++ trunk/core/src/main/java/org/infinispan/config/GlobalConfiguration.java	2009-09-11 01:37:44 UTC (rev 806)
@@ -330,9 +330,7 @@
       transport.distributedSyncTimeout = distributedSyncTimeout;
    }
    
-    @Override
     public void accept(ConfigurationBeanVisitor v) {        
-        super.accept(v);
         asyncListenerExecutor.accept(v);
         asyncTransportExecutor.accept(v);
         evictionScheduledExecutor.accept(v);
@@ -340,7 +338,8 @@
         replicationQueueScheduledExecutor.accept(v);
         serialization.accept(v);
         shutdown.accept(v);
-        transport.accept(v);        
+        transport.accept(v);   
+        v.visitGlobalConfiguration(this);
     }
 
 @Override
@@ -466,6 +465,10 @@
          this.factory = factory;
       }   
       
+      public void accept(ConfigurationBeanVisitor v) {
+         v.visitFactoryClassWithPropertiesType(this);
+      }
+
       public FactoryClassWithPropertiesType() {
          super();
          this.factory = "";
@@ -512,6 +515,10 @@
          transportClass = JGroupsTransport.class.getName();
       }
       
+      public void accept(ConfigurationBeanVisitor v) {
+         v.visitTransportType(this);
+      }
+
       public TransportType(String transportClass) {
          super();
          this.transportClass = transportClass;
@@ -567,6 +574,10 @@
          super();
       }
 
+      public void accept(ConfigurationBeanVisitor v) {
+         v.visitSerializationType(this);
+      }
+
       @XmlAttribute
       public void setMarshallerClass(String marshallerClass) {
          testImmutability("marshallerClass");
@@ -605,6 +616,10 @@
          this.enabled = enabled;
       }
 
+      public void accept(ConfigurationBeanVisitor v) {
+         v.visitGlobalJmxStatisticsType(this);
+      }
+
       @XmlAttribute
       public void setJmxDomain(String jmxDomain) {
          testImmutability("jmxDomain");
@@ -639,11 +654,15 @@
       public void setHookBehavior(ShutdownHookBehavior hookBehavior) {
          testImmutability("hookBehavior");
          this.hookBehavior = hookBehavior;
+      }
+
+      public void accept(ConfigurationBeanVisitor v) {
+         v.visitShutdownType(this);
       }               
    }
 }
 
-class AbstractConfigurationBeanWithGCR extends AbstractConfigurationBean{
+abstract class AbstractConfigurationBeanWithGCR extends AbstractConfigurationBean{
 
    GlobalComponentRegistry gcr = null;
    

Modified: trunk/core/src/main/java/org/infinispan/config/InfinispanConfiguration.java
===================================================================
--- trunk/core/src/main/java/org/infinispan/config/InfinispanConfiguration.java	2009-09-10 11:34:56 UTC (rev 805)
+++ trunk/core/src/main/java/org/infinispan/config/InfinispanConfiguration.java	2009-09-11 01:37:44 UTC (rev 806)
@@ -257,8 +257,8 @@
          for (Configuration c : namedCaches) {
             c.accept(v);
          }
-      }
-      v.traversalCompleted(this);
+      }      
+      v.visitInfinispanConfiguration(this);
    }
 
    private static InputStream findInputStream(String fileName) throws FileNotFoundException {

Modified: trunk/core/src/main/java/org/infinispan/loaders/AbstractCacheLoaderConfig.java
===================================================================
--- trunk/core/src/main/java/org/infinispan/loaders/AbstractCacheLoaderConfig.java	2009-09-10 11:34:56 UTC (rev 805)
+++ trunk/core/src/main/java/org/infinispan/loaders/AbstractCacheLoaderConfig.java	2009-09-11 01:37:44 UTC (rev 806)
@@ -5,6 +5,7 @@
 import javax.xml.bind.annotation.XmlAttribute;
 
 import org.infinispan.CacheException;
+import org.infinispan.config.ConfigurationBeanVisitor;
 import org.infinispan.config.PluggableConfigurationComponent;
 
 /**
@@ -48,4 +49,6 @@
          throw new CacheException(e);
       }
    }
+   
+   public void accept(ConfigurationBeanVisitor v) {}
 }

Modified: trunk/core/src/main/java/org/infinispan/loaders/AbstractCacheStoreConfig.java
===================================================================
--- trunk/core/src/main/java/org/infinispan/loaders/AbstractCacheStoreConfig.java	2009-09-10 11:34:56 UTC (rev 805)
+++ trunk/core/src/main/java/org/infinispan/loaders/AbstractCacheStoreConfig.java	2009-09-11 01:37:44 UTC (rev 806)
@@ -1,5 +1,6 @@
 package org.infinispan.loaders;
 
+import org.infinispan.config.ConfigurationBeanVisitor;
 import org.infinispan.loaders.decorators.AsyncStoreConfig;
 import org.infinispan.loaders.decorators.SingletonStoreConfig;
 import org.infinispan.util.Util;
@@ -119,6 +120,12 @@
       testImmutability("async");
       this.async = asyncStoreConfig;
    }
+   
+   public void accept(ConfigurationBeanVisitor v) {
+      singletonStore.accept(v);
+      async.accept(v);
+      v.visitCacheLoaderConfig(this);
+   }
 
    @Override
    public boolean equals(Object obj) {

Modified: trunk/core/src/main/java/org/infinispan/loaders/CacheLoaderConfig.java
===================================================================
--- trunk/core/src/main/java/org/infinispan/loaders/CacheLoaderConfig.java	2009-09-10 11:34:56 UTC (rev 805)
+++ trunk/core/src/main/java/org/infinispan/loaders/CacheLoaderConfig.java	2009-09-11 01:37:44 UTC (rev 806)
@@ -1,5 +1,6 @@
 package org.infinispan.loaders;
 
+import org.infinispan.config.ConfigurationBeanVisitor;
 import org.infinispan.config.ConfigurationException;
 import org.infinispan.config.parsing.XmlConfigHelper;
 import org.infinispan.util.Util;
@@ -26,6 +27,8 @@
  */
 @XmlJavaTypeAdapter(CacheLoaderConfigAdapter.class)
 public interface CacheLoaderConfig extends Cloneable, Serializable {
+   
+   void accept(ConfigurationBeanVisitor visitor);
 
    CacheLoaderConfig clone();
 

Modified: trunk/core/src/main/java/org/infinispan/loaders/decorators/AsyncStoreConfig.java
===================================================================
--- trunk/core/src/main/java/org/infinispan/loaders/decorators/AsyncStoreConfig.java	2009-09-10 11:34:56 UTC (rev 805)
+++ trunk/core/src/main/java/org/infinispan/loaders/decorators/AsyncStoreConfig.java	2009-09-11 01:37:44 UTC (rev 806)
@@ -5,6 +5,7 @@
 import javax.xml.bind.annotation.XmlAttribute;
 
 import org.infinispan.config.AbstractNamedCacheConfigurationBean;
+import org.infinispan.config.ConfigurationBeanVisitor;
 import org.infinispan.config.Dynamic;
 
 /**
@@ -79,4 +80,8 @@
          throw new RuntimeException("Should not happen!", e);
       }
    }
+
+   public void accept(ConfigurationBeanVisitor v) {
+      v.visitAsyncStoreConfig(this);
+   }
 }

Modified: trunk/core/src/main/java/org/infinispan/loaders/decorators/SingletonStoreConfig.java
===================================================================
--- trunk/core/src/main/java/org/infinispan/loaders/decorators/SingletonStoreConfig.java	2009-09-10 11:34:56 UTC (rev 805)
+++ trunk/core/src/main/java/org/infinispan/loaders/decorators/SingletonStoreConfig.java	2009-09-11 01:37:44 UTC (rev 806)
@@ -5,6 +5,7 @@
 import javax.xml.bind.annotation.XmlAttribute;
 
 import org.infinispan.config.AbstractNamedCacheConfigurationBean;
+import org.infinispan.config.ConfigurationBeanVisitor;
 
 /**
  * Configuration for a singleton store
@@ -84,4 +85,8 @@
          throw new RuntimeException("Should not happen", e);
       }
    }
+
+   public void accept(ConfigurationBeanVisitor v) {
+      v.visitSingletonStoreConfig(this);
+   }
 }



More information about the infinispan-commits mailing list