[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