[infinispan-commits] Infinispan SVN: r527 - in trunk/core/src: main/java/org/infinispan/config/parsing and 1 other directories.
infinispan-commits at lists.jboss.org
infinispan-commits at lists.jboss.org
Thu Jul 9 03:38:36 EDT 2009
Author: vblagojevic at jboss.com
Date: 2009-07-09 03:38:36 -0400 (Thu, 09 Jul 2009)
New Revision: 527
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/AutomatedXmlFileParsingTest.java
Log:
ns
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:06:15 UTC (rev 526)
+++ trunk/core/src/main/java/org/infinispan/config/Configuration.java 2009-07-09 07:38:36 UTC (rev 527)
@@ -53,6 +53,7 @@
@ConfigurationElement(name = "hash", parent = "default", description = ""),
@ConfigurationElement(name = "eviction", parent = "default", description = ""),
@ConfigurationElement(name = "expiration", parent = "default", description = ""),
+ @ConfigurationElement(name = "unsafe", parent = "default", description = ""),
@ConfigurationElement(name = "customInterceptors", parent = "default", description = "")
})
public class Configuration extends AbstractNamedCacheConfigurationBean {
@@ -89,6 +90,8 @@
return unsafeUnreliableReturnValues;
}
+ @ConfigurationAttribute(name = "unreliableReturnValues",
+ containingElement = "unsafe")
public void setUnsafeUnreliableReturnValues(boolean unsafeUnreliableReturnValues) {
testImmutability("unsafeUnreliableReturnValues");
this.unsafeUnreliableReturnValues = unsafeUnreliableReturnValues;
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:06:15 UTC (rev 526)
+++ trunk/core/src/main/java/org/infinispan/config/parsing/AutomatedXmlConfigurationParserImpl.java 2009-07-09 07:38:36 UTC (rev 527)
@@ -29,9 +29,9 @@
import org.w3c.dom.NodeList;
/**
- * The default XML configuration parser
+ * XML configuration parser that uses reflection API and annotations to read Infinispan configuration files.
*
- * @author Manik Surtani
+ * @author Vladimir Blagojevic
* @since 4.0
*/
public class AutomatedXmlConfigurationParserImpl extends XmlParserBase implements XmlConfigurationParser {
@@ -195,10 +195,10 @@
ConfigurationElements configurationElements = bean.getAnnotation(ConfigurationElements.class);
ConfigurationElement configurationElement = bean.getAnnotation(ConfigurationElement.class);
- if (configurationElement != null && configurationElements == null) {
+ if (configurationElement != null) {
ces = new ConfigurationElement[] { configurationElement };
}
- if (configurationElements != null && configurationElement == null) {
+ if (configurationElements != null) {
ces = configurationElements.elements();
}
if (ces != null) {
@@ -242,6 +242,7 @@
throw new ConfigurationException(e1);
}
} else {
+ //normal processing
for (Method m : bean.getClass().getMethods()) {
boolean setter = m.getName().startsWith("set") && m.getParameterTypes().length == 1;
if (setter) {
@@ -252,10 +253,9 @@
NodeList nodeList = e.getChildNodes();
for (int numChildren = nodeList.getLength(), i = 0; i < numChildren; i++) {
Node node = nodeList.item(i);
- if (node instanceof Element) {
- Element childNode = (Element) node;
+ if (node instanceof Element) {
// recursive step
- visitElement(childNode, bean);
+ visitElement((Element) node, bean);
}
}
}
@@ -283,8 +283,11 @@
boolean foundMatchingChild = childBean != null
&& !bean.getClass().equals(childBean.getClass())
&& parameterType.isInstance(childBean);
- if (foundMatchingChild) {
+ if (foundMatchingChild) {
+ //recurse into child
+ visitElement(node,childBean);
try {
+ //and finally invoke setter on father bean
m.invoke(bean, childBean);
} catch (Exception ae) {
throw new ConfigurationException("Illegal bean value " + childBean + ",type="
Modified: 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:06:15 UTC (rev 526)
+++ trunk/core/src/test/java/org/infinispan/config/parsing/AutomatedXmlFileParsingTest.java 2009-07-09 07:38:36 UTC (rev 527)
@@ -100,7 +100,13 @@
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();
More information about the infinispan-commits
mailing list