[infinispan-commits] Infinispan SVN: r529 - in trunk/core/src: main/java/org/infinispan/config/parsing and 2 other directories.

infinispan-commits at lists.jboss.org infinispan-commits at lists.jboss.org
Thu Jul 9 04:30:28 EDT 2009


Author: vblagojevic at jboss.com
Date: 2009-07-09 04:30:27 -0400 (Thu, 09 Jul 2009)
New Revision: 529

Added:
   trunk/core/src/main/java/org/infinispan/config/parsing/TransactionConfigReader.java
Removed:
   trunk/core/src/test/java/org/infinispan/config/parsing/AutomatedXmlFileParsingTest.java
Modified:
   trunk/core/src/main/java/org/infinispan/config/Configuration.java
   trunk/core/src/main/java/org/infinispan/config/parsing/AutomatedXmlConfigurationParserImpl.java
   trunk/core/src/test/java/org/infinispan/config/parsing/XmlFileParsingTest.java
   trunk/core/src/test/resources/configs/named-cache-test.xml
Log:
add special processing to transaction element
remove unneeded test

Modified: trunk/core/src/main/java/org/infinispan/config/Configuration.java
===================================================================
--- trunk/core/src/main/java/org/infinispan/config/Configuration.java	2009-07-09 07:57:25 UTC (rev 528)
+++ trunk/core/src/main/java/org/infinispan/config/Configuration.java	2009-07-09 08:30:27 UTC (rev 529)
@@ -22,6 +22,7 @@
 package org.infinispan.config;
 
 import org.infinispan.config.parsing.ClusteringConfigReader;
+import org.infinispan.config.parsing.TransactionConfigReader;
 import org.infinispan.distribution.DefaultConsistentHash;
 import org.infinispan.eviction.EvictionStrategy;
 import org.infinispan.factories.annotations.Inject;
@@ -45,7 +46,7 @@
          @ConfigurationElement(name = "default", parent = "infinispan", description = ""),
          @ConfigurationElement(name = "namedCache", parent = "infinispan", description = ""),
          @ConfigurationElement(name = "locking", parent = "default", description = ""),
-         @ConfigurationElement(name = "transaction", parent = "default", description = ""), 
+         @ConfigurationElement(name = "transaction", parent = "default", description = "", customReader=TransactionConfigReader.class), 
          @ConfigurationElement(name = "jmxStatistics", parent = "default", description = ""),
          @ConfigurationElement(name = "lazyDeserialization", parent = "default", description = ""),  
          @ConfigurationElement(name = "invocationBatching", parent = "default", description = ""),   

Modified: trunk/core/src/main/java/org/infinispan/config/parsing/AutomatedXmlConfigurationParserImpl.java
===================================================================
--- trunk/core/src/main/java/org/infinispan/config/parsing/AutomatedXmlConfigurationParserImpl.java	2009-07-09 07:57:25 UTC (rev 528)
+++ trunk/core/src/main/java/org/infinispan/config/parsing/AutomatedXmlConfigurationParserImpl.java	2009-07-09 08:30:27 UTC (rev 529)
@@ -252,7 +252,7 @@
    
    public void visitElement(Element e, AbstractConfigurationBean bean) throws ConfigurationException {     
       ConfigurationElement ce = customReader(e, bean.getClass());      
-      //has customer reader, use it
+      //has custom reader? if so, use it
       if (ce != null) {
          Class<? extends ConfigurationElementReader> readerClass = ce.customReader();
          ConfigurationElementReader reader = null;
@@ -265,20 +265,24 @@
          }
       } else {
          //normal processing
-         for (Method m : bean.getClass().getMethods()) {
-            boolean setter = m.getName().startsWith("set") && m.getParameterTypes().length == 1;
-            if (setter) {
-               reflectAndInvokeAttribute(bean, m, e);
-               reflectAndInvokeProperties(bean, m, e);              
-            }
+         visitElementWithNoCustomReader(e, bean);
+      }
+   }
+
+   public void visitElementWithNoCustomReader(Element e, AbstractConfigurationBean bean) {
+      for (Method m : bean.getClass().getMethods()) {
+         boolean setter = m.getName().startsWith("set") && m.getParameterTypes().length == 1;
+         if (setter) {
+            reflectAndInvokeAttribute(bean, m, e);
+            reflectAndInvokeProperties(bean, m, e);              
          }
-         NodeList nodeList = e.getChildNodes();
-         for (int numChildren = nodeList.getLength(), i = 0; i < numChildren; i++) {
-            Node child = nodeList.item(i);
-            if (child instanceof Element) {               
-               // recursive step
-               visitElement((Element) child, bean);
-            }
+      }
+      NodeList nodeList = e.getChildNodes();
+      for (int numChildren = nodeList.getLength(), i = 0; i < numChildren; i++) {
+         Node child = nodeList.item(i);
+         if (child instanceof Element) {               
+            // recursive step
+            visitElement((Element) child, bean);
          }
       }
    }

Added: trunk/core/src/main/java/org/infinispan/config/parsing/TransactionConfigReader.java
===================================================================
--- trunk/core/src/main/java/org/infinispan/config/parsing/TransactionConfigReader.java	                        (rev 0)
+++ trunk/core/src/main/java/org/infinispan/config/parsing/TransactionConfigReader.java	2009-07-09 08:30:27 UTC (rev 529)
@@ -0,0 +1,55 @@
+/*
+ * JBoss, Home of Professional Open Source.
+ * Copyright 2009, Red Hat Middleware LLC, and individual contributors
+ * as indicated by the @author tags. See the copyright.txt file in the
+ * distribution for a full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package org.infinispan.config.parsing;
+
+import org.infinispan.config.AbstractConfigurationBean;
+import org.infinispan.config.Configuration;
+import org.infinispan.transaction.lookup.GenericTransactionManagerLookup;
+import org.w3c.dom.Element;
+
+public class TransactionConfigReader implements ConfigurationElementReader {
+
+   private AutomatedXmlConfigurationParserImpl parser;
+
+   public TransactionConfigReader() {
+      super();
+   }
+
+   public void setParser(AutomatedXmlConfigurationParserImpl parser) {
+      this.parser = parser;
+   }
+
+   public void process(Element e, AbstractConfigurationBean bean) {
+      if (e == null)
+         return; // we might not have this configured
+
+      Configuration config = (Configuration) bean;
+      String tmp = parser.getAttributeValue(e, "transactionManagerLookupClass");
+      if (parser.existsAttribute(tmp)) {
+         config.setTransactionManagerLookupClass(tmp);
+      } else {
+         // use defaults since the transaction element is still present!
+         config.setTransactionManagerLookupClass(GenericTransactionManagerLookup.class.getName());
+      }
+      parser.visitElementWithNoCustomReader(e, config);
+   }
+}

Deleted: trunk/core/src/test/java/org/infinispan/config/parsing/AutomatedXmlFileParsingTest.java
===================================================================
--- trunk/core/src/test/java/org/infinispan/config/parsing/AutomatedXmlFileParsingTest.java	2009-07-09 07:57:25 UTC (rev 528)
+++ trunk/core/src/test/java/org/infinispan/config/parsing/AutomatedXmlFileParsingTest.java	2009-07-09 08:30:27 UTC (rev 529)
@@ -1,196 +0,0 @@
-package org.infinispan.config.parsing;
-
-import org.infinispan.config.CacheLoaderManagerConfig;
-import org.infinispan.config.Configuration;
-import org.infinispan.config.GlobalConfiguration;
-import org.infinispan.distribution.DefaultConsistentHash;
-import org.infinispan.loaders.file.FileCacheStoreConfig;
-import org.infinispan.util.concurrent.IsolationLevel;
-import org.testng.annotations.Test;
-
-import java.io.IOException;
-import java.util.Map;
-//TODO this is temp test, a duplicate of XmlFileParsingTest, will remove soon (Vladimir)
-
- at Test(groups = "unit", testName = "config.parsing.XmlFileParsingTest2")
-public class AutomatedXmlFileParsingTest {
-
-   public void testNamedCacheFile() throws IOException {
-      AutomatedXmlConfigurationParserImpl parser = new AutomatedXmlConfigurationParserImpl("configs/named-cache-test.xml");
-
-      GlobalConfiguration gc = parser.parseGlobalConfiguration();
-
-      assert gc.getAsyncListenerExecutorFactoryClass().equals("org.infinispan.executors.DefaultExecutorFactory");
-      assert gc.getAsyncListenerExecutorProperties().getProperty("maxThreads").equals("5");
-      assert gc.getAsyncListenerExecutorProperties().getProperty("threadNamePrefix").equals("AsyncListenerThread");
-
-      assert gc.getAsyncTransportExecutorFactoryClass().equals("org.infinispan.executors.DefaultExecutorFactory");
-      assert gc.getAsyncTransportExecutorProperties().getProperty("maxThreads").equals("25");
-      assert gc.getAsyncTransportExecutorProperties().getProperty("threadNamePrefix").equals("AsyncSerializationThread");
-
-      assert gc.getEvictionScheduledExecutorFactoryClass().equals("org.infinispan.executors.DefaultScheduledExecutorFactory");
-      assert gc.getEvictionScheduledExecutorProperties().getProperty("threadNamePrefix").equals("EvictionThread");
-
-      assert gc.getReplicationQueueScheduledExecutorFactoryClass().equals("org.infinispan.executors.DefaultScheduledExecutorFactory");
-      assert gc.getReplicationQueueScheduledExecutorProperties().getProperty("threadNamePrefix").equals("ReplicationQueueThread");
-
-      assert gc.getTransportClass().equals("org.infinispan.remoting.transport.jgroups.JGroupsTransport");
-      assert gc.getTransportProperties().isEmpty();
-
-      assert gc.getMarshallerClass().equals("org.infinispan.marshall.VersionAwareMarshaller");
-      assert gc.getMarshallVersionString().equals("1.0");
-
-      Configuration defaultConfiguration = parser.parseDefaultConfiguration();
-
-      assert defaultConfiguration.getLockAcquisitionTimeout() == 1000;
-      assert defaultConfiguration.getConcurrencyLevel() == 100;
-      assert defaultConfiguration.getIsolationLevel() == IsolationLevel.READ_COMMITTED;
-
-      Map<String, Configuration> namedCaches = parser.parseNamedConfigurations();
-
-      Configuration c = namedCaches.get("transactional");
-
-      assert c.getTransactionManagerLookupClass().equals("org.infinispan.transaction.lookup.GenericTransactionManagerLookup");
-
-      c = namedCaches.get("syncRepl");
-
-      assert c.getCacheMode() == Configuration.CacheMode.REPL_SYNC;
-      assert !c.isFetchInMemoryState();
-      assert c.getSyncReplTimeout() == 15000;
-
-      c = namedCaches.get("asyncRepl");
-
-      assert c.getCacheMode() == Configuration.CacheMode.REPL_ASYNC;
-      assert !c.isUseReplQueue();
-      assert !c.isUseAsyncMarshalling();
-      assert !c.isFetchInMemoryState();
-
-      c = namedCaches.get("asyncReplQueue");
-
-      assert c.getCacheMode() == Configuration.CacheMode.REPL_ASYNC;
-      assert c.isUseReplQueue();
-      assert c.isUseAsyncMarshalling();
-      assert !c.isFetchInMemoryState();
-
-      c = namedCaches.get("txSyncRepl");
-
-      assert c.getTransactionManagerLookupClass() == null;
-      assert c.getCacheMode() == Configuration.CacheMode.REPL_SYNC;
-      assert !c.isFetchInMemoryState();
-      assert c.getSyncReplTimeout() == 15000;
-
-      c = namedCaches.get("overriding");
-
-      assert c.getTransactionManagerLookupClass() == null;
-      assert c.getCacheMode() == Configuration.CacheMode.LOCAL;
-      assert c.getLockAcquisitionTimeout() == 20000;
-      assert c.getConcurrencyLevel() == 1000;
-      assert c.getIsolationLevel() == IsolationLevel.REPEATABLE_READ;
-      assert !c.isUseLazyDeserialization();
-
-      c = namedCaches.get("lazyDeserialization");
-      assert c.isUseLazyDeserialization();
-
-      c = namedCaches.get("withLoader");
-      CacheLoaderManagerConfig loaderManagerConfig = c.getCacheLoaderManagerConfig();
-      assert loaderManagerConfig.getCacheLoaderConfigs().size() == 1;
-      FileCacheStoreConfig csConf = (FileCacheStoreConfig) loaderManagerConfig.getFirstCacheLoaderConfig();
-      assert csConf.getCacheLoaderClassName().equals("org.infinispan.loaders.file.FileCacheStore");
-      assert csConf.isFetchPersistentState();
-      assert csConf.isIgnoreModifications();
-      assert csConf.isPurgeOnStartup();
-      assert csConf.getLocation().equals("/tmp/FileCacheStore-Location");
-      assert csConf.getSingletonStoreConfig().getPushStateTimeout() == 20000;
-      assert csConf.getSingletonStoreConfig().isPushStateWhenCoordinator() == true;
-      assert csConf.getAsyncStoreConfig().getBatchSize() == 1000;
-      assert csConf.getAsyncStoreConfig().getThreadPoolSize() == 5;
-      assert csConf.getAsyncStoreConfig().isEnabled();
-
-
-      c = namedCaches.get("withouthJmxEnabled");
-      assert !c.isExposeJmxStatistics();
-      assert !gc.isExposeGlobalJmxStatistics();
-      assert gc.isAllowDuplicateDomains();
-      assert gc.getJmxDomain().equals("funky_domain");
-      assert gc.getMBeanServerLookup().equals("org.infinispan.jmx.PerThreadMBeanServerLookup");
-
-      c = namedCaches.get("dist");
-      assert c.getCacheMode() == Configuration.CacheMode.DIST_SYNC;
-      assert c.getL1Lifespan() == 600000;
-      assert c.getRehashWaitTime() == 120000;
-      assert c.getConsistentHashClass().equals(DefaultConsistentHash.class.getName());
-      assert c.getNumOwners() == 3;
-      assert c.isL1CacheEnabled();
-   }
-
-   public void testConfigurationMerging() throws IOException {
-      AutomatedXmlConfigurationParserImpl parser = new AutomatedXmlConfigurationParserImpl("configs/named-cache-test.xml");
-      Configuration defaultCfg = parser.parseDefaultConfiguration();
-      Map<String, Configuration> namedCaches = parser.parseNamedConfigurations();
-
-      Configuration c = defaultCfg.clone();
-      c.applyOverrides(namedCaches.get("transactional"));
-
-      assert c.getCacheMode() == Configuration.CacheMode.LOCAL;
-      assert c.getTransactionManagerLookupClass().equals("org.infinispan.transaction.lookup.GenericTransactionManagerLookup");
-      assert c.getLockAcquisitionTimeout() == 1000;
-      assert c.getConcurrencyLevel() == 100;
-      assert c.getIsolationLevel() == IsolationLevel.READ_COMMITTED;
-
-      c = defaultCfg.clone();
-      c.applyOverrides(namedCaches.get("syncRepl"));
-
-      assert c.getTransactionManagerLookupClass() == null;
-      assert c.getCacheMode() == Configuration.CacheMode.REPL_SYNC;
-      assert !c.isFetchInMemoryState();
-      assert c.getSyncReplTimeout() == 15000;
-      assert c.getLockAcquisitionTimeout() == 1000;
-      assert c.getIsolationLevel() == IsolationLevel.READ_COMMITTED;
-      assert c.getConcurrencyLevel() == 100;
-
-      c = defaultCfg.clone();
-      c.applyOverrides(namedCaches.get("asyncRepl"));
-
-      assert c.getTransactionManagerLookupClass() == null;
-      assert c.getCacheMode() == Configuration.CacheMode.REPL_ASYNC;
-      assert !c.isUseReplQueue();
-      assert !c.isUseAsyncMarshalling();
-      assert !c.isFetchInMemoryState();
-      assert c.getLockAcquisitionTimeout() == 1000;
-      assert c.getIsolationLevel() == IsolationLevel.READ_COMMITTED;
-      assert c.getConcurrencyLevel() == 100;
-
-      c = defaultCfg.clone();
-      c.applyOverrides(namedCaches.get("asyncReplQueue"));
-
-      assert c.getTransactionManagerLookupClass() == null;
-      assert c.getCacheMode() == Configuration.CacheMode.REPL_ASYNC;
-      assert c.isUseReplQueue();
-      assert c.getReplQueueInterval() == 1234;
-      assert c.getReplQueueMaxElements() == 100;
-      assert c.isUseAsyncMarshalling();
-      assert !c.isFetchInMemoryState();
-      assert c.getLockAcquisitionTimeout() == 1000;
-      assert c.getIsolationLevel() == IsolationLevel.READ_COMMITTED;
-      assert c.getConcurrencyLevel() == 100;
-
-      c = defaultCfg.clone();
-      c.applyOverrides(namedCaches.get("txSyncRepl"));
-      assert c.getTransactionManagerLookupClass() ==null;
-      assert c.getCacheMode() == Configuration.CacheMode.REPL_SYNC;
-      assert !c.isFetchInMemoryState();
-      assert c.getSyncReplTimeout() == 15000;
-      assert c.getLockAcquisitionTimeout() == 1000;
-      assert c.getIsolationLevel() == IsolationLevel.READ_COMMITTED;
-      assert c.getConcurrencyLevel() == 100;
-
-      c = defaultCfg.clone();
-      c.applyOverrides(namedCaches.get("overriding"));
-
-      assert c.getTransactionManagerLookupClass() == null;
-      assert c.getCacheMode() == Configuration.CacheMode.LOCAL;
-      assert c.getLockAcquisitionTimeout() == 20000;
-      assert c.getConcurrencyLevel() == 1000;
-      assert c.getIsolationLevel() == IsolationLevel.REPEATABLE_READ;
-   }
-}
\ No newline at end of file

Modified: trunk/core/src/test/java/org/infinispan/config/parsing/XmlFileParsingTest.java
===================================================================
--- trunk/core/src/test/java/org/infinispan/config/parsing/XmlFileParsingTest.java	2009-07-09 07:57:25 UTC (rev 528)
+++ trunk/core/src/test/java/org/infinispan/config/parsing/XmlFileParsingTest.java	2009-07-09 08:30:27 UTC (rev 529)
@@ -14,9 +14,24 @@
 @Test(groups = "unit", testName = "config.parsing.XmlFileParsingTest")
 public class XmlFileParsingTest {
 
-   public void testNamedCacheFile() throws IOException {
-      XmlConfigurationParser parser = new XmlConfigurationParserImpl("configs/named-cache-test.xml");
-
+   public void testNamedCacheFileRegular()throws IOException {
+      testNamedCacheFile(new XmlConfigurationParserImpl("configs/named-cache-test.xml"));
+   }
+   
+   public void testNamedCacheFileAutomated()throws IOException {
+      testNamedCacheFile(new AutomatedXmlConfigurationParserImpl("configs/named-cache-test.xml"));
+   }
+   
+   public void testConfigurationMergingRegular() throws IOException{
+      testConfigurationMerging(new XmlConfigurationParserImpl("configs/named-cache-test.xml"));
+   }
+   
+   public void testConfigurationMergingRegularAutomated() throws IOException{
+      testConfigurationMerging(new AutomatedXmlConfigurationParserImpl("configs/named-cache-test.xml"));
+   }
+   
+   private void testNamedCacheFile(XmlConfigurationParser parser) throws IOException {
+      
       GlobalConfiguration gc = parser.parseGlobalConfiguration();
 
       assert gc.getAsyncListenerExecutorFactoryClass().equals("org.infinispan.executors.DefaultExecutorFactory");
@@ -50,6 +65,8 @@
       Configuration c = namedCaches.get("transactional");
 
       assert c.getTransactionManagerLookupClass().equals("org.infinispan.transaction.lookup.GenericTransactionManagerLookup");
+      assert c.isUseEagerLocking();
+      assert !c.isSyncRollbackPhase();
 
       c = namedCaches.get("syncRepl");
 
@@ -99,6 +116,11 @@
       assert csConf.isIgnoreModifications();
       assert csConf.isPurgeOnStartup();
       assert csConf.getLocation().equals("/tmp/FileCacheStore-Location");
+      assert csConf.getSingletonStoreConfig().getPushStateTimeout() == 20000;
+      assert csConf.getSingletonStoreConfig().isPushStateWhenCoordinator() == true;
+      assert csConf.getAsyncStoreConfig().getBatchSize() == 1000;
+      assert csConf.getAsyncStoreConfig().getThreadPoolSize() == 5;
+      assert csConf.getAsyncStoreConfig().isEnabled();
 
       c = namedCaches.get("withouthJmxEnabled");
       assert !c.isExposeJmxStatistics();
@@ -116,8 +138,8 @@
       assert c.isL1CacheEnabled();
    }
 
-   public void testConfigurationMerging() throws IOException {
-      XmlConfigurationParser parser = new XmlConfigurationParserImpl("configs/named-cache-test.xml");
+   private void testConfigurationMerging(XmlConfigurationParser parser) throws IOException {
+      
       Configuration defaultCfg = parser.parseDefaultConfiguration();
       Map<String, Configuration> namedCaches = parser.parseNamedConfigurations();
 

Modified: trunk/core/src/test/resources/configs/named-cache-test.xml
===================================================================
--- trunk/core/src/test/resources/configs/named-cache-test.xml	2009-07-09 07:57:25 UTC (rev 528)
+++ trunk/core/src/test/resources/configs/named-cache-test.xml	2009-07-09 08:30:27 UTC (rev 529)
@@ -36,7 +36,7 @@
    </default>
 
    <namedCache name="transactional">
-      <transaction transactionManagerLookupClass="org.infinispan.transaction.lookup.GenericTransactionManagerLookup"/>
+      <transaction transactionManagerLookupClass="org.infinispan.transaction.lookup.GenericTransactionManagerLookup" useEagerLocking="true"/>
    </namedCache>
 
    <namedCache name="syncRepl">




More information about the infinispan-commits mailing list