[jboss-svn-commits] JBoss Common SVN: r3674 - in jbossxb/trunk/src: main/java/org/jboss/xb/builder and 11 other directories.

jboss-svn-commits at lists.jboss.org jboss-svn-commits at lists.jboss.org
Wed Nov 11 11:42:15 EST 2009


Author: alex.loubyansky at jboss.com
Date: 2009-11-11 11:42:15 -0500 (Wed, 11 Nov 2009)
New Revision: 3674

Added:
   jbossxb/trunk/src/main/java/org/jboss/xb/builder/runtime/ArrayWrapperRepeatableParticleHandler.java
   jbossxb/trunk/src/test/java/org/jboss/test/xb/builder/object/element/xmlelements/
   jbossxb/trunk/src/test/java/org/jboss/test/xb/builder/object/element/xmlelements/support/
   jbossxb/trunk/src/test/java/org/jboss/test/xb/builder/object/element/xmlelements/support/Foo4.java
   jbossxb/trunk/src/test/java/org/jboss/test/xb/builder/object/element/xmlelements/test/
   jbossxb/trunk/src/test/java/org/jboss/test/xb/builder/object/element/xmlelements/test/XmlElementsUnitTestCase.java
   jbossxb/trunk/src/test/resources/org/jboss/test/xb/builder/object/element/wrapper/test/Wrapper_testFoo5Wrapper.xml
   jbossxb/trunk/src/test/resources/org/jboss/test/xb/builder/object/element/xmlelements/
   jbossxb/trunk/src/test/resources/org/jboss/test/xb/builder/object/element/xmlelements/test/
   jbossxb/trunk/src/test/resources/org/jboss/test/xb/builder/object/element/xmlelements/test/XmlElements_testArray.xml
Removed:
   jbossxb/trunk/src/main/java/org/jboss/xb/builder/runtime/ArraySequenceBinding.java
   jbossxb/trunk/src/main/java/org/jboss/xb/builder/runtime/ArrayWrapper.java
Modified:
   jbossxb/trunk/src/main/java/org/jboss/xb/binding/sunday/unmarshalling/SundayContentHandler.java
   jbossxb/trunk/src/main/java/org/jboss/xb/builder/JBossXBNoSchemaBuilder.java
   jbossxb/trunk/src/main/java/org/jboss/xb/builder/runtime/BeanHandler.java
   jbossxb/trunk/src/main/java/org/jboss/xb/builder/runtime/BuilderParticleHandler.java
   jbossxb/trunk/src/main/java/org/jboss/xb/builder/runtime/PropertyHandler.java
   jbossxb/trunk/src/main/java/org/jboss/xb/builder/runtime/PropertyInterceptor.java
   jbossxb/trunk/src/main/java/org/jboss/xb/builder/runtime/PropertyWildcardHandler.java
   jbossxb/trunk/src/test/java/org/jboss/test/xb/builder/object/element/wrapper/test/WrapperUnitTestCase.java
   jbossxb/trunk/src/test/java/org/jboss/test/xb/builder/object/type/xmlanyelement/test/ArrayElementWildcardUnitTestCase.java
   jbossxb/trunk/src/test/java/org/jboss/test/xb/builder/object/type/xmlanyelement/test/ArrayObjectWildcardUnitTestCase.java
Log:
JBXB-231

Modified: jbossxb/trunk/src/main/java/org/jboss/xb/binding/sunday/unmarshalling/SundayContentHandler.java
===================================================================
--- jbossxb/trunk/src/main/java/org/jboss/xb/binding/sunday/unmarshalling/SundayContentHandler.java	2009-11-11 15:41:50 UTC (rev 3673)
+++ jbossxb/trunk/src/main/java/org/jboss/xb/binding/sunday/unmarshalling/SundayContentHandler.java	2009-11-11 16:42:15 UTC (rev 3674)
@@ -187,8 +187,14 @@
                   StackItem parentItem = stack.peek();
                   if(parentItem.repeatableParticleValue != null)
                   {
-                     endRepeatableParticle(parentItem.o, parentItem.repeatableParticleValue, item.qName, item.particle, parentItem.particle);
-                     parentItem.repeatableParticleValue = null;
+                     // TODO this has to be done for every endRepeatableParticle
+                     StackItem notSkippedParent = parentItem;
+                     if(parentItem.particle.getTerm().isSkip())
+                        notSkippedParent = stack.peek1();
+                     int i = stack.size() - 2;
+                     while(notSkippedParent.particle.getTerm().isSkip() && i >= 0)
+                        notSkippedParent = stack.peek(i--);
+                     endRepeatableParticle(parentItem, item.qName, item.particle, notSkippedParent.particle);
                   }
                }
             }
@@ -210,9 +216,7 @@
             TermBinding term = currentParticle.getTerm();
             if(item.repeatableParticleValue != null /* && currentParticle.isRepeatable()*/ && term.isWildcard())
             {
-               StackItem parentItem = stack.peek1();
-               endRepeatableParticle(parentItem.o, item.repeatableParticleValue, item.qName, currentParticle, parentItem.particle);
-               item.repeatableParticleValue = null;
+               endRepeatableParticle(item, item.qName, currentParticle, item.particle);
             }
 
             pop();
@@ -221,8 +225,7 @@
                StackItem parentItem = stack.peek();
                if(parentItem.repeatableParticleValue != null)
                {
-                  endRepeatableParticle(parentItem.o, parentItem.repeatableParticleValue, item.qName, item.particle, parentItem.particle);
-                  parentItem.repeatableParticleValue = null;
+                  endRepeatableParticle(parentItem, item.qName, item.particle, parentItem.particle);
                }
             }
          }
@@ -325,8 +328,7 @@
                            pop();
                            if(parentItem.repeatableParticleValue != null)
                            {
-                              endRepeatableParticle(parentItem.o, parentItem.repeatableParticleValue, item.qName, item.particle, parentItem.particle);
-                              parentItem.repeatableParticleValue = null;
+                              endRepeatableParticle(parentItem, item.qName, item.particle, parentItem.particle);
                            }
                            continue;
                         }
@@ -349,8 +351,7 @@
                         StackItem parentItem = stack.peek();
                         if(parentItem.repeatableParticleValue != null)
                         {
-                           endRepeatableParticle(parentItem.o, parentItem.repeatableParticleValue, item.qName, item.particle, parentItem.particle);
-                           parentItem.repeatableParticleValue = null;
+                           endRepeatableParticle(parentItem, item.qName, item.particle, parentItem.particle);
                         }
                      }
                      continue;
@@ -420,12 +421,12 @@
                         ParticleBinding modelGroupParticle = cursor.getParticle();
                         if(modelGroupParticle.isRepeatable())
                         {
-                           stack.peek().repeatableParticleValue = startRepeatableParticle(o, startName, modelGroupParticle);
+                           startRepeatableParticle(stack.peek(), o, startName, modelGroupParticle);
                         }
 
                         handler = getHandler(modelGroupParticle);
                         o = handler.startParticle(o, startName, modelGroupParticle, atts, nsRegistry);
-                        push(startName, cursor, o, handler, parentType);
+                        push(startName, cursor, o, handler, parentType);                        
                      }
                      particle = cursor.getCurrentParticle();
                   }
@@ -492,14 +493,12 @@
                      if(item.repeatableParticleValue != null &&
                            prevParticle != null && prevParticle.isRepeatable() && prevParticle.getTerm().isModelGroup())
                      {
-                        StackItem parentItem = stack.peek1();
-                        endRepeatableParticle(parentItem.o, item.repeatableParticleValue, item.qName, prevParticle, parentItem.particle);
-                        item.repeatableParticleValue = null;
+                        endRepeatableParticle(item, item.qName, prevParticle, item.particle);
                      }
 
                      if(newCursors.size() > 1 && curParticle.isRepeatable())
                      {
-                        stack.peek().repeatableParticleValue = startRepeatableParticle(stack.peek1().o, startName, curParticle);
+                        startRepeatableParticle(stack.peek1(), stack.peek1().o, startName, curParticle);
                      }
                   }
                   else
@@ -548,7 +547,7 @@
 
             if(!repeatedParticle && particle.isRepeatable())
             {
-               stack.peek().repeatableParticleValue = startRepeatableParticle(parent, startName, particle);
+               startRepeatableParticle(stack.peek(), parent, startName, particle);
             }
             particle = new ParticleBinding(element/*, particle.getMinOccurs(), particle.getMaxOccurs(), particle.getMaxOccursUnbounded()*/);
          }
@@ -603,7 +602,7 @@
 
          if(!repeated && particle.isRepeatable())
          {
-            stack.peek().repeatableParticleValue = startRepeatableParticle(parent, startName, particle);
+            startRepeatableParticle(stack.peek(), parent, startName, particle);
          }
 
          TypeBinding type = element.getType();
@@ -801,23 +800,29 @@
       }
    }
 
-   private Object startRepeatableParticle(Object parent, QName startName, ParticleBinding particle)
+   private void startRepeatableParticle(StackItem parentItem, Object parent, QName startName, ParticleBinding particle)
    {
       if(trace)
          log.trace(" start repeatable (" + stack.size() + "): " + particle.getTerm());
       RepeatableParticleHandler repeatableHandler = particle.getTerm().getRepeatableHandler();
       // the way it is now it's never null
-      return repeatableHandler.startRepeatableParticle(parent, startName, particle);
+      Object repeatableContainer = repeatableHandler.startRepeatableParticle(parent, startName, particle);
+      if(repeatableContainer != null)
+      {
+         parentItem.repeatableParticleValue = repeatableContainer;
+         parentItem.repeatableHandler = repeatableHandler;
+      }
    }
 
-   private void endRepeatableParticle(Object parent, Object o, QName elementName, ParticleBinding particle, ParticleBinding parentParticle)
+   private void endRepeatableParticle(StackItem parentItem, QName elementName, ParticleBinding particle, ParticleBinding parentParticle)
    {
       if (trace)
          log.trace(" end repeatable (" + stack.size() + "): " + particle.getTerm());
-
-      RepeatableParticleHandler repeatableHandler = particle.getTerm().getRepeatableHandler();
+      RepeatableParticleHandler repeatableHandler = parentItem.repeatableHandler; //particle.getTerm().getRepeatableHandler();
       // the way it is now it's never null
-      repeatableHandler.endRepeatableParticle(parent, o, elementName, particle, parentParticle);
+      repeatableHandler.endRepeatableParticle(parentItem.o, parentItem.repeatableParticleValue, elementName, particle, parentParticle);
+      parentItem.repeatableParticleValue = null;
+      parentItem.repeatableHandler = null;
    }
 
    private void endParticle(StackItem item, StackItem parentItem)
@@ -838,7 +843,7 @@
       //item = (StackItem)stack.peek(parentStackPos);
       if(parentItem.o != null)
       {
-         ParticleBinding parentParticle = getParentParticle();//item.particle;
+         ParticleBinding parentParticle = getNotSkippedParent().particle;//item.particle;
          if(parentParticle == null)
             parentParticle = parentItem.particle;
          
@@ -846,8 +851,8 @@
             setParent(handler, parentItem.o, o, item.qName, modelGroupParticle, parentParticle);
          else
          {
-            RepeatableParticleHandler repeatableHandler = modelGroupParticle.getTerm().getRepeatableHandler();
-            repeatableHandler.addTermValue(parentItem.repeatableParticleValue, o, item.qName, modelGroupParticle, parentParticle, handler);
+            //RepeatableParticleHandler repeatableHandler = modelGroupParticle.getTerm().getRepeatableHandler();
+            parentItem.repeatableHandler.addTermValue(parentItem.repeatableParticleValue, o, item.qName, modelGroupParticle, parentParticle, handler);
          }
       }
    }
@@ -932,22 +937,22 @@
       }
    }
    
-   private ParticleBinding getParentParticle()
+   private StackItem getNotSkippedParent()
    {
       StackItem item = stack.peek1();
       if(item == null)
          return null;
       
       ParticleBinding particle = item.particle;
-      if(!particle.getTerm().isSkip())
-         return particle;
+      if(!particle.getTerm().isSkip() || item.repeatableParticleValue != null)
+         return item;
       
       for(int i = stack.size() - 3; i >= 0; --i)
       {
          item = stack.peek(i);
          particle = item.particle;
-         if(!particle.getTerm().isSkip())
-            return particle;
+         if(!particle.getTerm().isSkip() || item.repeatableParticleValue != null)
+            return item;
       }
       return null;
    }
@@ -1061,7 +1066,7 @@
                   {
                      ctx.parent = o;
                      ctx.particle = particle;
-                     ctx.parentParticle = getParentParticle();
+                     ctx.parentParticle = getNotSkippedParent().particle;
                      unmarshalled = beforeSetParent.beforeSetParent(unmarshalled, ctx);
                      ctx.clear();
                   }
@@ -1118,7 +1123,10 @@
 
       if(allInterceptors == 0)
       {
-         ParticleBinding parentParticle = getParentParticle();
+         StackItem notSkippedParentItem = getNotSkippedParent();
+         if(notSkippedParentItem != null)
+         {
+         ParticleBinding parentParticle = notSkippedParentItem.particle;
          boolean hasWildcard = false;
          if (parentParticle != null && parentParticle.getTerm().isElement())
          {
@@ -1137,12 +1145,11 @@
 
          if(parent != null)
          {
-            if(parentItem.repeatableParticleValue == null)
+            if(notSkippedParentItem.repeatableParticleValue == null)
                setParent(handler, parent, o, endName, particle, parentParticle);
             else
             {
-               RepeatableParticleHandler repeatableHandler = particle.getTerm().getRepeatableHandler();
-               repeatableHandler.addTermValue(parentItem.repeatableParticleValue, o, endName, particle, parentParticle, handler);
+               notSkippedParentItem.repeatableHandler.addTermValue(notSkippedParentItem.repeatableParticleValue, o, endName, particle, parentParticle, handler);
             }
          }
          else if(parentParticle != null && hasWildcard && stack.size() > 1)
@@ -1159,6 +1166,7 @@
             if(trace)
                log.trace("Value of " + endName + " " + o + " is promoted as the value of its parent element.");
          }
+         }
       }
       else
       {
@@ -1282,6 +1290,7 @@
       boolean ignoreCharacters;
       Object o;
       Object repeatableParticleValue;
+      RepeatableParticleHandler repeatableHandler;
       StringBuffer textContent;
       Boolean indentation;
       boolean ignorableCharacters = true;

Modified: jbossxb/trunk/src/main/java/org/jboss/xb/builder/JBossXBNoSchemaBuilder.java
===================================================================
--- jbossxb/trunk/src/main/java/org/jboss/xb/builder/JBossXBNoSchemaBuilder.java	2009-11-11 15:41:50 UTC (rev 3673)
+++ jbossxb/trunk/src/main/java/org/jboss/xb/builder/JBossXBNoSchemaBuilder.java	2009-11-11 16:42:15 UTC (rev 3674)
@@ -117,7 +117,7 @@
 import org.jboss.xb.binding.sunday.unmarshalling.WildcardBinding;
 import org.jboss.xb.builder.runtime.AbstractPropertyHandler;
 import org.jboss.xb.builder.runtime.AnyAttributePropertyHandler;
-import org.jboss.xb.builder.runtime.ArraySequenceBinding;
+import org.jboss.xb.builder.runtime.ArrayWrapperRepeatableParticleHandler;
 import org.jboss.xb.builder.runtime.BeanHandler;
 import org.jboss.xb.builder.runtime.BuilderParticleHandler;
 import org.jboss.xb.builder.runtime.BuilderSimpleParticleHandler;
@@ -1241,7 +1241,6 @@
          // Setup any new model and determine the wildcard type
          if (wildcardType.isArray())
          {
-            localModel = createArray(localModel);
             type = ((ArrayInfo) wildcardType).getComponentType();
             if (trace)
                log.trace("Wildcard " + wildcardProperty.getName() + " is an array of type " + type.getName());
@@ -1274,8 +1273,15 @@
          particleBinding.setMinOccurs(0);
          particleBinding.setMaxOccurs(1);
          localModel.addParticle(particleBinding);
-         typeBinding.getWildcard().setWildcardHandler((ParticleHandler) wildcardHandler);
+
+         wildcard.setWildcardHandler((ParticleHandler) wildcardHandler);
          beanAdapterFactory.setWildcardHandler(wildcardHandler);
+         
+         if(wildcardType.isArray())
+         {
+            particleBinding.setMaxOccursUnbounded(true);
+            wildcard.setRepeatableHandler(new ArrayWrapperRepeatableParticleHandler(beanAdapterFactory));
+         }
       }
 
       JBossXmlChildWildcard childWildcard = typeInfo.getUnderlyingAnnotation(JBossXmlChildWildcard.class);
@@ -1362,15 +1368,9 @@
       XmlType propertyXmlType = null;
       JBossXmlModelGroup propertyXmlModelGroup = null;
       // Setup any new model
-      if (propertyType.isArray())
+      if (propertyType.isCollection())
       {
          if (trace)
-            log.trace("Property " + property.getName() + " is an array");
-         localModel = createArray(localModel);
-      }
-      else if (propertyType.isCollection())
-      {
-         if (trace)
             log.trace("Property " + property.getName() + " is a collection");
          JBossXmlCollection xmlCol = property.getUnderlyingAnnotation(JBossXmlCollection.class);
          if (xmlCol != null)
@@ -1437,8 +1437,9 @@
          String wrapperNamespace = xmlWrapper.namespace();
          String wrapperName = xmlWrapper.name();
          QName wrapperQName = generateXmlName(property.getName(), elementForm, wrapperNamespace, wrapperName);
-         localModel = bindXmlElementWrapper(propertyType, localModel, xmlWrapper, wrapperQName);
+         localModel = bindXmlElementWrapper(beanAdapterFactory, propertyType, localModel, xmlWrapper, wrapperQName);
          beanAdapterFactory.addProperty(wrapperQName, new PropertyHandler(property, propertyType));
+
          if (trace)
             log.trace("Added property " + wrapperQName + " for type=" + property.getBeanInfo().getName() + " property="
                   + property.getName() + " as a wrapper element");
@@ -1454,6 +1455,10 @@
          particleBinding.setMaxOccursUnbounded(true);
          localModel.addParticle(particleBinding);
          localModel = choice;
+
+         if(xmlWrapper == null && propertyType.isArray())
+            choice.setRepeatableHandler(new ArrayWrapperRepeatableParticleHandler(beanAdapterFactory));
+
          if (trace)
             log.trace("XmlElements seen adding choice for type=" + property.getBeanInfo().getName() + " property=" + property.getName());
       }
@@ -1711,10 +1716,10 @@
                else
                   propertyHandler = new PropertyHandler(property, localPropertyType);
             }
+            else if(elements.length > 1 && propertyType.isArray())
+               propertyHandler = new PropertyHandler(property, propertyType);
             else
-            {
                propertyHandler = new PropertyHandler(property, localPropertyType);
-            }
 
             ParticleBinding particle;
             if(Element.class.getName().equals(propertyType.getName()))
@@ -1756,8 +1761,15 @@
                elementBinding.setNillable(nillable);
                elementBinding.setValueAdapter(valueAdapter);
                if(repeatableHandler != null)
+               {
                   elementBinding.setRepeatableHandler(repeatableHandler);
-
+               }
+               else if(elements.length == 1 && propertyType.isArray() && xmlWrapper == null)
+               {
+                  isCol = true;
+                  elementBinding.setRepeatableHandler(new ArrayWrapperRepeatableParticleHandler(beanAdapterFactory));
+               }
+               
                JBossXmlPreserveWhitespace preserveSpace = property.getUnderlyingAnnotation(JBossXmlPreserveWhitespace.class);
                if (preserveSpace != null)
                {
@@ -1933,7 +1945,7 @@
       return group;
    }
       
-   private SequenceBinding bindXmlElementWrapper(TypeInfo propertyType, ModelGroupBinding parentModel, XmlElementWrapper annotation, QName wrapperQName)
+   private SequenceBinding bindXmlElementWrapper(BeanAdapterFactory beanAdapterFactory, TypeInfo propertyType, ModelGroupBinding parentModel, XmlElementWrapper annotation, QName wrapperQName)
    {
       TypeBinding wrapperType = new TypeBinding();
       SequenceBinding seq = new SequenceBinding(schemaBinding);
@@ -1945,8 +1957,12 @@
       ElementBinding wrapperElement = createElementBinding(propertyType, wrapperType, wrapperQName, false);
       wrapperElement.setNillable(annotation.nillable());
       wrapperElement.setSkip(Boolean.TRUE);
-      particle = new ParticleBinding(wrapperElement, annotation.required() ? 1 : 0, 1, propertyType.isCollection());
+      particle = new ParticleBinding(wrapperElement, annotation.required() ? 1 : 0, 1, propertyType.isCollection() || propertyType.isArray());
       parentModel.addParticle(particle);
+      
+      if(propertyType.isArray())
+         wrapperElement.setRepeatableHandler(new ArrayWrapperRepeatableParticleHandler(beanAdapterFactory));
+      
       return seq;
    }
 
@@ -1966,27 +1982,6 @@
    }
 
    /**
-    * Create an array
-    * 
-    * @param localModel the current model
-    * @return the new local model
-    */
-   private ModelGroupBinding createArray(ModelGroupBinding localModel)
-   {
-      SequenceBinding sequenceBinding = new SequenceBinding(schemaBinding);
-      sequenceBinding.setHandler(BuilderParticleHandler.INSTANCE);
-      ArraySequenceBinding arraySequenceBinding = new ArraySequenceBinding(schemaBinding);
-      arraySequenceBinding.setHandler(BuilderParticleHandler.INSTANCE);
-      ParticleBinding particle = new ParticleBinding(sequenceBinding);
-      particle.setMinOccurs(0);
-      particle.setMaxOccursUnbounded(true);
-      arraySequenceBinding.addParticle(particle);
-      particle = new ParticleBinding(arraySequenceBinding);
-      localModel.addParticle(particle);
-      return sequenceBinding;
-   }
-
-   /**
     * Create a collection
     * 
     * @param localModel the current model

Deleted: jbossxb/trunk/src/main/java/org/jboss/xb/builder/runtime/ArraySequenceBinding.java
===================================================================
--- jbossxb/trunk/src/main/java/org/jboss/xb/builder/runtime/ArraySequenceBinding.java	2009-11-11 15:41:50 UTC (rev 3673)
+++ jbossxb/trunk/src/main/java/org/jboss/xb/builder/runtime/ArraySequenceBinding.java	2009-11-11 16:42:15 UTC (rev 3674)
@@ -1,44 +0,0 @@
-/*
-* JBoss, Home of Professional Open Source
-* Copyright 2006, JBoss Inc., and individual contributors as indicated
-* by the @authors tag. See the copyright.txt 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.jboss.xb.builder.runtime;
-
-import org.jboss.xb.binding.sunday.unmarshalling.SchemaBinding;
-import org.jboss.xb.binding.sunday.unmarshalling.SequenceBinding;
-
-/**
- * Just a tagging class 
- * 
- * @author <a href="adrian at jboss.com">Adrian Brock</a>
- * @version $Revision: 1.1 $
- */
-public class ArraySequenceBinding extends SequenceBinding
-{
-   /**
-    * Create a new ArraySequenceBinding.
-    * 
-    * @param schema the schema
-    */
-   public ArraySequenceBinding(SchemaBinding schema)
-   {
-      super(schema);
-   }
-}

Deleted: jbossxb/trunk/src/main/java/org/jboss/xb/builder/runtime/ArrayWrapper.java
===================================================================
--- jbossxb/trunk/src/main/java/org/jboss/xb/builder/runtime/ArrayWrapper.java	2009-11-11 15:41:50 UTC (rev 3673)
+++ jbossxb/trunk/src/main/java/org/jboss/xb/builder/runtime/ArrayWrapper.java	2009-11-11 16:42:15 UTC (rev 3674)
@@ -1,168 +0,0 @@
-/*
-* JBoss, Home of Professional Open Source
-* Copyright 2006, JBoss Inc., and individual contributors as indicated
-* by the @authors tag. See the copyright.txt 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.jboss.xb.builder.runtime;
-
-import java.util.ArrayList;
-
-import javax.xml.namespace.QName;
-
-import org.jboss.reflect.spi.ArrayInfo;
-import org.jboss.reflect.spi.TypeInfo;
-import org.jboss.xb.binding.sunday.unmarshalling.ParticleBinding;
-
-/**
- * ArrayWrapper.
- * 
- * @author <a href="adrian at jboss.com">Adrian Brock</a>
- * @version $Revision: 1.1 $
- */
-public class ArrayWrapper
-{
-   /** The parent */
-   private Object parent;
-   
-   /** The element name */
-   private QName elementName;
-   
-   /** The elements */
-   private ArrayList<Object> elements = new ArrayList<Object>();
-   
-   /** The parent particle */
-   private ParticleBinding parentParticle;
-   
-   /** The child particle */
-   private ParticleBinding childParticle;
-   
-   /**
-    * Create a new ArrayWrapper.
-    * 
-    * @param parent the parent
-    * @param elementName the elementName
-    */
-   public ArrayWrapper(Object parent, QName elementName)
-   {
-      this.parent = parent;
-      this.elementName = elementName;
-   }
-
-   /**
-    * The elements 
-    * 
-    * @return the elements
-    */
-   public ArrayList<Object> getElements()
-   {
-      return elements;
-   }
-
-   /**
-    * Get the parent
-    * 
-    * @return the parent
-    */
-   public Object getParent()
-   {
-      return parent;
-   }
-   
-   /**
-    * Get the elementName.
-    * 
-    * @return the elementName.
-    */
-   public QName getElementName()
-   {
-      return elementName;
-   }
-
-   /**
-    * Add to the array
-    * 
-    * @param obj the object
-    */
-   public void add(Object obj)
-   {
-      elements.add(obj);
-   }
-
-   /**
-    * Get the childParticle.
-    * 
-    * @return the childParticle.
-    */
-   public ParticleBinding getChildParticle()
-   {
-      return childParticle;
-   }
-
-   /**
-    * Set the childParticle.
-    * 
-    * @param childParticle the childParticle.
-    */
-   public void setChildParticle(ParticleBinding childParticle)
-   {
-      this.childParticle = childParticle;
-   }
-
-   /**
-    * Get the parentParticle.
-    * 
-    * @return the parentParticle.
-    */
-   public ParticleBinding getParentParticle()
-   {
-      return parentParticle;
-   }
-
-   /**
-    * Set the parentParticle.
-    * 
-    * @param parentParticle the parentParticle.
-    */
-   public void setParentParticle(ParticleBinding parentParticle)
-   {
-      this.parentParticle = parentParticle;
-   }
-   
-   /**
-    * Get the elements 
-    *
-    * @param propertyType the property type
-    * @return the array
-    */
-   public Object[] getArray(TypeInfo propertyType)
-   {
-      ArrayInfo arrayInfo = (ArrayInfo) propertyType;
-      try
-      {
-         Object[] result = (Object[]) arrayInfo.newArrayInstance(elements.size());
-         for (int i = 0; i < result.length; ++i)
-            result[i] = elements.get(i);
-         return result;
-      }
-      catch (Throwable t)
-      {
-         throw new RuntimeException("Error creating array of type " + arrayInfo.getName() + " from " + elements, t);
-      }
-   }
-}

Added: jbossxb/trunk/src/main/java/org/jboss/xb/builder/runtime/ArrayWrapperRepeatableParticleHandler.java
===================================================================
--- jbossxb/trunk/src/main/java/org/jboss/xb/builder/runtime/ArrayWrapperRepeatableParticleHandler.java	                        (rev 0)
+++ jbossxb/trunk/src/main/java/org/jboss/xb/builder/runtime/ArrayWrapperRepeatableParticleHandler.java	2009-11-11 16:42:15 UTC (rev 3674)
@@ -0,0 +1,132 @@
+/*
+* JBoss, Home of Professional Open Source
+* Copyright 2009, JBoss Inc., and individual contributors as indicated
+* by the @authors tag. See the copyright.txt 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.jboss.xb.builder.runtime;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import javax.xml.namespace.QName;
+
+import org.jboss.logging.Logger;
+import org.jboss.reflect.spi.ArrayInfo;
+import org.jboss.xb.binding.sunday.unmarshalling.ParticleBinding;
+import org.jboss.xb.binding.sunday.unmarshalling.ParticleHandler;
+import org.jboss.xb.binding.sunday.unmarshalling.RepeatableParticleHandler;
+import org.jboss.xb.binding.sunday.unmarshalling.ValueAdapter;
+import org.jboss.xb.spi.BeanAdapterFactory;
+
+/**
+ * A ArrayWrapperRepeatableParticleHandler.
+ * 
+ * @author <a href="alex at jboss.com">Alexey Loubyansky</a>
+ * @version $Revision: 1.1 $
+ */
+public class ArrayWrapperRepeatableParticleHandler implements RepeatableParticleHandler
+{
+   /** The log */
+   protected static final Logger log = Logger.getLogger(ArrayWrapperRepeatableParticleHandler.class);
+   
+   /** Whether trace is enabled */
+   protected boolean trace = log.isTraceEnabled();
+
+
+   private final BeanAdapterFactory beanAdapterFactory;
+   
+   public ArrayWrapperRepeatableParticleHandler(BeanAdapterFactory beanAdapterFactory)
+   {
+      if(beanAdapterFactory == null)
+         throw new IllegalArgumentException("beanAdapterFactory is null");
+      this.beanAdapterFactory = beanAdapterFactory;
+   }
+   
+   @Override
+   public void addTermValue(Object particleValue, Object termValue, QName elementName, ParticleBinding particle,
+         ParticleBinding parentParticle, ParticleHandler handler)
+   {
+      if(particle.getTerm().isSkip())
+         return;
+      ValueAdapter valueAdapter = particle.getTerm().getValueAdapter();
+      if(valueAdapter != null)
+         termValue = valueAdapter.cast(termValue, null);
+      //ArrayWrapper aw = (ArrayWrapper) particleValue;
+      //aw.add(termValue);
+      ((List<Object>)particleValue).add(termValue);
+      
+      if(trace)
+         log.trace("added " + elementName + " " + termValue);
+   }
+
+   @Override
+   public void endRepeatableParticle(Object parent, Object o, QName elementName, ParticleBinding particle,
+         ParticleBinding parentParticle)
+   {
+      if(trace)
+         log.trace("endRepeatableParticle " + elementName);
+
+      AbstractPropertyHandler propertyHandler = beanAdapterFactory.getPropertyHandler(elementName);
+      if (propertyHandler == null)
+      {
+         AbstractPropertyHandler wildcardHandler = beanAdapterFactory.getWildcardHandler();
+         if (wildcardHandler != null && o != null)
+         {
+            o = toArray((List<Object>) o, (ArrayInfo) wildcardHandler.getPropertyType());
+            wildcardHandler.doHandle(parent, o, elementName);
+            return;
+         }
+
+         if (particle.getTerm().getSchema().isStrictSchema())
+            throw new RuntimeException("QName " + elementName + " unknown property parent=" + BuilderUtil.toDebugString(parent) + " child=" + BuilderUtil.toDebugString(o) + " available=" + beanAdapterFactory.getAvailable());
+
+         if (trace)
+            log.trace("QName " + elementName + " unknown property parent=" + BuilderUtil.toDebugString(parent) + " child=" + BuilderUtil.toDebugString(o));
+         
+         return;
+      }
+
+      o = toArray((List<Object>) o, (ArrayInfo) propertyHandler.getPropertyType());
+      propertyHandler.doHandle(parent, o, elementName);
+   }
+
+   @Override
+   public Object startRepeatableParticle(Object parent, QName startName, ParticleBinding particle)
+   {
+      if(trace)
+         log.trace("startRepeatableParticle " + startName);
+      return new ArrayList<Object>();
+   }
+
+   private Object[] toArray(List<Object> elements, ArrayInfo arrayInfo)
+   {
+      Object[] arr;
+      try
+      {
+         arr = (Object[]) arrayInfo.newArrayInstance(elements.size());
+         for (int i = 0; i < arr.length; ++i)
+            arr[i] = elements.get(i);
+         return arr;
+      }
+      catch (Throwable t)
+      {
+         throw new RuntimeException("Error creating array of type " + arrayInfo.getName() + " from " + elements, t);
+      }
+   }
+}

Modified: jbossxb/trunk/src/main/java/org/jboss/xb/builder/runtime/BeanHandler.java
===================================================================
--- jbossxb/trunk/src/main/java/org/jboss/xb/builder/runtime/BeanHandler.java	2009-11-11 15:41:50 UTC (rev 3673)
+++ jbossxb/trunk/src/main/java/org/jboss/xb/builder/runtime/BeanHandler.java	2009-11-11 16:42:15 UTC (rev 3674)
@@ -132,38 +132,13 @@
          valueAdapter = ((ElementBinding)term).getValueAdapter();
       }
 
-      if (parent != null && parent instanceof ArrayWrapper)
-      {
-         ArrayWrapper wrapper = (ArrayWrapper) parent;
-         wrapper.add(o);
-         wrapper.setChildParticle(particle);
-         wrapper.setParentParticle(parentParticle);
-         return;
-      }
-
-      BeanAdapter beanAdapter;
-      if (parent instanceof ArrayWrapper)
-         beanAdapter = (BeanAdapter) ((ArrayWrapper) parent).getParent();
-      else
-         beanAdapter = (BeanAdapter) parent;
+      BeanAdapter beanAdapter = (BeanAdapter) parent;
       AbstractPropertyHandler propertyHandler = beanAdapter.getPropertyHandler(qName);
       if (propertyHandler == null)
       {
-         AbstractPropertyHandler wildcardHandler = beanAdapter.getWildcardHandler();
-         if (wildcardHandler != null)
-         {
-            if (o != null && o instanceof ArrayWrapper)
-            {
-               ArrayWrapper wrapper = (ArrayWrapper) o;
-               wildcardHandler.doHandle(beanAdapter, wrapper, wrapper.getElementName());
-               return;
-            }
-         }
          TermBinding element = term;
          if (element.getSchema().isStrictSchema())
-         {
             throw new RuntimeException("QName " + qName + " unknown property parent=" + BuilderUtil.toDebugString(parent) + " child=" + BuilderUtil.toDebugString(o) + " available=" + beanAdapter.getAvailable());
-         }
          if (trace)
             log.trace("QName " + qName + " unknown property parent=" + BuilderUtil.toDebugString(parent) + " child=" + BuilderUtil.toDebugString(o));
          return;

Modified: jbossxb/trunk/src/main/java/org/jboss/xb/builder/runtime/BuilderParticleHandler.java
===================================================================
--- jbossxb/trunk/src/main/java/org/jboss/xb/builder/runtime/BuilderParticleHandler.java	2009-11-11 15:41:50 UTC (rev 3673)
+++ jbossxb/trunk/src/main/java/org/jboss/xb/builder/runtime/BuilderParticleHandler.java	2009-11-11 16:42:15 UTC (rev 3674)
@@ -44,9 +44,6 @@
    
    public Object startParticle(Object parent, QName elementName, ParticleBinding particle, Attributes attrs, NamespaceContext nsCtx)
    {
-      TermBinding term = particle.getTerm();
-      if (term instanceof ArraySequenceBinding)
-         return new ArrayWrapper(parent, elementName);
       return parent;
    }
 
@@ -67,35 +64,12 @@
          }
          
          if(particleHandler != null)
-         {
-            if (parent != null && parent instanceof ArrayWrapper)
-            {
-               ArrayWrapper wrapper = (ArrayWrapper) parent;
-               wrapper.add(o);
-               wrapper.setChildParticle(particle);
-               wrapper.setParentParticle(parentParticle);
-               return;
-            }
-
             particleHandler.setParent(parent, o, elementName, particle, parentParticle);
-         }
       }
    }
 
    public Object endParticle(Object o, QName elementName, ParticleBinding particle)
    {
-      TermBinding term = particle.getTerm();
-      if (term instanceof ArraySequenceBinding)
-      {
-         ArrayWrapper wrapper = (ArrayWrapper) o;
-         Object parent = wrapper.getParent();
-         ParticleBinding childParticle = wrapper.getChildParticle();
-         ParticleBinding parentParticle = wrapper.getParentParticle();
-         ElementBinding elementBinding = (ElementBinding) parentParticle.getTerm();
-         ParticleHandler particleHandler = elementBinding.getType().getHandler();
-         particleHandler.setParent(parent, wrapper, wrapper.getElementName(), childParticle, parentParticle);
-         return parent;
-      }
       return o;
    }
 }

Modified: jbossxb/trunk/src/main/java/org/jboss/xb/builder/runtime/PropertyHandler.java
===================================================================
--- jbossxb/trunk/src/main/java/org/jboss/xb/builder/runtime/PropertyHandler.java	2009-11-11 15:41:50 UTC (rev 3673)
+++ jbossxb/trunk/src/main/java/org/jboss/xb/builder/runtime/PropertyHandler.java	2009-11-11 16:42:15 UTC (rev 3674)
@@ -52,11 +52,6 @@
    {
       try
       {
-         if (propertyType.isArray())
-         {
-            ArrayWrapper wrapper = (ArrayWrapper) child;
-            child = wrapper.getArray(propertyType);
-         }
          BeanAdapter beanAdapter = (BeanAdapter) parent;
          beanAdapter.set(propertyInfo, child);
       }

Modified: jbossxb/trunk/src/main/java/org/jboss/xb/builder/runtime/PropertyInterceptor.java
===================================================================
--- jbossxb/trunk/src/main/java/org/jboss/xb/builder/runtime/PropertyInterceptor.java	2009-11-11 15:41:50 UTC (rev 3673)
+++ jbossxb/trunk/src/main/java/org/jboss/xb/builder/runtime/PropertyInterceptor.java	2009-11-11 16:42:15 UTC (rev 3674)
@@ -74,11 +74,6 @@
          log.trace("setParent " + qName + " parent=" + BuilderUtil.toDebugString(parent) + " child=" + BuilderUtil.toDebugString(child) +" property=" + propertyInfo.getName());
       try
       {
-         if (propertyType.isArray())
-         {
-            ArrayWrapper wrapper = (ArrayWrapper) child;
-            child = wrapper.getArray(propertyType);
-         }
          BeanAdapter beanAdapter = (BeanAdapter) parent;
          beanAdapter.set(propertyInfo, child);
       }

Modified: jbossxb/trunk/src/main/java/org/jboss/xb/builder/runtime/PropertyWildcardHandler.java
===================================================================
--- jbossxb/trunk/src/main/java/org/jboss/xb/builder/runtime/PropertyWildcardHandler.java	2009-11-11 15:41:50 UTC (rev 3673)
+++ jbossxb/trunk/src/main/java/org/jboss/xb/builder/runtime/PropertyWildcardHandler.java	2009-11-11 16:42:15 UTC (rev 3674)
@@ -58,15 +58,6 @@
 
    public void setParent(Object parent, Object o, QName elementName, ParticleBinding particle, ParticleBinding parentParticle)
    {
-      if (parent != null && parent instanceof ArrayWrapper)
-      {
-         ArrayWrapper wrapper = (ArrayWrapper) parent;
-         wrapper.add(o);
-         wrapper.setChildParticle(particle);
-         wrapper.setParentParticle(parentParticle);
-         return;
-      }
-
       BeanAdapter beanAdapter = (BeanAdapter) parent;
       AbstractPropertyHandler propertyHandler = beanAdapter.getPropertyHandler(elementName);
       if (propertyHandler != null)

Modified: jbossxb/trunk/src/test/java/org/jboss/test/xb/builder/object/element/wrapper/test/WrapperUnitTestCase.java
===================================================================
--- jbossxb/trunk/src/test/java/org/jboss/test/xb/builder/object/element/wrapper/test/WrapperUnitTestCase.java	2009-11-11 15:41:50 UTC (rev 3673)
+++ jbossxb/trunk/src/test/java/org/jboss/test/xb/builder/object/element/wrapper/test/WrapperUnitTestCase.java	2009-11-11 16:42:15 UTC (rev 3674)
@@ -69,4 +69,15 @@
       assertEquals(new Float(1.1), items[2]);
       assertEquals(new MyNumber("123456789"), items[3]);
    }
+
+   public void testFoo5Wrapper() throws Exception
+   {
+      Foo4 foo = unmarshalObject(Foo4.class);
+      Number[] items = foo.getItems();
+      assertEquals(4, items.length);
+      assertEquals(1, items[0]);
+      assertEquals(2, items[1]);
+      assertEquals(new Float(1.1), items[2]);
+      assertEquals(new MyNumber("123456789"), items[3]);
+   }
 }

Added: jbossxb/trunk/src/test/java/org/jboss/test/xb/builder/object/element/xmlelements/support/Foo4.java
===================================================================
--- jbossxb/trunk/src/test/java/org/jboss/test/xb/builder/object/element/xmlelements/support/Foo4.java	                        (rev 0)
+++ jbossxb/trunk/src/test/java/org/jboss/test/xb/builder/object/element/xmlelements/support/Foo4.java	2009-11-11 16:42:15 UTC (rev 3674)
@@ -0,0 +1,26 @@
+package org.jboss.test.xb.builder.object.element.xmlelements.support;
+
+
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlElements;
+import javax.xml.bind.annotation.XmlRootElement;
+
+ at XmlRootElement
+public class Foo4
+{
+   private Number[] items;
+
+   public Number[] getItems()
+   {
+      return items;
+   }
+
+   @XmlElements({
+      @XmlElement(name="int", required=false, type=Integer.class),
+      @XmlElement(name="float", required=false, type=Float.class)
+   })
+   public void setItems(Number[] items)
+   {
+      this.items = items;
+   }
+}

Added: jbossxb/trunk/src/test/java/org/jboss/test/xb/builder/object/element/xmlelements/test/XmlElementsUnitTestCase.java
===================================================================
--- jbossxb/trunk/src/test/java/org/jboss/test/xb/builder/object/element/xmlelements/test/XmlElementsUnitTestCase.java	                        (rev 0)
+++ jbossxb/trunk/src/test/java/org/jboss/test/xb/builder/object/element/xmlelements/test/XmlElementsUnitTestCase.java	2009-11-11 16:42:15 UTC (rev 3674)
@@ -0,0 +1,23 @@
+package org.jboss.test.xb.builder.object.element.xmlelements.test;
+
+
+import org.jboss.test.xb.builder.AbstractBuilderTest;
+import org.jboss.test.xb.builder.object.element.xmlelements.support.Foo4;
+
+public class XmlElementsUnitTestCase extends AbstractBuilderTest
+{
+   public XmlElementsUnitTestCase(String name)
+   {
+      super(name);
+   }
+
+   public void testArray() throws Exception
+   {
+      Foo4 foo = unmarshalObject(Foo4.class);
+      Number[] items = foo.getItems();
+      assertEquals(4, items.length);
+      assertEquals(1, items[0]);
+      assertEquals(2, items[1]);
+      assertEquals(new Float(1.1), items[2]);
+   }
+}

Modified: jbossxb/trunk/src/test/java/org/jboss/test/xb/builder/object/type/xmlanyelement/test/ArrayElementWildcardUnitTestCase.java
===================================================================
--- jbossxb/trunk/src/test/java/org/jboss/test/xb/builder/object/type/xmlanyelement/test/ArrayElementWildcardUnitTestCase.java	2009-11-11 15:41:50 UTC (rev 3673)
+++ jbossxb/trunk/src/test/java/org/jboss/test/xb/builder/object/type/xmlanyelement/test/ArrayElementWildcardUnitTestCase.java	2009-11-11 16:42:15 UTC (rev 3674)
@@ -32,12 +32,10 @@
 import org.jboss.xb.binding.sunday.unmarshalling.ParticleBinding;
 import org.jboss.xb.binding.sunday.unmarshalling.ParticleHandler;
 import org.jboss.xb.binding.sunday.unmarshalling.SchemaBinding;
-import org.jboss.xb.binding.sunday.unmarshalling.SequenceBinding;
 import org.jboss.xb.binding.sunday.unmarshalling.TermBinding;
 import org.jboss.xb.binding.sunday.unmarshalling.TypeBinding;
 import org.jboss.xb.binding.sunday.unmarshalling.WildcardBinding;
 import org.jboss.xb.builder.JBossXBBuilder;
-import org.jboss.xb.builder.runtime.ArraySequenceBinding;
 import org.jboss.xb.builder.runtime.DOMHandler;
 import org.jboss.xb.builder.runtime.PropertyWildcardHandler;
 import org.w3c.dom.Element;
@@ -85,10 +83,6 @@
       TermBinding term = particle.getTerm();
       assertNotNull(term);
       term = assertSingleSequence(term);
-      assertTrue(term instanceof ArraySequenceBinding);
-      term = assertSingleSequence(term);
-      assertTrue(term instanceof SequenceBinding);
-      term = assertSingleSequence(term);
       assertTrue(term instanceof WildcardBinding);
       WildcardBinding wildcardBinding = type.getWildcard();
       assertNotNull(wildcardBinding);

Modified: jbossxb/trunk/src/test/java/org/jboss/test/xb/builder/object/type/xmlanyelement/test/ArrayObjectWildcardUnitTestCase.java
===================================================================
--- jbossxb/trunk/src/test/java/org/jboss/test/xb/builder/object/type/xmlanyelement/test/ArrayObjectWildcardUnitTestCase.java	2009-11-11 15:41:50 UTC (rev 3673)
+++ jbossxb/trunk/src/test/java/org/jboss/test/xb/builder/object/type/xmlanyelement/test/ArrayObjectWildcardUnitTestCase.java	2009-11-11 16:42:15 UTC (rev 3674)
@@ -34,12 +34,10 @@
 import org.jboss.xb.binding.sunday.unmarshalling.ParticleBinding;
 import org.jboss.xb.binding.sunday.unmarshalling.ParticleHandler;
 import org.jboss.xb.binding.sunday.unmarshalling.SchemaBinding;
-import org.jboss.xb.binding.sunday.unmarshalling.SequenceBinding;
 import org.jboss.xb.binding.sunday.unmarshalling.TermBinding;
 import org.jboss.xb.binding.sunday.unmarshalling.TypeBinding;
 import org.jboss.xb.binding.sunday.unmarshalling.WildcardBinding;
 import org.jboss.xb.builder.JBossXBBuilder;
-import org.jboss.xb.builder.runtime.ArraySequenceBinding;
 import org.jboss.xb.builder.runtime.PropertyWildcardHandler;
 
 /**
@@ -85,10 +83,6 @@
       TermBinding term = particle.getTerm();
       assertNotNull(term);
       term = assertSingleSequence(term);
-      assertTrue(term instanceof ArraySequenceBinding);
-      term = assertSingleSequence(term);
-      assertTrue(term instanceof SequenceBinding);
-      term = assertSingleSequence(term);
       assertTrue(term instanceof WildcardBinding);
       WildcardBinding wildcardBinding = type.getWildcard();
       assertNotNull(wildcardBinding);

Added: jbossxb/trunk/src/test/resources/org/jboss/test/xb/builder/object/element/wrapper/test/Wrapper_testFoo5Wrapper.xml
===================================================================
--- jbossxb/trunk/src/test/resources/org/jboss/test/xb/builder/object/element/wrapper/test/Wrapper_testFoo5Wrapper.xml	                        (rev 0)
+++ jbossxb/trunk/src/test/resources/org/jboss/test/xb/builder/object/element/wrapper/test/Wrapper_testFoo5Wrapper.xml	2009-11-11 16:42:15 UTC (rev 3674)
@@ -0,0 +1,10 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<foo4>
+  <bar>
+    <int>1</int>
+    <int>2</int>    
+    <float>1.1</float>    
+    <x>123456789</x>
+  </bar>
+</foo4>

Added: jbossxb/trunk/src/test/resources/org/jboss/test/xb/builder/object/element/xmlelements/test/XmlElements_testArray.xml
===================================================================
--- jbossxb/trunk/src/test/resources/org/jboss/test/xb/builder/object/element/xmlelements/test/XmlElements_testArray.xml	                        (rev 0)
+++ jbossxb/trunk/src/test/resources/org/jboss/test/xb/builder/object/element/xmlelements/test/XmlElements_testArray.xml	2009-11-11 16:42:15 UTC (rev 3674)
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<foo4>
+    <int>1</int>
+    <int>2</int>    
+    <float>1.1</float>    
+    <int>3</int>    
+</foo4>



More information about the jboss-svn-commits mailing list