[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