rdonkin     2004/10/04 15:27:13

  Modified:    betwixt  RELEASE-NOTES.txt project.xml
               betwixt/src/java/org/apache/commons/betwixt
                        ElementDescriptor.java XMLIntrospector.java
               betwixt/src/java/org/apache/commons/betwixt/digester
                        XMLIntrospectorHelper.java
               betwixt/src/java/org/apache/commons/betwixt/expression
                        IteratorExpression.java
               betwixt/src/java/org/apache/commons/betwixt/io
                        BeanRuleSet.java
               betwixt/src/java/org/apache/commons/betwixt/schema
                        GlobalComplexType.java LocalComplexType.java
                        Schema.java
               betwixt/src/test/org/apache/commons/betwixt
                        CustomerBean.java TestBeanReader.java
               betwixt/src/test/org/apache/commons/betwixt/schema
                        TestSchemaGeneration.java TestSchemaValidity.java
               betwixt/src/test/org/apache/commons/betwixt/strategy
                        TuneBean.java
               betwixt/xdocs index.xml navigation.xml tasks.xml
  Log:
  Merged in release branch
  
  Revision  Changes    Path
  1.4       +13 -8     jakarta-commons/betwixt/RELEASE-NOTES.txt
  
  Index: RELEASE-NOTES.txt
  ===================================================================
  RCS file: /home/cvs/jakarta-commons/betwixt/RELEASE-NOTES.txt,v
  retrieving revision 1.3
  retrieving revision 1.4
  diff -u -r1.3 -r1.4
  --- RELEASE-NOTES.txt 4 Jul 2004 15:31:17 -0000       1.3
  +++ RELEASE-NOTES.txt 4 Oct 2004 22:27:12 -0000       1.4
  @@ -1,16 +1,21 @@
   $Id$
   
                            Commons Betwixt Package
  -                               Version 0.5
  +                               Version 0.6
                                 Release Notes
   
   INTRODUCTION:
   
  -Betwixt provides a flexible way to map beans into XML - and vice versa. This is the 
  -first full Betwixt release.
  +Betwixt provides a flexible way to map beans into XML - and vice versa.
   
  -This release consolidates the codebase released in Alpha-1.0. It is stable and 
mature
  -but the design is limited. Newer, more sophisticated designs are being introduced 
  -(in later releses) but they are unlikely to be binary compatible. This API exposed 
  -in this release is therefore not sufficiently stable enough to warrent a 1.0 
version 
  -number.
  +Betwixt release 0.6 is the first release containing the refactored codebase 
  +featuring an improved design. This is a service release for those who have been
  +using the code from the CVS branch and offers an easy, compatible upgrade path
  +for those using the 0.5 design. It is recommended that all users should upgrade
  +to this release since the 0.5 design is no longer actively supported and is 
  +limited in terms of functionality. 
  +
  +This release is binary compatible with the 0.5 codebase but the methods deprecated
  +in 0.5 are likely to be removed soon after 0.6 is released.
  +
  +For more details see the tasks document.
  \ No newline at end of file
  
  
  
  1.41      +24 -13    jakarta-commons/betwixt/project.xml
  
  Index: project.xml
  ===================================================================
  RCS file: /home/cvs/jakarta-commons/betwixt/project.xml,v
  retrieving revision 1.40
  retrieving revision 1.41
  diff -u -r1.40 -r1.41
  --- project.xml       13 Jul 2004 12:46:02 -0000      1.40
  +++ project.xml       4 Oct 2004 22:27:12 -0000       1.41
  @@ -18,7 +18,7 @@
     <pomVersion>3</pomVersion>
     <name>Betwixt</name>
     <id>commons-betwixt</id>
  -  <currentVersion>0.6-dev</currentVersion>
  +  <currentVersion>0.6.1-dev</currentVersion>
     <inceptionYear>2002</inceptionYear>
     <shortDescription>Commons Betwixt</shortDescription>
     <description>Commons Betwixt: mapping beans to XML</description>
  @@ -71,7 +71,12 @@
       <version>
         <id>0.6</id>
         <name>0.6</name>
  -      <tag>HEAD</tag>
  +      <tag>BETWIXT_0_6</tag>
  +    </version>
  +    <version>
  +      <id>0.5</id>
  +      <name>0.5</name>
  +      <tag>BETWIXT_0_5</tag>
       </version>
     </versions>
   
  @@ -141,20 +146,18 @@
       </dependency>
   
       <dependency>
  -      <id>commons-beanutils</id>
  -      <version>1.6.1</version>
  +      <groupId>commons-beanutils</groupId>
  +      <typeId>jar</typeId>
  +      <artifactId>commons-beanutils-core</artifactId>
  +      <version>1.7.0</version>
         <url>http://jakarta.apache.org/commons/beanutils.html</url>
       </dependency>
  -
  -    <dependency>
  -      <id>commons-collections</id>
  -      <version>2.1</version>
  -      <url>http://jakarta.apache.org/commons/collections.html</url>
  -    </dependency>
  -
  +    
       <dependency>
  -      <id>commons-digester</id>
  -      <version>1.5</version>
  +      <groupId>commons-digester</groupId>
  +      <typeId>jar</typeId>
  +      <artifactId>commons-digester</artifactId>
  +      <version>1.6</version>
         <url>http://jakarta.apache.org/commons/digester.html</url>
       </dependency>
   
  @@ -202,6 +205,14 @@
                   </resource>
               </resources>
           </unitTest>
  +        <resources>
  +            <resource>
  +                <directory>${pom.build.sourceDirectory}</directory>
  +                <includes>
  +                    <include>**/*.betwixt</include>
  +                </includes>
  +            </resource>
  +        </resources>
        </build>
        
   
  
  
  
  1.19      +5 -5      
jakarta-commons/betwixt/src/java/org/apache/commons/betwixt/ElementDescriptor.java
  
  Index: ElementDescriptor.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-commons/betwixt/src/java/org/apache/commons/betwixt/ElementDescriptor.java,v
  retrieving revision 1.18
  retrieving revision 1.19
  diff -u -r1.18 -r1.19
  --- ElementDescriptor.java    23 Sep 2004 21:46:00 -0000      1.18
  +++ ElementDescriptor.java    4 Oct 2004 22:27:12 -0000       1.19
  @@ -114,7 +114,7 @@
       /**
        * Base constructor.
        * @param primitiveType if true, this element refers to a primitive type
  -     * @deprecated PrimitiveType property has been removed
  +     * @deprecated 0.6 PrimitiveType property has been removed
        */
       public ElementDescriptor(boolean primitiveType) {
           this.primitiveType = primitiveType;
  @@ -191,7 +191,7 @@
        *
        * @param wrapCollectionsInElement true if the elements for the items in the 
collection 
        * should be contained in a parent element
  -     * @deprecated moved to a declarative style of descriptors where the 
alrogithmic should
  +     * @deprecated 0.6 moved to a declarative style of descriptors where the 
alrogithmic should
        * be done during introspection
        */
       public void setWrapCollectionsInElement(boolean wrapCollectionsInElement) {
  @@ -206,7 +206,7 @@
        *
        * @return true if the elements for the items in the collection should be 
contained 
        * in a parent element
  -     * @deprecated moved to a declarative style of descriptors where the 
alrogithmic should
  +     * @deprecated 0.6 moved to a declarative style of descriptors where the 
alrogithmic should
        * be done during introspection
        */
       public boolean isWrapCollectionsInElement() {
  @@ -432,7 +432,7 @@
       /** 
        * Returns true if this element refers to a primitive type property
        * @return whether this element refers to a primitive type (or property of a 
parent object) 
  -     * @deprecated moved to a declarative style of descriptors where the 
alrogithmic should
  +     * @deprecated 0.6 moved to a declarative style of descriptors where the 
alrogithmic should
        * be done during introspection
        */
       public boolean isPrimitiveType() {
  @@ -442,7 +442,7 @@
       /** 
        * Sets whether this element refers to a primitive type (or property of a 
parent object) 
        * @param primitiveType true if this element refers to a primitive type
  -     * @deprecated moved to a declarative style of descriptors where the 
alrogithmic should
  +     * @deprecated 0.6 moved to a declarative style of descriptors where the 
alrogithmic should
        * be done during introspection
        */
       public void setPrimitiveType(boolean primitiveType) {
  
  
  
  1.37      +17 -17    
jakarta-commons/betwixt/src/java/org/apache/commons/betwixt/XMLIntrospector.java
  
  Index: XMLIntrospector.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-commons/betwixt/src/java/org/apache/commons/betwixt/XMLIntrospector.java,v
  retrieving revision 1.36
  retrieving revision 1.37
  diff -u -r1.36 -r1.37
  --- XMLIntrospector.java      4 Oct 2004 21:50:35 -0000       1.36
  +++ XMLIntrospector.java      4 Oct 2004 22:27:12 -0000       1.37
  @@ -77,7 +77,7 @@
   public class XMLIntrospector {
       /** 
        * Log used for logging (Doh!) 
  -     * @deprecated use the [EMAIL PROTECTED] #getLog()} property instead
  +     * @deprecated 0.6 use the [EMAIL PROTECTED] #getLog()} property instead
        */    
       protected Log log = LogFactory.getLog( XMLIntrospector.class );
       
  @@ -192,7 +192,7 @@
         *
         * @return the <code>ClassNormalizer</code> used to determine the Class to be 
introspected
         * for a given Object.
  -      * @deprecated use getConfiguration().getClassNormalizer
  +      * @deprecated 0.6 use getConfiguration().getClassNormalizer
         * @since 0.5
         */
       public ClassNormalizer getClassNormalizer() {
  @@ -206,7 +206,7 @@
         *
         * @param classNormalizer the <code>ClassNormalizer</code> to be used to 
determine 
         * the Class to be introspected for a given Object.
  -      * @deprecated use getConfiguration().setClassNormalizer
  +      * @deprecated 0.6 use getConfiguration().setClassNormalizer
         * @since 0.5
         *
         */    
  @@ -238,7 +238,7 @@
       /** 
         * Should attributes (or elements) be used for primitive types.
         * @return true if primitive types will be mapped to attributes in the 
introspection
  -      * @deprecated use getConfiguration().isAttributesForPrimitives
  +      * @deprecated 0.6 use getConfiguration().isAttributesForPrimitives
         */
       public boolean isAttributesForPrimitives() {
           return getConfiguration().isAttributesForPrimitives();
  @@ -248,7 +248,7 @@
         * Set whether attributes (or elements) should be used for primitive types. 
         * @param attributesForPrimitives pass trus to map primitives to attributes,
         *        pass false to map primitives to elements
  -      * @deprecated use getConfiguration().setAttributesForPrimitives
  +      * @deprecated 0.6 use getConfiguration().setAttributesForPrimitives
         */
       public void setAttributesForPrimitives(boolean attributesForPrimitives) {
           getConfiguration().setAttributesForPrimitives(attributesForPrimitives);
  @@ -258,7 +258,7 @@
        * Should collections be wrapped in an extra element?
        * 
        * @return whether we should we wrap collections in an extra element? 
  -     * @deprecated use getConfiguration().isWrapCollectionsInElement
  +     * @deprecated 0.6 use getConfiguration().isWrapCollectionsInElement
        */
       public boolean isWrapCollectionsInElement() {
           return getConfiguration().isWrapCollectionsInElement();
  @@ -269,7 +269,7 @@
        *
        * @param wrapCollectionsInElement pass true if collections should be wrapped 
in a
        *        parent element
  -     * @deprecated use getConfiguration().setWrapCollectionsInElement
  +     * @deprecated 0.6 use getConfiguration().setWrapCollectionsInElement
        */
       public void setWrapCollectionsInElement(boolean wrapCollectionsInElement) {
           getConfiguration().setWrapCollectionsInElement(wrapCollectionsInElement);
  @@ -279,7 +279,7 @@
        * Get singular and plural matching strategy.
        *
        * @return the strategy used to detect matching singular and plural properties 
  -     * @deprecated use getConfiguration().getPluralStemmer
  +     * @deprecated 0.6 use getConfiguration().getPluralStemmer
        */
       public PluralStemmer getPluralStemmer() {
           return getConfiguration().getPluralStemmer();
  @@ -289,7 +289,7 @@
        * Sets the strategy used to detect matching singular and plural properties 
        *
        * @param pluralStemmer the PluralStemmer used to match singular and plural
  -     * @deprecated use getConfiguration().setPluralStemmer 
  +     * @deprecated 0.6 use getConfiguration().setPluralStemmer 
        */
       public void setPluralStemmer(PluralStemmer pluralStemmer) {
           getConfiguration().setPluralStemmer(pluralStemmer);
  @@ -322,7 +322,7 @@
        *
        * @return the strategy used to convert bean type names into element 
        * names. If no element mapper is currently defined then a default one is 
created.
  -     * @deprecated use getConfiguration().getElementNameMapper
  +     * @deprecated 0.6 use getConfiguration().getElementNameMapper
        */ 
       public NameMapper getElementNameMapper() {
           return getConfiguration().getElementNameMapper();
  @@ -331,7 +331,7 @@
       /**
        * Sets the strategy used to convert bean type names into element names
        * @param nameMapper the NameMapper to use for the conversion
  -     * @deprecated use getConfiguration().setElementNameMapper
  +     * @deprecated 0.6 use getConfiguration().setElementNameMapper
        */
       public void setElementNameMapper(NameMapper nameMapper) {
           getConfiguration().setElementNameMapper( nameMapper );
  @@ -343,7 +343,7 @@
        *
        * @return the strategy used to convert bean type names into attribute
        * names. If no attributeNamemapper is known, it will default to the 
ElementNameMapper
  -     * @deprecated getConfiguration().getAttributeNameMapper
  +     * @deprecated 0.6 getConfiguration().getAttributeNameMapper
        */
       public NameMapper getAttributeNameMapper() {
           return getConfiguration().getAttributeNameMapper();
  @@ -353,7 +353,7 @@
       /**
        * Sets the strategy used to convert bean type names into attribute names
        * @param nameMapper the NameMapper to use for the convertion
  -     * @deprecated use getConfiguration().setAttributeNameMapper
  +     * @deprecated 0.6 use getConfiguration().setAttributeNameMapper
        */
       public void setAttributeNameMapper(NameMapper nameMapper) {
           getConfiguration().setAttributeNameMapper( nameMapper );
  @@ -364,7 +364,7 @@
        * By default it will be false.
        * 
        * @return boolean if the beanInfoSearchPath should be used.
  -     * @deprecated use getConfiguration().useBeanInfoSearchPath
  +     * @deprecated 0.6 use getConfiguration().useBeanInfoSearchPath
        */
       public boolean useBeanInfoSearchPath() {
           return getConfiguration().useBeanInfoSearchPath();
  @@ -374,7 +374,7 @@
        * Specifies if you want to use the beanInfoSearchPath 
        * @see java.beans.Introspector for more details
        * @param useBeanInfoSearchPath 
  -     * @deprecated use getConfiguration().setUseBeanInfoSearchPath
  +     * @deprecated 0.6 use getConfiguration().setUseBeanInfoSearchPath
        */
       public void setUseBeanInfoSearchPath(boolean useBeanInfoSearchPath) {
           getConfiguration().setUseBeanInfoSearchPath( useBeanInfoSearchPath );
  @@ -1014,7 +1014,7 @@
        * to detect matching singular and plural properties.
        *
        * @return new defualt PluralStemmer implementation
  -     * @deprecated this method has been moved into IntrospectionConfiguration.
  +     * @deprecated 0.6 this method has been moved into IntrospectionConfiguration.
        * Those who need to vary this should subclass that class instead
        */
       protected PluralStemmer createPluralStemmer() {
  @@ -1026,7 +1026,7 @@
        * used to convert bean type names into element names.
        *
        * @return new default NameMapper implementation
  -     * @deprecated this method has been moved into IntrospectionConfiguration.
  +     * @deprecated 0.6 this method has been moved into IntrospectionConfiguration.
        * Those who need to vary this should subclass that class instead
        */
       protected NameMapper createNameMapper() {
  
  
  
  1.33      +8 -8      
jakarta-commons/betwixt/src/java/org/apache/commons/betwixt/digester/XMLIntrospectorHelper.java
  
  Index: XMLIntrospectorHelper.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-commons/betwixt/src/java/org/apache/commons/betwixt/digester/XMLIntrospectorHelper.java,v
  retrieving revision 1.32
  retrieving revision 1.33
  diff -u -r1.32 -r1.33
  --- XMLIntrospectorHelper.java        14 Jul 2004 21:38:17 -0000      1.32
  +++ XMLIntrospectorHelper.java        4 Oct 2004 22:27:12 -0000       1.33
  @@ -214,7 +214,7 @@
        *
        * @param elementDescriptor configure this <code>ElementDescriptor</code>
        * @param propertyDescriptor configure from this <code>PropertyDescriptor</code>
  -     * @deprecated unused
  +     * @deprecated 0.6 unused
        */
       public static void configureProperty( 
                                       ElementDescriptor elementDescriptor, 
  @@ -234,7 +234,7 @@
        * @param beanClass the <code>Class</code> from which the update method should 
be found.
        * This may be null only when <code>updateMethodName</code> is also null.
        * @since 0.5
  -     * @deprecated moved into ElementRule
  +     * @deprecated 0.6 moved into ElementRule
        */
       public static void configureProperty( 
                                       ElementDescriptor elementDescriptor, 
  @@ -342,7 +342,7 @@
        *
        * @param attributeDescriptor configure this <code>AttributeDescriptor</code>
        * @param propertyDescriptor configure from this <code>PropertyDescriptor</code>
  -     * @deprecated moved into AttributeRule
  +     * @deprecated 0.6 moved into AttributeRule
        */
       public static void configureProperty( 
                                       AttributeDescriptor attributeDescriptor, 
  @@ -405,7 +405,7 @@
        * @param introspector use this <code>XMLIntrospector</code> for introspection
        * @param rootDescriptor add defaults to this descriptor
        * @param beanClass the <code>Class</code> to which descriptor corresponds
  -     * @deprecated use the method in XMLIntrospector instead
  +     * @deprecated 0.6 use the method in XMLIntrospector instead
        */
       public static void defaultAddMethods( 
                                               XMLIntrospector introspector, 
  @@ -573,7 +573,7 @@
        * type can be varied.
        * @param type is this <code>Class<code> a primitive type?
        * @return true for primitive types 
  -     * @deprecated replaced by [EMAIL PROTECTED] 
org.apache.commons.betwixt.strategy.TypeBindingStrategy}
  +     * @deprecated 0.6 replaced by [EMAIL PROTECTED] 
org.apache.commons.betwixt.strategy.TypeBindingStrategy}
        */
       public static boolean isPrimitiveType(Class type) {
           if ( type == null ) {
  @@ -610,7 +610,7 @@
        * searched for a match
        * @param propertyName the name of the 'adder' method to match
        * @return <code>ElementDescriptor</code> for the matching getter 
  -     * @deprecated moved into XMLIntrospector
  +     * @deprecated 0.6 moved into XMLIntrospector
        */
       protected static ElementDescriptor findGetCollectionDescriptor( 
                                                   XMLIntrospector introspector, 
  @@ -647,7 +647,7 @@
        * @param rootDescriptor the values of the maps are the children of this 
        * <code>ElementDescriptor</code> index by their property names
        * @param map the map to which the elements will be added
  -     * @deprecated moved into XMLIntrospector
  +     * @deprecated 0.6 moved into XMLIntrospector
        */
       protected static void makeElementDescriptorMap( ElementDescriptor 
rootDescriptor, Map map ) {
           ElementDescriptor[] children = rootDescriptor.getElementDescriptors();
  @@ -670,7 +670,7 @@
        * @param rootDescriptor traverse child graph for this 
<code>ElementDescriptor</code>
        * @param oldValue replace this <code>ElementDescriptor</code>
        * @param newValue replace with this <code>ElementDescriptor</code>
  -     * @deprecated now unused
  +     * @deprecated 0.6 now unused
        */     
       protected static void swapDescriptor( 
                                   ElementDescriptor rootDescriptor, 
  
  
  
  1.9       +350 -3    
jakarta-commons/betwixt/src/java/org/apache/commons/betwixt/expression/IteratorExpression.java
  
  Index: IteratorExpression.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-commons/betwixt/src/java/org/apache/commons/betwixt/expression/IteratorExpression.java,v
  retrieving revision 1.8
  retrieving revision 1.9
  diff -u -r1.8 -r1.9
  --- IteratorExpression.java   28 Feb 2004 13:38:32 -0000      1.8
  +++ IteratorExpression.java   4 Oct 2004 22:27:12 -0000       1.9
  @@ -16,14 +16,14 @@
   
   package org.apache.commons.betwixt.expression;
   
  +import java.lang.reflect.Array;
   import java.util.Collection;
   import java.util.Collections;
   import java.util.Enumeration;
   import java.util.Iterator;
   import java.util.Map;
  +import java.util.NoSuchElementException;
   
  -import org.apache.commons.collections.iterators.ArrayIterator;
  -import org.apache.commons.collections.iterators.EnumerationIterator;
   
   /** <p><code>IteratorExpression</code> returns an iterator over the current 
context.</p>
     *
  @@ -100,4 +100,351 @@
       public String toString() {
           return "IteratorExpression [expression=" + expression + "]";
       }
  +    
  +
  +        /**
  +         * <code>ArrayIterator</code> originated in commons-collections. Added
  +         * as a private inner class to break dependency.
  +         * 
  +         * @author James Strachan
  +         * @author Mauricio S. Moura
  +         * @author Michael A. Smith
  +         * @author Neil O'Toole
  +         * @author Stephen Colebourne
  +         */
  +    private static final class ArrayIterator implements Iterator {
  +
  +        /** The array to iterate over */
  +        protected Object array;
  +
  +        /** The start index to loop from */
  +        protected int startIndex = 0;
  +
  +        /** The end index to loop to */
  +        protected int endIndex = 0;
  +
  +        /** The current iterator index */
  +        protected int index = 0;
  +
  +        // Constructors
  +        // ----------------------------------------------------------------------
  +        /**
  +         * Constructor for use with <code>setArray</code>.
  +         * <p>
  +         * Using this constructor, the iterator is equivalent to an empty
  +         * iterator until [EMAIL PROTECTED] #setArray(Object)}is called to 
establish the
  +         * array to iterate over.
  +         */
  +        public ArrayIterator() {
  +            super();
  +        }
  +
  +        /**
  +         * Constructs an ArrayIterator that will iterate over the values in the
  +         * specified array.
  +         * 
  +         * @param array
  +         *            the array to iterate over.
  +         * @throws IllegalArgumentException
  +         *             if <code>array</code> is not an array.
  +         * @throws NullPointerException
  +         *             if <code>array</code> is <code>null</code>
  +         */
  +        public ArrayIterator(final Object array) {
  +            super();
  +            setArray(array);
  +        }
  +
  +        /**
  +         * Constructs an ArrayIterator that will iterate over the values in the
  +         * specified array from a specific start index.
  +         * 
  +         * @param array
  +         *            the array to iterate over.
  +         * @param startIndex
  +         *            the index to start iterating at.
  +         * @throws IllegalArgumentException
  +         *             if <code>array</code> is not an array.
  +         * @throws NullPointerException
  +         *             if <code>array</code> is <code>null</code>
  +         * @throws IndexOutOfBoundsException
  +         *             if the index is invalid
  +         */
  +        public ArrayIterator(final Object array, final int startIndex) {
  +            super();
  +            setArray(array);
  +            checkBound(startIndex, "start");
  +            this.startIndex = startIndex;
  +            this.index = startIndex;
  +        }
  +
  +        /**
  +         * Construct an ArrayIterator that will iterate over a range of values
  +         * in the specified array.
  +         * 
  +         * @param array
  +         *            the array to iterate over.
  +         * @param startIndex
  +         *            the index to start iterating at.
  +         * @param endIndex
  +         *            the index to finish iterating at.
  +         * @throws IllegalArgumentException
  +         *             if <code>array</code> is not an array.
  +         * @throws NullPointerException
  +         *             if <code>array</code> is <code>null</code>
  +         * @throws IndexOutOfBoundsException
  +         *             if either index is invalid
  +         */
  +        public ArrayIterator(final Object array, final int startIndex,
  +                final int endIndex) {
  +            super();
  +            setArray(array);
  +            checkBound(startIndex, "start");
  +            checkBound(endIndex, "end");
  +            if (endIndex < startIndex) {
  +                throw new IllegalArgumentException(
  +                        "End index must not be less than start index.");
  +            }
  +            this.startIndex = startIndex;
  +            this.endIndex = endIndex;
  +            this.index = startIndex;
  +        }
  +
  +        /**
  +         * Checks whether the index is valid or not.
  +         * 
  +         * @param bound
  +         *            the index to check
  +         * @param type
  +         *            the index type (for error messages)
  +         * @throws IndexOutOfBoundsException
  +         *             if the index is invalid
  +         */
  +        protected void checkBound(final int bound, final String type) {
  +            if (bound > this.endIndex) {
  +                throw new ArrayIndexOutOfBoundsException(
  +                        "Attempt to make an ArrayIterator that " + type
  +                                + "s beyond the end of the array. ");
  +            }
  +            if (bound < 0) {
  +                throw new ArrayIndexOutOfBoundsException(
  +                        "Attempt to make an ArrayIterator that " + type
  +                                + "s before the start of the array. ");
  +            }
  +        }
  +
  +        // Iterator interface
  +        //-----------------------------------------------------------------------
  +        /**
  +         * Returns true if there are more elements to return from the array.
  +         * 
  +         * @return true if there is a next element to return
  +         */
  +        public boolean hasNext() {
  +            return (index < endIndex);
  +        }
  +
  +        /**
  +         * Returns the next element in the array.
  +         * 
  +         * @return the next element in the array
  +         * @throws NoSuchElementException
  +         *             if all the elements in the array have already been
  +         *             returned
  +         */
  +        public Object next() {
  +            if (hasNext() == false) {
  +                throw new NoSuchElementException();
  +            }
  +            return Array.get(array, index++);
  +        }
  +
  +        /**
  +         * Throws [EMAIL PROTECTED] UnsupportedOperationException}.
  +         * 
  +         * @throws UnsupportedOperationException
  +         *             always
  +         */
  +        public void remove() {
  +            throw new UnsupportedOperationException(
  +                    "remove() method is not supported");
  +        }
  +
  +        // Properties
  +        //-----------------------------------------------------------------------
  +        /**
  +         * Gets the array that this iterator is iterating over.
  +         * 
  +         * @return the array this iterator iterates over, or <code>null</code>
  +         *         if the no-arg constructor was used and
  +         *         [EMAIL PROTECTED] #setArray(Object)}has never been called with a 
valid
  +         *         array.
  +         */
  +        public Object getArray() {
  +            return array;
  +        }
  +
  +        /**
  +         * Sets the array that the ArrayIterator should iterate over.
  +         * <p>
  +         * If an array has previously been set (using the single-arg constructor
  +         * or this method) then that array is discarded in favour of this one.
  +         * Iteration is restarted at the start of the new array. Although this
  +         * can be used to reset iteration, the [EMAIL PROTECTED] #reset()}method is 
a more
  +         * effective choice.
  +         * 
  +         * @param array
  +         *            the array that the iterator should iterate over.
  +         * @throws IllegalArgumentException
  +         *             if <code>array</code> is not an array.
  +         * @throws NullPointerException
  +         *             if <code>array</code> is <code>null</code>
  +         */
  +        public void setArray(final Object array) {
  +            // Array.getLength throws IllegalArgumentException if the object is
  +            // not
  +            // an array or NullPointerException if the object is null. This call
  +            // is made before saving the array and resetting the index so that
  +            // the
  +            // array iterator remains in a consistent state if the argument is
  +            // not
  +            // an array or is null.
  +            this.endIndex = Array.getLength(array);
  +            this.startIndex = 0;
  +            this.array = array;
  +            this.index = 0;
  +        }
  +
  +        /**
  +         * Resets the iterator back to the start index.
  +         */
  +        public void reset() {
  +            this.index = this.startIndex;
  +        }
  +
  +    }
  +        
  +
  +    /**
  +     * Adapter to make [EMAIL PROTECTED] Enumeration Enumeration}instances appear 
to be
  +     * [EMAIL PROTECTED] Iterator Iterator}instances. Originated in 
commons-collections.
  +     * Added as a private inner class to break dependency.
  +     * 
  +     * @author <a href="mailto:[EMAIL PROTECTED]">James Strachan </a>
  +     * @author <a href="mailto:[EMAIL PROTECTED]">Daniel Rall </a>
  +     */
  +     private static final class EnumerationIterator implements Iterator {
  +
  +        /** The collection to remove elements from */
  +        private Collection collection;
  +
  +        /** The enumeration being converted */
  +        private Enumeration enumeration;
  +
  +        /** The last object retrieved */
  +        private Object last;
  +
  +        // Constructors
  +        //-----------------------------------------------------------------------
  +        /**
  +         * Constructs a new <code>EnumerationIterator</code> that will not
  +         * function until [EMAIL PROTECTED] #setEnumeration(Enumeration)} is called.
  +         */
  +        public EnumerationIterator() {
  +            this(null, null);
  +        }
  +
  +        /**
  +         * Constructs a new <code>EnumerationIterator</code> that provides
  +         * an iterator view of the given enumeration.
  +         *
  +         * @param enumeration  the enumeration to use
  +         */
  +        public EnumerationIterator(final Enumeration enumeration) {
  +            this(enumeration, null);
  +        }
  +
  +        /**
  +         * Constructs a new <code>EnumerationIterator</code> that will remove
  +         * elements from the specified collection.
  +         *
  +         * @param enumeration  the enumeration to use
  +         * @param collection  the collection to remove elements form
  +         */
  +        public EnumerationIterator(final Enumeration enumeration,
  +                final Collection collection) {
  +            super();
  +            this.enumeration = enumeration;
  +            this.collection = collection;
  +            this.last = null;
  +        }
  +
  +        // Iterator interface
  +        //-----------------------------------------------------------------------
  +        /**
  +         * Returns true if the underlying enumeration has more elements.
  +         *
  +         * @return true if the underlying enumeration has more elements
  +         * @throws NullPointerException  if the underlying enumeration is null
  +         */
  +        public boolean hasNext() {
  +            return enumeration.hasMoreElements();
  +        }
  +
  +        /**
  +         * Returns the next object from the enumeration.
  +         *
  +         * @return the next object from the enumeration
  +         * @throws NullPointerException if the enumeration is null
  +         */
  +        public Object next() {
  +            last = enumeration.nextElement();
  +            return last;
  +        }
  +
  +        /**
  +         * Removes the last retrieved element if a collection is attached.
  +         * <p>
  +         * Functions if an associated <code>Collection</code> is known.
  +         * If so, the first occurrence of the last returned object from this
  +         * iterator will be removed from the collection.
  +         *
  +         * @exception IllegalStateException <code>next()</code> not called.
  +         * @exception UnsupportedOperationException if no associated collection
  +         */
  +        public void remove() {
  +            if (collection != null) {
  +                if (last != null) {
  +                    collection.remove(last);
  +                } else {
  +                    throw new IllegalStateException(
  +                            "next() must have been called for remove() to 
function");
  +                }
  +            } else {
  +                throw new UnsupportedOperationException(
  +                        "No Collection associated with this Iterator");
  +            }
  +        }
  +
  +        // Properties
  +        //-----------------------------------------------------------------------
  +        /**
  +         * Returns the underlying enumeration.
  +         *
  +         * @return the underlying enumeration
  +         */
  +        public Enumeration getEnumeration() {
  +            return enumeration;
  +        }
  +
  +        /**
  +         * Sets the underlying enumeration.
  +         *
  +         * @param enumeration  the new underlying enumeration
  +         */
  +        public void setEnumeration(final Enumeration enumeration) {
  +            this.enumeration = enumeration;
  +        }
  +    }
  +
   }
  
  
  
  1.21      +2 -2      
jakarta-commons/betwixt/src/java/org/apache/commons/betwixt/io/BeanRuleSet.java
  
  Index: BeanRuleSet.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-commons/betwixt/src/java/org/apache/commons/betwixt/io/BeanRuleSet.java,v
  retrieving revision 1.20
  retrieving revision 1.21
  diff -u -r1.20 -r1.21
  --- BeanRuleSet.java  4 Jul 2004 16:58:17 -0000       1.20
  +++ BeanRuleSet.java  4 Oct 2004 22:27:12 -0000       1.21
  @@ -98,7 +98,7 @@
        * @param baseBeanClass the <code>Class</code> whose mapping rules will be 
created
        * @param context the root Context that bean carrying Contexts should be 
obtained from, 
        * not null
  -     * @deprecated use the constructor which takes a ReadContext instead
  +     * @deprecated 0.6 use the constructor which takes a ReadContext instead
        */
       public BeanRuleSet(
           XMLIntrospector introspector,
  
  
  
  1.3       +19 -4     
jakarta-commons/betwixt/src/java/org/apache/commons/betwixt/schema/GlobalComplexType.java
  
  Index: GlobalComplexType.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-commons/betwixt/src/java/org/apache/commons/betwixt/schema/GlobalComplexType.java,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -r1.2 -r1.3
  --- GlobalComplexType.java    16 Jun 2004 11:21:26 -0000      1.2
  +++ GlobalComplexType.java    4 Oct 2004 22:27:12 -0000       1.3
  @@ -18,9 +18,9 @@
   
   import java.beans.IntrospectionException;
   import java.util.Iterator;
  +import java.util.Collection;
   
   import org.apache.commons.betwixt.ElementDescriptor;
  -import org.apache.commons.collections.CollectionUtils;
   
   /**
    * Models a <code>complexType</code> from an XML schema.
  @@ -68,8 +68,8 @@
             if (obj instanceof GlobalComplexType) {
                 GlobalComplexType complexType = (GlobalComplexType) obj;
                 result =  isEqual(name, complexType.name) &&
  -                        CollectionUtils.isEqualCollection(attributes, 
complexType.attributes) &&
  -                        CollectionUtils.isEqualCollection(elements, 
complexType.elements);
  +                        equalContents(attributes, complexType.attributes) &&
  +                        equalContents(elements, complexType.elements);
                                      
             }
             return result;
  @@ -77,6 +77,21 @@
   
       public int hashCode() {
           return 0;
  +    }
  +    
  +    private boolean equalContents(Collection one, Collection two)
  +    {
  +        // doesn't check cardinality but should be ok
  +        if (one.size() != two.size()) {
  +            return false;
  +        }
  +        for (Iterator it=one.iterator();it.hasNext();) {
  +            Object object = it.next();
  +            if (!two.contains(object)) {
  +                return false;
  +            }
  +        }
  +        return true;
       }
   
         /**
  
  
  
  1.3       +20 -4     
jakarta-commons/betwixt/src/java/org/apache/commons/betwixt/schema/LocalComplexType.java
  
  Index: LocalComplexType.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-commons/betwixt/src/java/org/apache/commons/betwixt/schema/LocalComplexType.java,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -r1.2 -r1.3
  --- LocalComplexType.java     16 Jun 2004 11:21:26 -0000      1.2
  +++ LocalComplexType.java     4 Oct 2004 22:27:12 -0000       1.3
  @@ -18,9 +18,9 @@
   
   import java.beans.IntrospectionException;
   import java.util.Iterator;
  +import java.util.Collection;
   
   import org.apache.commons.betwixt.ElementDescriptor;
  -import org.apache.commons.collections.CollectionUtils;
   
   /**
    * @author <a href='http://jakarta.apache.org/'>Jakarta Commons Team</a>
  @@ -40,12 +40,28 @@
             if (obj instanceof GlobalComplexType) {
                 GlobalComplexType complexType = (GlobalComplexType) obj;
                 result =  
  -                        CollectionUtils.isEqualCollection(attributes, 
complexType.attributes) &&
  -                        CollectionUtils.isEqualCollection(elements, 
complexType.elements);
  +                        equalContents(attributes, complexType.attributes) &&
  +                        equalContents(elements, complexType.elements);
                                      
             }
             return result;
         }
  +
  +    
  +    private boolean equalContents(Collection one, Collection two)
  +    {
  +        // doesn't check cardinality but should be ok
  +        if (one.size() != two.size()) {
  +            return false;
  +        }
  +        for (Iterator it=one.iterator();it.hasNext();) {
  +            Object object = it.next();
  +            if (!two.contains(object)) {
  +                return false;
  +            }
  +        }
  +        return true;
  +    }
   
       public int hashCode() {
           return 0;
  
  
  
  1.3       +20 -5     
jakarta-commons/betwixt/src/java/org/apache/commons/betwixt/schema/Schema.java
  
  Index: Schema.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-commons/betwixt/src/java/org/apache/commons/betwixt/schema/Schema.java,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -r1.2 -r1.3
  --- Schema.java       16 Jun 2004 11:21:26 -0000      1.2
  +++ Schema.java       4 Oct 2004 22:27:12 -0000       1.3
  @@ -20,11 +20,11 @@
   import java.util.ArrayList;
   import java.util.Iterator;
   import java.util.List;
  +import java.util.Collection;
   
   import org.apache.commons.betwixt.ElementDescriptor;
   import org.apache.commons.betwixt.XMLBeanInfo;
   import org.apache.commons.betwixt.XMLIntrospector;
  -import org.apache.commons.collections.CollectionUtils;
   
   /**
    * Model for top level element in an XML Schema
  @@ -130,11 +130,26 @@
           if (obj instanceof Schema) {
                Schema schema = (Schema) obj;
                result = 
  -                    CollectionUtils.isEqualCollection(elements, schema.elements) &&
  -                    CollectionUtils.isEqualCollection(complexTypes, 
schema.complexTypes) &&
  -                    CollectionUtils.isEqualCollection(simpleTypes, 
schema.simpleTypes);
  +                    equalContents(elements, schema.elements) &&
  +                    equalContents(complexTypes, schema.complexTypes) &&
  +                    equalContents(simpleTypes, schema.simpleTypes);
           }
           return result;
  +    }
  +    
  +    private boolean equalContents(Collection one, Collection two)
  +    {
  +        // doesn't check cardinality but should be ok
  +        if (one.size() != two.size()) {
  +            return false;
  +        }
  +        for (Iterator it=one.iterator();it.hasNext();) {
  +            Object object = it.next();
  +            if (!two.contains(object)) {
  +                return false;
  +            }
  +        }
  +        return true;
       }
   
       public int hashCode() {
  
  
  
  1.13      +79 -1     
jakarta-commons/betwixt/src/test/org/apache/commons/betwixt/CustomerBean.java
  
  Index: CustomerBean.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-commons/betwixt/src/test/org/apache/commons/betwixt/CustomerBean.java,v
  retrieving revision 1.12
  retrieving revision 1.13
  diff -u -r1.12 -r1.13
  --- CustomerBean.java 28 Feb 2004 13:38:34 -0000      1.12
  +++ CustomerBean.java 4 Oct 2004 22:27:12 -0000       1.13
  @@ -27,7 +27,6 @@
   import java.util.List;
   import java.util.Map;
   
  -import org.apache.commons.collections.iterators.IteratorEnumeration;
   import org.apache.commons.logging.Log;
   import org.apache.commons.logging.LogFactory;
   
  @@ -273,5 +272,84 @@
        public void setBigInteger(BigInteger bigInteger) {
                this.bigInteger = bigInteger;
        }
  +
  +    /** 
  +     * Adapter to make an [EMAIL PROTECTED] Iterator Iterator} instance appear to be
  +     * an [EMAIL PROTECTED] Enumeration Enumeration} instance.
  +     * Originate in commons collections
  +     * 
  +     * @author <a href="mailto:[EMAIL PROTECTED]">James Strachan</a>
  +     */
  +    private static final class IteratorEnumeration implements Enumeration {
  +        
  +        /** The iterator being decorated. */
  +        private Iterator iterator;
  +        
  +        /**
  +         * Constructs a new <code>IteratorEnumeration</code> that will not 
  +         * function until [EMAIL PROTECTED] #setIterator(Iterator) setIterator} is  
  +         * invoked.
  +         */
  +        public IteratorEnumeration() {
  +            super();
  +        }
  +
  +        /**
  +         * Constructs a new <code>IteratorEnumeration</code> that will use
  +         * the given iterator. 
  +         * 
  +         * @param iterator  the iterator to use
  +         */
  +        public IteratorEnumeration( Iterator iterator ) {
  +            super();
  +            this.iterator = iterator;
  +        }
  +
  +        // Iterator interface
  +        //-------------------------------------------------------------------------
  +
  +        /**
  +         *  Returns true if the underlying iterator has more elements.
  +         *
  +         *  @return true if the underlying iterator has more elements
  +         */
  +        public boolean hasMoreElements() {
  +            return iterator.hasNext();
  +        }
  +
  +        /**
  +         *  Returns the next element from the underlying iterator.
  +         *
  +         *  @return the next element from the underlying iterator.
  +         *  @throws java.util.NoSuchElementException  if the underlying iterator 
has no
  +         *    more elements
  +         */
  +        public Object nextElement() {
  +            return iterator.next();
  +        }
  +
  +        // Properties
  +        //-------------------------------------------------------------------------
  +
  +        /**
  +         *  Returns the underlying iterator.
  +         * 
  +         *  @return the underlying iterator
  +         */
  +        public Iterator getIterator() {
  +            return iterator;
  +        }
  +
  +        /**
  +         *  Sets the underlying iterator.
  +         *
  +         *  @param iterator  the new underlying iterator
  +         */
  +        public void setIterator( Iterator iterator ) {
  +            this.iterator = iterator;
  +        }
  +        
  +    }
  +
   
   }
  
  
  
  1.24      +4 -2      
jakarta-commons/betwixt/src/test/org/apache/commons/betwixt/TestBeanReader.java
  
  Index: TestBeanReader.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-commons/betwixt/src/test/org/apache/commons/betwixt/TestBeanReader.java,v
  retrieving revision 1.23
  retrieving revision 1.24
  diff -u -r1.23 -r1.24
  --- TestBeanReader.java       13 Jun 2004 21:32:46 -0000      1.23
  +++ TestBeanReader.java       4 Oct 2004 22:27:12 -0000       1.24
  @@ -31,6 +31,7 @@
   import java.util.ArrayList;
   import java.util.Calendar;
   import java.util.List;
  +import java.util.Iterator;
   
   import junit.framework.Test;
   import junit.framework.TestSuite;
  @@ -43,7 +44,6 @@
   import org.apache.commons.betwixt.io.BeanWriter;
   import org.apache.commons.betwixt.strategy.ConvertUtilsObjectStringConverter;
   import org.apache.commons.betwixt.strategy.HyphenatedNameMapper;
  -import org.apache.commons.collections.CollectionUtils;
   import org.apache.commons.digester.ExtendedBaseRules;
   import org.apache.commons.digester.Rule;
   import org.xml.sax.Attributes;
  @@ -706,7 +706,9 @@
           assertEquals("Number of children", 6, bean.getSize());
           
           ArrayList list = new ArrayList();
  -        CollectionUtils.addAll(list, bean.getChildren());
  +        for (Iterator it=bean.getChildren();it.hasNext();) {
  +            list.add(it.next());
  +        }
           
           DoubleLinkedChildBean childZero = (DoubleLinkedChildBean) list.get(0);
           DoubleLinkedChildBean childOne = (DoubleLinkedChildBean) list.get(1);
  
  
  
  1.3       +6 -11     
jakarta-commons/betwixt/src/test/org/apache/commons/betwixt/schema/TestSchemaGeneration.java
  
  Index: TestSchemaGeneration.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-commons/betwixt/src/test/org/apache/commons/betwixt/schema/TestSchemaGeneration.java,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -r1.2 -r1.3
  --- TestSchemaGeneration.java 13 Jun 2004 21:32:48 -0000      1.2
  +++ TestSchemaGeneration.java 4 Oct 2004 22:27:13 -0000       1.3
  @@ -34,12 +34,7 @@
           super(name);        
       }
       
  -    public void testDummy() {
  -        // the tests here require digester CVS HEAD to function correctly
  -        // they should be readded as soon as the digester release has been created
  -    }
  -    
  -    public void _testSimplestBeanWithAttributes() throws Exception {
  +    public void testSimplestBeanWithAttributes() throws Exception {
           SchemaTranscriber transcriber = new SchemaTranscriber();
           
transcriber.getXMLIntrospector().getConfiguration().setAttributesForPrimitives(true);
           Schema schema = transcriber.generate(SimplestBean.class);
  @@ -65,7 +60,7 @@
       }
       
       
  -    public void _testSimplestBeanWithElement() throws Exception {
  +    public void testSimplestBeanWithElement() throws Exception {
           SchemaTranscriber transcriber = new SchemaTranscriber();
           
transcriber.getXMLIntrospector().getConfiguration().setAttributesForPrimitives(true);
           Schema schema = transcriber.generate(SimplestElementBean.class);
  @@ -91,7 +86,7 @@
           xmlAssertIsomorphicContent(parseString(expected), parseString(xsd));
       }
       
  -    public void _testSimpleBean() throws Exception {
  +    public void testSimpleBean() throws Exception {
           SchemaTranscriber transcriber = new SchemaTranscriber();
           Schema schema = transcriber.generate(SimpleBean.class);
           
  @@ -120,7 +115,7 @@
       }
       
       
  -    public void _testOrderLineBean() throws Exception {
  +    public void testOrderLineBean() throws Exception {
           SchemaTranscriber transcriber = new SchemaTranscriber();
           
transcriber.getXMLIntrospector().getConfiguration().setAttributesForPrimitives(true);
           
transcriber.getXMLIntrospector().getConfiguration().setAttributeNameMapper(new 
HyphenatedNameMapper());
  @@ -155,7 +150,7 @@
           xmlAssertIsomorphicContent(parseString(expected), parseString(xsd), true);
       }
       
  -    public void _testOrder() throws Exception {
  +    public void testOrder() throws Exception {
           SchemaTranscriber transcriber = new SchemaTranscriber();
           
transcriber.getXMLIntrospector().getConfiguration().setElementNameMapper(new 
HyphenatedNameMapper());
           
transcriber.getXMLIntrospector().getConfiguration().setAttributeNameMapper(new 
HyphenatedNameMapper());
  
  
  
  1.3       +8 -13     
jakarta-commons/betwixt/src/test/org/apache/commons/betwixt/schema/TestSchemaValidity.java
  
  Index: TestSchemaValidity.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-commons/betwixt/src/test/org/apache/commons/betwixt/schema/TestSchemaValidity.java,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -r1.2 -r1.3
  --- TestSchemaValidity.java   13 Jun 2004 21:32:48 -0000      1.2
  +++ TestSchemaValidity.java   4 Oct 2004 22:27:13 -0000       1.3
  @@ -40,11 +40,6 @@
           super(name);
       }
       
  -    public void testDummy() {
  -        // the tests here require digester CVS HEAD to function correctly
  -        // they should be readded as soon as the digester release has been created
  -    }
  -    
       private String generateSchema(Class clazz) throws Exception {
           SchemaTranscriber transcriber = new SchemaTranscriber();
           
transcriber.getXMLIntrospector().getConfiguration().setAttributesForPrimitives(true);
  @@ -61,7 +56,7 @@
           return xsd;
       }
       
  -    public void _testSimplestBeanWithAttributes() throws Exception {
  +    public void testSimplestBeanWithAttributes() throws Exception {
          String xsd = generateSchema(SimplestBean.class);
               
          StringWriter out = new StringWriter();
  @@ -79,7 +74,7 @@
       }   
       
       
  -    public void _testSimplestBeanWithElements() throws Exception {
  +    public void testSimplestBeanWithElements() throws Exception {
          String xsd = generateSchema(SimplestElementBean.class);
               
          StringWriter out = new StringWriter();
  @@ -97,7 +92,7 @@
       }   
       
       
  -    public void _testSimpleBean() throws Exception {
  +    public void testSimpleBean() throws Exception {
          String xsd = generateSchema(SimpleBean.class);
               
          StringWriter out = new StringWriter();
  @@ -131,7 +126,7 @@
           return xsd;
       }
      
  -    public void _testOrderLine() throws Exception {
  +    public void testOrderLine() throws Exception {
   
          String xsd = generateOrderLineSchema();
          StringWriter out = new StringWriter();
  @@ -168,7 +163,7 @@
           return xsd;
       }
       
  -    public void _testOrder() throws Exception {
  +    public void testOrder() throws Exception {
           String xsd = generateOrderSchema();
           StringWriter out = new StringWriter();
           out.write("<?xml version='1.0'?>");
  @@ -188,7 +183,7 @@
           writer.write(bean);
          
           String xml = out.getBuffer().toString();
  -       
  +        
           xmlAssertIsValid(new InputSource(new StringReader(xml)), new 
InputSource(new StringReader(xsd)));  
           
       }
  @@ -209,7 +204,7 @@
           return xsd;
       }
       
  -    public void _testRSS() throws Exception {
  +    public void testRSS() throws Exception {
           String xsd = generateRSSSchema();
           StringWriter out = new StringWriter();
           out.write("<?xml version='1.0'?>");
  
  
  
  1.3       +12 -3     
jakarta-commons/betwixt/src/test/org/apache/commons/betwixt/strategy/TuneBean.java
  
  Index: TuneBean.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-commons/betwixt/src/test/org/apache/commons/betwixt/strategy/TuneBean.java,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -r1.2 -r1.3
  --- TuneBean.java     13 Jun 2004 21:32:49 -0000      1.2
  +++ TuneBean.java     4 Oct 2004 22:27:13 -0000       1.3
  @@ -21,7 +21,6 @@
   import java.util.Collection;
   import java.util.Iterator;
   
  -import org.apache.commons.collections.CollectionUtils;
   
   /**
    * @author <a href='http://jakarta.apache.org/'>Jakarta Commons Team</a>
  @@ -74,6 +73,16 @@
       }
   
       public boolean sameComposers(Collection otherComposers) {
  -        return CollectionUtils.isEqualCollection(otherComposers, composers);
  +                // doesn't check cardinality but should be ok
  +        if (otherComposers.size() != composers.size()) {
  +            return false;
  +        }
  +        for (Iterator it=composers.iterator();it.hasNext();) {
  +            Object object = it.next();
  +            if (!otherComposers.contains(object)) {
  +                return false;
  +            }
  +        }
  +        return true;
       }
   }
  
  
  
  1.10      +21 -0     jakarta-commons/betwixt/xdocs/index.xml
  
  Index: index.xml
  ===================================================================
  RCS file: /home/cvs/jakarta-commons/betwixt/xdocs/index.xml,v
  retrieving revision 1.9
  retrieving revision 1.10
  diff -u -r1.9 -r1.10
  --- index.xml 3 Jul 2004 11:18:02 -0000       1.9
  +++ index.xml 4 Oct 2004 22:27:13 -0000       1.10
  @@ -41,6 +41,27 @@
   </section>
   
   <section name="Releases">
  +  <subsection name='Betwixt 0.6'>
  +    <p>
  +Betwixt release 0.6 is the first release containing the refactored codebase 
  +featuring an improved design. This is a service release for those who have been
  +using the code from the CVS branch and offers an easy, compatible upgrade path
  +for those using the 0.5 design. It is recommended that all users should upgrade
  +to this release since the 0.5 design is no longer actively supported and is 
  +limited in terms of functionality. 
  +    </p>
  +    <p>
  +This release is binary compatible with the 0.5 codebase but the methods deprecated
  +in 0.5 are likely to be removed soon after 0.6 is released.
  +    </p>
  +    <p>
  +Betwixt 0.6 is available in 
  +<a href='http://jakarta.apache.org/site/binindex.cgi#commons-betwixt'>binary</a>
  +and
  +<a href='http://jakarta.apache.org/site/sourceindex.cgi#commons-betwixt'>source</a>
  +distributions.
  +    </p>
  +  </subsection>
     <subsection name="Betwixt 0.5">
       <p>
   Betwixt release 0.5 is intended to consolidate the codebase released as 1.0 Alpha 
1. 
  
  
  
  1.17      +1 -0      jakarta-commons/betwixt/xdocs/navigation.xml
  
  Index: navigation.xml
  ===================================================================
  RCS file: /home/cvs/jakarta-commons/betwixt/xdocs/navigation.xml,v
  retrieving revision 1.16
  retrieving revision 1.17
  diff -u -r1.16 -r1.17
  --- navigation.xml    23 Sep 2004 21:46:01 -0000      1.16
  +++ navigation.xml    4 Oct 2004 22:27:13 -0000       1.17
  @@ -53,6 +53,7 @@
         <item name="Tutorial"                href="/guide/tutorial.html"/>
       </menu>
       <menu name='Release Documentation'>
  +        <item name='0.6' 
href='http://jakarta.apache.org/commons/betwixt/betwixt-0.6'/>
           <item name='0.5' 
href='http://jakarta.apache.org/commons/betwixt/betwixt-0.5'/>
       </menu>
       
  
  
  
  1.38      +2 -2      jakarta-commons/betwixt/xdocs/tasks.xml
  
  Index: tasks.xml
  ===================================================================
  RCS file: /home/cvs/jakarta-commons/betwixt/xdocs/tasks.xml,v
  retrieving revision 1.37
  retrieving revision 1.38
  diff -u -r1.37 -r1.38
  --- tasks.xml 4 Oct 2004 21:49:20 -0000       1.37
  +++ tasks.xml 4 Oct 2004 22:27:13 -0000       1.38
  @@ -330,7 +330,7 @@
       </subsection>
   </section>
   <section name='Deprecated'>
  -    <subsection name='Since 0.5'>
  +    <subsection name='0.6'>
           <ul>
                   <li><strong>Refactoring (more declarative descriptors)</strong>
                <ul>
  @@ -432,7 +432,7 @@
       </subsection>
   </section>
   <section name='Backwards Incompatible Changes'>
  -    <subsection name='Since 0.5'>
  +    <subsection name='0.6'>
           <ul>
           </ul>
       </subsection>
  
  
  

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to