You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ws.apache.org by ve...@apache.org on 2012/12/20 16:55:27 UTC

svn commit: r1424548 [5/5] - in /webservices/axiom/branches/AXIOM-201: ./ etc/ legal/ modules/axiom-all/ modules/axiom-api/ modules/axiom-api/src/main/java/org/apache/axiom/om/ modules/axiom-api/src/main/java/org/apache/axiom/om/dom/ modules/axiom-api/...

Modified: webservices/axiom/branches/AXIOM-201/modules/axiom-testutils/src/main/java/org/apache/axiom/testutils/stax/XMLStreamReaderComparator.java
URL: http://svn.apache.org/viewvc/webservices/axiom/branches/AXIOM-201/modules/axiom-testutils/src/main/java/org/apache/axiom/testutils/stax/XMLStreamReaderComparator.java?rev=1424548&r1=1424547&r2=1424548&view=diff
==============================================================================
--- webservices/axiom/branches/AXIOM-201/modules/axiom-testutils/src/main/java/org/apache/axiom/testutils/stax/XMLStreamReaderComparator.java (original)
+++ webservices/axiom/branches/AXIOM-201/modules/axiom-testutils/src/main/java/org/apache/axiom/testutils/stax/XMLStreamReaderComparator.java Thu Dec 20 15:55:24 2012
@@ -46,6 +46,9 @@ import junit.framework.Assert;
 public class XMLStreamReaderComparator extends Assert {
     private final XMLStreamReader expected;
     private final XMLStreamReader actual;
+    private boolean compareEntityReplacementValue = true;
+    private boolean compareCharacterEncodingScheme = true;
+    private boolean compareEncoding = true;
     private final LinkedList path = new LinkedList();
     
     /**
@@ -197,14 +200,39 @@ public class XMLStreamReaderComparator e
         prefixes.add(prefix);
     }
     
+    /**
+     * Specify whether the replacement value for entity references (as reported by
+     * {@link XMLStreamReader#getText()}) should be compared. The default value for this option is
+     * <code>true</code>.
+     * 
+     * @param value
+     *            <code>true</code> if the replacement value should be compared; <code>false</code>
+     *            if replacement values for entity references are ignored
+     */
+    public void setCompareEntityReplacementValue(boolean value) {
+        compareEntityReplacementValue = value;
+    }
+    
+    public void setCompareCharacterEncodingScheme(boolean value) {
+        compareCharacterEncodingScheme = value;
+    }
+
+    public void setCompareEncoding(boolean value) {
+        compareEncoding = value;
+    }
+
     public void compare() throws Exception {
         while (true) {
             int eventType = ((Integer)assertSameResult("getEventType")).intValue();
             if (eventType == XMLStreamReader.START_ELEMENT) {
                 path.addLast(expected.getName());
             }
-            assertSameResult("getCharacterEncodingScheme");
-            assertSameResult("getEncoding", Normalizer.LOWER_CASE);
+            if (compareCharacterEncodingScheme) {
+                assertSameResult("getCharacterEncodingScheme");
+            }
+            if (compareEncoding) {
+                assertSameResult("getEncoding", Normalizer.LOWER_CASE);
+            }
             Integer attributeCount = (Integer)assertSameResult("getAttributeCount");
             // Test the behavior of the getAttributeXxx methods for all types of events,
             // to check that an appropriate exception is thrown for events other than
@@ -255,7 +283,9 @@ public class XMLStreamReaderComparator e
             assertSameResult("getPIData");
             assertSameResult("getPITarget");
             prefixes.add(assertSameResult("getPrefix"));
-            assertSameResult("getText", eventType == XMLStreamReader.DTD ? Normalizer.DTD : Normalizer.IDENTITY);
+            if (eventType != XMLStreamReader.ENTITY_REFERENCE || compareEntityReplacementValue) {
+                assertSameResult("getText", eventType == XMLStreamReader.DTD ? Normalizer.DTD : Normalizer.IDENTITY);
+            }
             Integer textLength = (Integer)assertSameResult("getTextLength");
             Object[] textStart = invoke("getTextStart");
             Object[] textCharacters = invoke("getTextCharacters");

Modified: webservices/axiom/branches/AXIOM-201/pom.xml
URL: http://svn.apache.org/viewvc/webservices/axiom/branches/AXIOM-201/pom.xml?rev=1424548&r1=1424547&r2=1424548&view=diff
==============================================================================
--- webservices/axiom/branches/AXIOM-201/pom.xml (original)
+++ webservices/axiom/branches/AXIOM-201/pom.xml Thu Dec 20 15:55:24 2012
@@ -22,12 +22,14 @@
     <parent>
         <groupId>org.apache</groupId>
         <artifactId>apache</artifactId>
-        <version>10</version>
+        <!-- Note: versions 10 to 12 declare a reportSet with reports
+                   that we don't need/want; stick with version 9 -->
+        <version>9</version>
     </parent>
     <groupId>org.apache.ws.commons.axiom</groupId>
     <artifactId>axiom</artifactId>
     <name>Axiom</name>
-    <version>1.2.14-SNAPSHOT</version>
+    <version>1.2.15-SNAPSHOT</version>
     <packaging>pom</packaging>
     <description>AXIOM API</description>
     <url>http://ws.apache.org/axiom/</url>
@@ -251,7 +253,7 @@
                 </plugin>
                 <plugin>
                     <artifactId>maven-site-plugin</artifactId>
-                    <version>3.0</version>
+                    <version>3.2</version>
                     <dependencies>
                         <dependency>
                             <groupId>${project.groupId}</groupId>
@@ -486,6 +488,8 @@
                                 <exclude>**/*.svg</exclude>
                                 <!-- License file from Jaxen (see LEGAL-74 & WSCOMMONS-545) -->
                                 <exclude>legal/jaxen-LICENSE.txt</exclude>
+                                <!-- BSD style license -->
+                                <exclude>legal/stax2-api-LICENSE.txt</exclude>
                                 <!-- Files used by various developer tools -->
                                 <exclude>*.sonarj</exclude>
                                 <!-- File generated by maven-release-plugin -->
@@ -501,7 +505,7 @@
         <plugins>
             <plugin>
                 <artifactId>maven-project-info-reports-plugin</artifactId>
-                <version>2.1.1</version>
+                <version>2.6</version>
                 <reportSets>
                     <reportSet>
                         <reports>

Modified: webservices/axiom/branches/AXIOM-201/src/docbkx/userguide.xml
URL: http://svn.apache.org/viewvc/webservices/axiom/branches/AXIOM-201/src/docbkx/userguide.xml?rev=1424548&r1=1424547&r2=1424548&view=diff
==============================================================================
--- webservices/axiom/branches/AXIOM-201/src/docbkx/userguide.xml (original)
+++ webservices/axiom/branches/AXIOM-201/src/docbkx/userguide.xml Thu Dec 20 15:55:24 2012
@@ -1515,7 +1515,7 @@ public InputStream getInputStream() thro
                 <methodname>getInputStream</methodname> <quote>destructive</quote>. Consider
                 the implementation shown in <xref linkend="InputStreamDataSource"/><footnote><para>The example
                 shown is actually a simplified version of code that is 
-                <ulink url="http://svn.apache.org/repos/asf/webservices/axis2/tags/java/v1.5/modules/kernel/src/org/apache/axis2/builder/unknowncontent/InputStreamDataSource.java">part of Axis2 1.5</ulink>.</para></footnote>.
+                <ulink url="http://svn.apache.org/repos/asf/axis/axis2/java/core/tags/v1.5/modules/kernel/src/org/apache/axis2/builder/unknowncontent/InputStreamDataSource.java">part of Axis2 1.5</ulink>.</para></footnote>.
                 It is clear that this data source can only be read once and that any subsequent call to
                 <methodname>getInputStream</methodname> will return an already closed input stream.
             </para>
@@ -1648,15 +1648,15 @@ public InputStream getInputStream() thro
                 <para>
                     Experience indeed shows that the most challenging part in creating an
                     <classname>OMDataSource</classname> implementation is to write the
-                    <methodname>getReader</methodname> method. To avoid that difficulty some
-                    implementations simply build an Axiom tree and return the
+                    <methodname>getReader</methodname> method. In the past, to avoid that difficulty some
+                    implementations simply built an Axiom tree and returned the
                     <classname>XMLStreamReader</classname> provided by
-                    <methodname>OMElement#getXMLStreamReader()</methodname>. For example, some ADB
-                    (Axis2 Data Binding) versions use the following code<footnote><para>For the complete
-                    code, see <ulink url="http://svn.apache.org/repos/asf/webservices/axis2/tags/java/v1.5/modules/adb/src/org/apache/axis2/databinding/ADBDataSource.java"/>.</para></footnote>:
+                    <methodname>OMElement#getXMLStreamReader()</methodname>. For example, older versions of ADB
+                    (Axis2 Data Binding) used the following code<footnote><para>For the complete
+                    code, see <ulink url="http://svn.apache.org/repos/asf/axis/axis2/java/core/tags/v1.5/modules/adb/src/org/apache/axis2/databinding/ADBDataSource.java"/>.</para></footnote>:
                 </para>
                 <example id="adb-getReader">
-                    <title><methodname>OMDataSource#getReader()</methodname> implementation used by ADB</title>
+                    <title><methodname>OMDataSource#getReader()</methodname> implementation used in older ADB versions</title>
 <programlisting>public XMLStreamReader getReader() throws XMLStreamException {
     MTOMAwareOMBuilder mtomAwareOMBuilder = new MTOMAwareOMBuilder();
     serialize(mtomAwareOMBuilder);
@@ -1664,39 +1664,28 @@ public InputStream getInputStream() thro
 }</programlisting>
                 </example>
                 <para>
-                    The <classname>MTOMAwareOMBuilder</classname> class referenced by this code is a special
-                    implementation of <classname>XMLStreamWriter</classname> that builds an Axiom tree from the
-                    sequence of events send to it. The code than uses this Axiom tree to get the
-                    <classname>XMLStreamReader</classname> implementation. While this is a functionally correct
+                    The <classname>MTOMAwareOMBuilder</classname> class referenced by this code was a special
+                    implementation of <classname>XMLStreamWriter</classname> building an Axiom tree from the
+                    sequence of events sent to it. The code than used this Axiom tree to get the
+                    <classname>XMLStreamReader</classname> implementation. While this was a functionally correct
                     implementation of the <methodname>getReader</methodname> method, it is not a good
                     solution from a performance perspective and also contradicts some of the ideas on
                     which Axiom is based, namely that the object model should only be built when necessary.
                 </para>
                 <para>
-                    Indeed, it should not be necessary to build an intermediary tree when requesting a pull
-                    parser from the <classname>OMDataSource</classname> because all the required information
-                    is already present in the ADB beans. Worse, if the <classname>OMSourcedElement</classname>
-                    is expanded, the object model instance will be built twice: once by the
-                    <methodname>getReader</methodname> and once by Axiom itself!
+                    Starting with Axiom 1.2.14, there is a solution to avoid this anti-pattern.
+                    <classname>OMDataSource</classname> implementations that cannot provide a meaningful
+                    <classname>XMLStreamReader</classname> instance should extend
+                    <classname>org.apache.axiom.om.ds.AbstractPushOMDataSource</classname> and only
+                    implement the <methodname>serialize</methodname> method.
+                    <classname>OMSourcedElement</classname> will handle <classname>OMDataSource</classname> implementations extending this class
+                    differently when it comes to expansion: instead of using <methodname>OMDataSource#getReader()</methodname> to
+                    expand the element, it will use <methodname>OMDataSource#serialize(XMLStreamWriter)</methodname> (with a special
+                    <classname>XMLStreamWriter</classname> that builds the descendants of the <classname>OMSourcedElement</classname>). Note that this means
+                    that such an <classname>OMSourcedElement</classname> will be expanded instantly, and that deferred building of
+                    the descendants is not applicable. Nevertheless, this approach is significantly more efficient
+                    than using the OM-inside-OMDataSource anti-pattern.
                 </para>
-                <para>
-                    While constructing an Axiom tree inside the <methodname>getReader</methodname> method is clearly
-                    an anti-pattern, at least in the case of ADB it is not as bad as it seems at first glance.
-                    The reason is that in the case which is the most relevant for performance
-                    (which is sending a Web Service response prepared using ADB), Axiom will only invoke
-                    the <methodname>serialize</methodname> method and not make use of
-                    <methodname>getReader</methodname>.
-                </para>
-                <note>
-                    <para>
-                        At the time of writing there is no general solution available to avoid the
-                        weak version of the OM-inside-OMDataSource anti-pattern in cases where it would be far
-                        too difficult to build a proper <classname>XMLStreamReader</classname>
-                        implementation. Future versions of Axiom may implement a solution that
-                        avoids the complexity of implementing <classname>XMLStreamReader</classname>
-                        without too much performance trade-offs.
-                    </para>
-                </note>
             </section>
             <section>
                 <title>Strong version</title>
@@ -1718,17 +1707,9 @@ public InputStream getInputStream() thro
                             to pull the events from the reader returned by a call to
                             <methodname>getReader</methodname> and copy them to the
                             <classname>XMLStreamReader</classname>. The easiest and most efficient
-                            way to do this is using <classname>StreamingOMSerializer</classname>:
-                        </para>
-                        <example id="OMDataSource-serialize">
-                            <title>Proper implementation of the <methodname>OMDataSource#serialize</methodname> method</title>
-<programlisting>public void serialize(XMLStreamWriter xmlWriter)
-        throws XMLStreamException {
-    StreamingOMSerializer serializer = new StreamingOMSerializer();
-    serializer.serialize(getReader(), xmlWriter);
-}</programlisting>
-                        </example>
-                        <para>
+                            way to do this is to extend <classname>org.apache.axiom.om.ds.AbstractPullOMDataSource</classname>
+                            (available in Axiom 1.2.14), which implements the <methodname>serialize</methodname>
+                            method in exactly that way.
                             There is thus no need to build an intermediary object model in this case.
                         </para>
                     </listitem>
@@ -1736,7 +1717,7 @@ public InputStream getInputStream() thro
                         <para>
                             The <methodname>getReader</methodname> method also uses an intermediary
                             Axiom tree<footnote><para>See e.g.
-                            <ulink url="http://svn.apache.org/repos/asf/webservices/axis2/tags/java/v1.5/modules/kernel/src/org/apache/axis2/builder/unknowncontent/UnknownContentOMDataSource.java"/>.</para></footnote>.
+                            <ulink url="http://svn.apache.org/repos/asf/axis/axis2/java/core/tags/v1.5/modules/kernel/src/org/apache/axis2/builder/unknowncontent/UnknownContentOMDataSource.java"/>.</para></footnote>.
                             In that case it doesn't make sense to use an <classname>OMSourcedElement</classname>
                             in the first place! At least it doesn't make sense if one assumes that
                             in general the <classname>OMSourcedElement</classname> will either be
@@ -1753,23 +1734,6 @@ public InputStream getInputStream() thro
                             method properly by transforming the raw or foreign data directly to StAX events written to the
                             <classname>XMLStreamWriter</classname>.
                         </para>
-                        <note>
-                            <para>
-                                Implementing the <methodname>serialize</methodname> method to serialize
-                                directly to an <classname>XMLStreamWriter</classname>
-                                instead of using an intermediary Axiom tree of course still leaves the question about
-                                the <methodname>getReader</methodname> method open.
-                                Since we are assuming that implementing <methodname>getReader</methodname>
-                                properly would be too complex (otherwise one could use the code shown in
-                                <xref linkend="OMDataSource-serialize"/> to avoid the
-                                OM-inside-OMDataSource anti-pattern entirely), one is forced to
-                                use the code shown in <xref linkend="adb-getReader"/> (and thus the weaker version of
-                                the anti-pattern). However this code depends on the <classname>MTOMAwareOMBuilder</classname>
-                                class which is part of <literal>axis2-adb</literal>. In some cases, depending on
-                                that library may not be an option. Therefore this class should probably
-                                be moved to Axiom.
-                            </para>
-                        </note>
                     </listitem>
                 </orderedlist>
                 <para>

Modified: webservices/axiom/branches/AXIOM-201/src/main/assembly/bin.xml
URL: http://svn.apache.org/viewvc/webservices/axiom/branches/AXIOM-201/src/main/assembly/bin.xml?rev=1424548&r1=1424547&r2=1424548&view=diff
==============================================================================
--- webservices/axiom/branches/AXIOM-201/src/main/assembly/bin.xml (original)
+++ webservices/axiom/branches/AXIOM-201/src/main/assembly/bin.xml Thu Dec 20 15:55:24 2012
@@ -77,6 +77,8 @@
                 <include>org.apache.ws.commons.axiom:axiom-api</include>
                 <include>org.apache.ws.commons.axiom:axiom-impl</include>
                 <include>org.apache.ws.commons.axiom:axiom-dom</include>
+                <include>org.apache.ws.commons.axiom:axiom-compat</include>
+                <include>org.apache.ws.commons.axiom:axiom-jaxb</include>
                 <include>org.apache.ws.commons.axiom:axiom-c14n</include>
             </includes>
             <binaries>
@@ -86,6 +88,12 @@
                 <dependencySets>
                     <dependencySet>
                         <outputDirectory>lib</outputDirectory>
+                        <excludes>
+                            <!-- This artifact is actually shaded into axiom-impl and axiom-dom -->
+                            <exclude>org.apache.ws.commons.axiom:axiom-common-impl</exclude>
+                            <!-- This dependency should be considered as provided by the application code -->
+                            <exclude>javax.xml.bind:jaxb-api</exclude>
+                        </excludes>
                     </dependencySet>
                 </dependencySets>
             </binaries>

Modified: webservices/axiom/branches/AXIOM-201/src/site/apt/index.apt
URL: http://svn.apache.org/viewvc/webservices/axiom/branches/AXIOM-201/src/site/apt/index.apt?rev=1424548&r1=1424547&r2=1424548&view=diff
==============================================================================
--- webservices/axiom/branches/AXIOM-201/src/site/apt/index.apt (original)
+++ webservices/axiom/branches/AXIOM-201/src/site/apt/index.apt Thu Dec 20 15:55:24 2012
@@ -57,6 +57,25 @@ Key Features
 
 Latest Release
 
+  <<2nd December 2012 - Apache Axiom Verson 1.2.14 Released!>>
+  
+  Axiom 1.2.14 contains fixes for more than twenty {{{https://issues.apache.org/jira/secure/ReleaseNote.jspa?projectId=12311190&version=12318340}JIRA issues}}
+  as well as lots of other improvements.
+  
+  Users upgrading to 1.2.14 should take into account the following changes:
+  
+    * Axiom now uses Woodstox 4.1.x as StAX implementation (although 3.2.x and 4.0.x are still supported).
+    
+    * <<<OMFactory>>> implementations for DOOM are now stateless.
+    
+    * Several deprecated classes have been moved to a new JAR file named <<<axiom-compat>>> and are no
+      longer included in the core artifacts (<<<axiom-api>>>, <<<axiom-impl>>> and <<<axiom-dom>>>).
+  
+  For more information about the possible impact on existing application code of these changes,
+  please refer to the {{{./userguide/ch04.html#changes-1.2.14}user guide}}.
+  
+Previous Releases
+
   <<2nd April 2012 - Apache Axiom Version 1.2.13 Released!>>
 
   \[{{{http://ws.apache.org/axiom/download.cgi}Download Axiom 1.2.13}}\]
@@ -74,8 +93,6 @@ Latest Release
   For more information about the possible impact on existing application code of the changes included in Axiom 1.2.13,
   please refer to the {{{./userguide/ch04.html#changes-1.2.13}user guide}}.
   
-Previous Releases
-
   <<2nd July 2011 - Apache Axiom Version 1.2.12 Released!>>
 
   Axiom 1.2.12 contains fixes for the following JIRA issues:

Modified: webservices/axiom/branches/AXIOM-201/src/site/resources/css/site.css
URL: http://svn.apache.org/viewvc/webservices/axiom/branches/AXIOM-201/src/site/resources/css/site.css?rev=1424548&r1=1424547&r2=1424548&view=diff
==============================================================================
--- webservices/axiom/branches/AXIOM-201/src/site/resources/css/site.css (original)
+++ webservices/axiom/branches/AXIOM-201/src/site/resources/css/site.css Thu Dec 20 15:55:24 2012
@@ -80,6 +80,10 @@ div#navcolumn > ul > li.expanded,
 div#navcolumn > ul > li.none {
 }
 
+div#navcolumn > ul > li.none {
+  text-indent: 0.4em;
+}
+
 div#navcolumn > ul > li.expanded > ul > li.none > a,
 div#navcolumn > ul > li.expanded > ul > li.none > strong {
   padding-left: 0.3em;

Modified: webservices/axiom/branches/AXIOM-201/src/site/xdoc/download.xml.vm
URL: http://svn.apache.org/viewvc/webservices/axiom/branches/AXIOM-201/src/site/xdoc/download.xml.vm?rev=1424548&r1=1424547&r2=1424548&view=diff
==============================================================================
--- webservices/axiom/branches/AXIOM-201/src/site/xdoc/download.xml.vm (original)
+++ webservices/axiom/branches/AXIOM-201/src/site/xdoc/download.xml.vm Thu Dec 20 15:55:24 2012
@@ -39,41 +39,51 @@
             <div align="center">
 
                 <table class="bodyTable">
+                    <thead>
+                        <tr>
+                            <th>Version</th>
+                            <th>Distribution</th>
+                            <th>Date</th>
+                            <th>Status</th>
+                        </tr>
+                    </thead>
                     <tbody>
-                        <tr class="a">
-                            <td align="center" width="45">Name</td>
-                            <td align="center" width="300">Distribution</td>
-                            <td align="center" width="100">Date</td>
-                            <td align="center" width="200">Description</td>
-                        </tr>
-		
-                        <tr class="b">
-                            <td align="center" valign="middle">
-                                <a name="1_2_13"></a>
-                                1.2.13
-                            </td>
-                            <td>Source Distribution
-                                <a href="[preferred]/ws/axiom/1.2.13/axiom-1.2.13-source-release.zip">zip</a> |
-                                <a href="http://www.apache.org/dist/ws/axiom/1.2.13/axiom-1.2.13-source-release.zip.md5">MD5</a> |
-                                <a href="http://www.apache.org/dist/ws/axiom/1.2.13/axiom-1.2.13-source-release.zip.asc">PGP</a>
-                                <br/>
-                                Binary Distribution
-                                <a href="[preferred]/ws/axiom/1.2.13/axiom-1.2.13-bin.zip">zip</a> |
-                                <a href="http://www.apache.org/dist/ws/axiom/1.2.13/axiom-1.2.13-bin.zip.md5">MD5</a> |
-                                <a href="http://www.apache.org/dist/ws/axiom/1.2.13/axiom-1.2.13-bin.zip.asc">PGP</a>
-
-                                <br/>
+                        <tr>
+                            <td><a name="1_2_14"/>1.2.14</td>
+                            <td>
+                                Source Distribution
+                                <a href="[preferred]/ws/axiom/1.2.14/axiom-1.2.14-source-release.zip">zip</a> |
+                                <a href="http://www.apache.org/dist/ws/axiom/1.2.14/axiom-1.2.14-source-release.zip.md5">MD5</a> |
+                                <a href="http://www.apache.org/dist/ws/axiom/1.2.14/axiom-1.2.14-source-release.zip.asc">PGP</a>
+                                <br/>
+                                Binary Distribution
+                                <a href="[preferred]/ws/axiom/1.2.14/axiom-1.2.14-bin.zip">zip</a> |
+                                <a href="http://www.apache.org/dist/ws/axiom/1.2.14/axiom-1.2.14-bin.zip.md5">MD5</a> |
+                                <a href="http://www.apache.org/dist/ws/axiom/1.2.14/axiom-1.2.14-bin.zip.asc">PGP</a>
+                            </td>
+                            <td>02 - Dec - 2012</td>
+                            <td>Mirrored</td>
+                        </tr>
+                        <tr>
+                            <td><a name="1_2_13"/>1.2.13</td>
+                            <td>
+                                Source Distribution
+                                <a href="http://archive.apache.org/dist/ws/axiom/1.2.13/axiom-1.2.13-source-release.zip">zip</a> |
+                                <a href="http://archive.apache.org/dist/ws/axiom/1.2.13/axiom-1.2.13-source-release.zip.md5">MD5</a> |
+                                <a href="http://archive.apache.org/dist/ws/axiom/1.2.13/axiom-1.2.13-source-release.zip.asc">PGP</a>
+                                <br/>
+                                Binary Distribution
+                                <a href="http://archive.apache.org/dist/ws/axiom/1.2.13/axiom-1.2.13-bin.zip">zip</a> |
+                                <a href="http://archive.apache.org/dist/ws/axiom/1.2.13/axiom-1.2.13-bin.zip.md5">MD5</a> |
+                                <a href="http://archive.apache.org/dist/ws/axiom/1.2.13/axiom-1.2.13-bin.zip.asc">PGP</a>
                             </td>
                             <td>02 - Apr - 2012</td>
-                            <td>1.2.13 Release (Mirrored)</td>
+                            <td>Archived</td>
                         </tr>
-                        
-                        <tr class="b">
-                            <td align="center" valign="middle">
-                                <a name="1_2_12"></a>
-                                1.2.12
-                            </td>
-                            <td>Source Distribution
+                        <tr>
+                            <td><a name="1_2_12"/>1.2.12</td>
+                            <td>
+                                Source Distribution
                                 <a href="http://archive.apache.org/dist/ws/commons/axiom/1_2_12/axiom-1.2.12-source-release.zip">zip</a> |
                                 <a href="http://archive.apache.org/dist/ws/commons/axiom/1_2_12/axiom-1.2.12-source-release.zip.md5">MD5</a> |
                                 <a href="http://archive.apache.org/dist/ws/commons/axiom/1_2_12/axiom-1.2.12-source-release.zip.asc">PGP</a>
@@ -82,19 +92,14 @@
                                 <a href="http://archive.apache.org/dist/ws/commons/axiom/1_2_12/axiom-1.2.12-bin.zip">zip</a> |
                                 <a href="http://archive.apache.org/dist/ws/commons/axiom/1_2_12/axiom-1.2.12-bin.zip.md5">MD5</a> |
                                 <a href="http://archive.apache.org/dist/ws/commons/axiom/1_2_12/axiom-1.2.12-bin.zip.asc">PGP</a>
-
-                                <br/>
                             </td>
                             <td>02 - Jul - 2011</td>
-                            <td>1.2.12 Release (Archived)</td>
+                            <td>Archived</td>
                         </tr>
-                        
-                        <tr class="b">
-                            <td align="center" valign="middle">
-                                <a name="1_2_11"></a>
-                                1.2.11
-                            </td>
-                            <td>Source Distribution
+                        <tr>
+                            <td><a name="1_2_11"/>1.2.11</td>
+                            <td>
+                                Source Distribution
                                 <a href="http://archive.apache.org/dist/ws/commons/axiom/1_2_11/axiom-1.2.11-source-release.zip">zip</a> |
                                 <a href="http://archive.apache.org/dist/ws/commons/axiom/1_2_11/axiom-1.2.11-source-release.zip.md5">MD5</a> |
                                 <a href="http://archive.apache.org/dist/ws/commons/axiom/1_2_11/axiom-1.2.11-source-release.zip.asc">PGP</a>
@@ -103,19 +108,14 @@
                                 <a href="http://archive.apache.org/dist/ws/commons/axiom/1_2_11/axiom-1.2.11-bin.zip">zip</a> |
                                 <a href="http://archive.apache.org/dist/dist/ws/commons/axiom/1_2_11/axiom-1.2.11-bin.zip.md5">MD5</a> |
                                 <a href="http://archive.apache.org/dist/dist/ws/commons/axiom/1_2_11/axiom-1.2.11-bin.zip.asc">PGP</a>
-
-                                <br/>
                             </td>
                             <td>03 - Feb - 2011</td>
-                            <td>1.2.11 Release (Archived)</td>
+                            <td>Archived</td>
                         </tr>
-                        
-                        <tr class="b">
-                            <td align="center" valign="middle">
-                                <a name="1_2_10"></a>
-                                1.2.10
-                            </td>
-                            <td>Source Distribution
+                        <tr>
+                            <td><a name="1_2_10"/>1.2.10</td>
+                            <td>
+                                Source Distribution
                                 <a href="http://archive.apache.org/dist/ws/commons/axiom/1_2_10/axiom-1.2.10-source-release.zip">zip</a> |
                                 <a href="http://archive.apache.org/dist/ws/commons/axiom/1_2_10/axiom-1.2.10-source-release.zip.md5">MD5</a> |
                                 <a href="http://archive.apache.org/dist/ws/commons/axiom/1_2_10/axiom-1.2.10-source-release.zip.asc">PGP</a>
@@ -124,19 +124,14 @@
                                 <a href="http://archive.apache.org/dist/ws/commons/axiom/1_2_10/axiom-1.2.10-bin.zip">zip</a> |
                                 <a href="http://archive.apache.org/dist/ws/commons/axiom/1_2_10/axiom-1.2.10-bin.zip.md5">MD5</a> |
                                 <a href="http://archive.apache.org/dist/ws/commons/axiom/1_2_10/axiom-1.2.10-bin.zip.asc">PGP</a>
-
-                                <br/>
                             </td>
                             <td>30 - Oct - 2010</td>
-                            <td>1.2.10 Release (Archived)</td>
+                            <td>Archived</td>
                         </tr>
-                        
-        <tr class="b">
-                            <td align="center" valign="middle">
-                                <a name="1_2_9"></a>
-                                1.2.9
-                            </td>
-                            <td>Source Distribution
+                        <tr>
+                            <td><a name="1_2_9"/>1.2.9</td>
+                            <td>
+                                Source Distribution
                                 <a href="http://archive.apache.org/dist/ws/commons/axiom/1_2_9/axiom-1.2.9-source-release.zip">zip</a> |
                                 <a href="http://archive.apache.org/dist/ws/commons/axiom/1_2_9/axiom-1.2.9-source-release.zip.md5">MD5</a> |
                                 <a href="http://archive.apache.org/dist/ws/commons/axiom/1_2_9/axiom-1.2.9-source-release.zip.asc">PGP</a>
@@ -145,19 +140,14 @@
                                 <a href="http://archive.apache.org/dist/ws/commons/axiom/1_2_9/axiom-1.2.9-bin.zip">zip</a> |
                                 <a href="http://archive.apache.org/dist/ws/commons/axiom/1_2_9/axiom-1.2.9-bin.zip.md5">MD5</a> |
                                 <a href="http://archive.apache.org/dist/ws/commons/axiom/1_2_9/axiom-1.2.9-bin.zip.asc">PGP</a>
-
-                                <br/>
                             </td>
                             <td>13 - Jun - 2010</td>
-                            <td>1.2.9 Release (Archived)</td>
+                            <td>Archived</td>
                         </tr>
-
-		<tr class="b">
-                            <td align="center" valign="middle">
-                                <a name="1_2_8"></a>
-                                1.2.8
-                            </td>
-                            <td>Source Distribution
+                		<tr>
+                            <td><a name="1_2_8"/>1.2.8</td>
+                            <td>
+                                Source Distribution
                                 <a href="http://archive.apache.org/dist/ws/commons/axiom/1_2_8/axiom-1.2.8-src.zip">zip</a> |
                                 <a href="http://archive.apache.org/dist/ws/commons/axiom/1_2_8/axiom-1.2.8-src.zip.md5">MD5</a> |
                                 <a href="http://archive.apache.org/dist/ws/commons/axiom/1_2_8/axiom-1.2.8-src.zip.asc">PGP</a>
@@ -166,19 +156,14 @@
                                 <a href="http://archive.apache.org/dist/ws/commons/axiom/1_2_8/axiom-1.2.8-bin.zip">zip</a> |
                                 <a href="http://archive.apache.org/dist/ws/commons/axiom/1_2_8/axiom-1.2.8-bin.zip.md5">MD5</a> |
                                 <a href="http://archive.apache.org/dist/ws/commons/axiom/1_2_8/axiom-1.2.8-bin.zip.asc">PGP</a>
-
-                                <br/>
                             </td>
                             <td>15 - Jan - 2009</td>
-                            <td>1.2.8 Release (Archived)</td>
+                            <td>Archived</td>
                         </tr>
-
-        <tr class="b">
-                            <td align="center" valign="middle">
-                                <a name="1_2_7"></a>
-                                1.2.7
-                            </td>
-                            <td>Source Distribution
+                        <tr>
+                            <td><a name="1_2_7"/>1.2.7</td>
+                            <td>
+                                Source Distribution
                                 <a href="http://archive.apache.org/dist/ws/commons/axiom/1_2_7/axiom-1.2.7-src.zip">zip</a> |
                                 <a href="http://archive.apache.org/dist/ws/commons/axiom/1_2_7/axiom-1.2.7-src.zip.md5">MD5</a> |
                                 <a href="http://archive.apache.org/dist/ws/commons/axiom/1_2_7/axiom-1.2.7-src.zip.asc">PGP</a>
@@ -187,19 +172,14 @@
                                 <a href="http://archive.apache.org/dist/ws/commons/axiom/1_2_7/axiom-1.2.7-bin.zip">zip</a> |
                                 <a href="http://archive.apache.org/dist/ws/commons/axiom/1_2_7/axiom-1.2.7-bin.zip.md5">MD5</a> |
                                 <a href="http://archive.apache.org/dist/ws/commons/axiom/1_2_7/axiom-1.2.7-bin.zip.asc">PGP</a>
-
-                                <br/>
                             </td>
                             <td>20 - Apr - 2008</td>
-                            <td>1.2.7 Release (Archived)</td>
+                            <td>Archived</td>
                         </tr>
-
-		<tr class="b">
-                            <td align="center" valign="middle">
-                                <a name="1_2_6"></a>
-                                1.2.6
-                            </td>
-                            <td>Source Distribution
+                		<tr>
+                            <td><a name="1_2_6"/>1.2.6</td>
+                            <td>
+                                Source Distribution
                                 <a href="http://archive.apache.org/dist/ws/commons/axiom/1_2_6/axiom-1.2.6-src.zip">zip</a> |
                                 <a href="http://archive.apache.org/dist/ws/commons/axiom/1_2_6/axiom-1.2.6-src.zip.md5">MD5</a> |
                                 <a href="http://archive.apache.org/dist/ws/commons/axiom/1_2_6/axiom-1.2.6-src.zip.asc">PGP</a>
@@ -208,19 +188,14 @@
                                 <a href="http://archive.apache.org/dist/ws/commons/axiom/1_2_6/axiom-1.2.6-bin.zip">zip</a> |
                                 <a href="http://archive.apache.org/dist/ws/commons/axiom/1_2_6/axiom-1.2.6-bin.zip.md5">MD5</a> |
                                 <a href="http://archive.apache.org/dist/ws/commons/axiom/1_2_6/axiom-1.2.6-bin.zip.asc">PGP</a>
-
-                                <br/>
                             </td>
                             <td>09 - Apr - 2008</td>
-                            <td>1.2.6 Release (Archived)</td>
+                            <td>Archived</td>
                         </tr>
-
-		<tr class="b">
-                            <td align="center" valign="middle">
-                                <a name="1_2_5"></a>
-                                1.2.5
-                            </td>
-                            <td>Source Distribution
+                		<tr>
+                            <td><a name="1_2_5"/>1.2.5</td>
+                            <td>
+                                Source Distribution
                                 <a href="http://archive.apache.org/dist/ws/commons/axiom/1_2_5/axiom-1.2.5-src.zip">zip</a> |
                                 <a href="http://archive.apache.org/dist/ws/commons/axiom/1_2_5/axiom-1.2.5-src.zip.md5">MD5</a> |
                                 <a href="http://archive.apache.org/dist/ws/commons/axiom/1_2_5/axiom-1.2.5-src.zip.asc">PGP</a>
@@ -229,19 +204,14 @@
                                 <a href="http://archive.apache.org/dist/ws/commons/axiom/1_2_5/axiom-1.2.5-bin.zip">zip</a> |
                                 <a href="http://archive.apache.org/dist/ws/commons/axiom/1_2_5/axiom-1.2.5-bin.zip.md5">MD5</a> |
                                 <a href="http://archive.apache.org/dist/ws/commons/axiom/1_2_5/axiom-1.2.5-bin.zip.asc">PGP</a>
-
-                                <br/>
                             </td>
                             <td>05 - Jul - 2007</td>
-                            <td>1.2.5 Release (Archived)</td>
+                            <td>Archived</td>
                         </tr>
-
-                 <tr class="b">
-                            <td align="center" valign="middle">
-                                <a name="1_2_4"></a>
-                                1.2.4
-                            </td>
-                            <td>Source Distribution
+                         <tr>
+                            <td><a name="1_2_4"/>1.2.4</td>
+                            <td>
+                                Source Distribution
                                 <a href="http://archive.apache.org/dist/ws/commons/axiom/1_2_4/axiom-1.2.4-src.zip">zip</a> |
                                 <a href="http://archive.apache.org/dist/ws/commons/axiom/1_2_4/axiom-1.2.4-src.zip.md5">MD5</a> |
                                 <a href="http://archive.apache.org/dist/ws/commons/axiom/1_2_4/axiom-1.2.4-src.zip.asc">PGP</a>
@@ -250,20 +220,14 @@
                                 <a href="http://archive.apache.org/dist/ws/commons/axiom/1_2_4/axiom-1.2.4-bin.zip">zip</a> |
                                 <a href="http://archive.apache.org/dist/ws/commons/axiom/1_2_4/axiom-1.2.4-bin.zip.md5">MD5</a> |
                                 <a href="http://archive.apache.org/dist/ws/commons/axiom/1_2_4/axiom-1.2.4-bin.zip.asc">PGP</a>
-
-                                <br/>
                             </td>
                             <td>20 - Apr - 2007</td>
-                            <td>1.2.4 Release (Archived)</td>
+                            <td>Archived</td>
                         </tr>
-
-
-                <tr class="b">
-                            <td align="center" valign="middle">
-                                <a name="1_2_3"></a>
-                                1.2.3
-                            </td>
-                            <td>Source Distribution
+                        <tr>
+                            <td><a name="1_2_3"/>1.2.3</td>
+                            <td>
+                                Source Distribution
                                 <a href="http://archive.apache.org/dist/ws/commons/axiom/1_2_3/axiom-1.2.3-src.zip">zip</a> |
                                 <a href="http://archive.apache.org/dist/ws/commons/axiom/1_2_3/axiom-1.2.3-src.zip.md5">MD5</a> |
                                 <a href="http://archive.apache.org/dist/ws/commons/axiom/1_2_3/axiom-1.2.3-src.zip.asc">PGP</a>
@@ -272,19 +236,14 @@
                                 <a href="http://archive.apache.org/dist/ws/commons/axiom/1_2_3/axiom-1.2.3-bin.zip">zip</a> |
                                 <a href="http://archive.apache.org/dist/ws/commons/axiom/1_2_3/axiom-1.2.3-bin.zip.md5">MD5</a> |
                                 <a href="http://archive.apache.org/dist/ws/commons/axiom/1_2_3/axiom-1.2.3-bin.zip.asc">PGP</a>
-
-                                <br/>
                             </td>
                             <td>03 - Apr - 2007</td>
-                            <td>1.2.3 Release (Archived)</td>
+                            <td>Archived</td>
                         </tr>
-
-                <tr class="b">
-                            <td align="center" valign="middle">
-                                <a name="1_2_2"></a>
-                                1.2.2
-                            </td>
-                            <td>Source Distribution
+                        <tr>
+                            <td><a name="1_2_2"/>1.2.2</td>
+                            <td>
+                                Source Distribution
                                 <a href="http://archive.apache.org/dist/ws/commons/axiom/1_2_2/axiom-1.2.2-src.zip">zip</a> |
                                 <a href="http://archive.apache.org/dist/ws/commons/axiom/1_2_2/axiom-1.2.2-src.zip.md5">MD5</a> |
                                 <a href="http://archive.apache.org/dist/ws/commons/axiom/1_2_2/axiom-1.2.2-src.zip.asc">PGP</a>
@@ -293,20 +252,14 @@
                                 <a href="http://archive.apache.org/dist/ws/commons/axiom/1_2_2/axiom-1.2.2-bin.zip">zip</a> |
                                 <a href="http://archive.apache.org/dist/ws/commons/axiom/1_2_2/axiom-1.2.2-bin.zip.md5">MD5</a> |
                                 <a href="http://archive.apache.org/dist/ws/commons/axiom/1_2_2/axiom-1.2.2-bin.zip.asc">PGP</a>
-
-                                <br/>
                             </td>
                             <td>09 - Jan - 2007</td>
-                            <td>1.2.2 Release (Archived)</td>
+                            <td>Archived</td>
                         </tr>
-
-			
-			<tr class="b">
-                            <td align="center" valign="middle">
-                                <a name="1_2_1"></a>
-                                1.2.1
-                            </td>
-                            <td>Source Distribution
+            			<tr>
+                            <td><a name="1_2_1"/>1.2.1</td>
+                            <td>
+                                Source Distribution
                                 <a href="http://archive.apache.org/dist/ws/commons/axiom/1_2_1/axiom-1.2.1-src.zip">zip</a> |
                                 <a href="http://archive.apache.org/dist/ws/commons/axiom/1_2_1/axiom-1.2.1-src.zip.md5">MD5</a> |
                                 <a href="http://archive.apache.org/dist/ws/commons/axiom/1_2_1/axiom-1.2.1-src.zip.asc">PGP</a>
@@ -315,20 +268,14 @@
                                 <a href="http://archive.apache.org/dist/ws/commons/axiom/1_2_1/axiom-1.2.1-bin.zip">zip</a> |
                                 <a href="http://archive.apache.org/dist/ws/commons/axiom/1_2_1/axiom-1.2.1-bin.zip.md5">MD5</a> |
                                 <a href="http://archive.apache.org/dist/ws/commons/axiom/1_2_1/axiom-1.2.1-bin.zip.asc">PGP</a>
-
-                                <br/>
                             </td>
                             <td>30 - Nov - 2006</td>
-                            <td>1.2.1 Release (Archived)</td>
+                            <td>Archived</td>
                         </tr>
-
-
-                        <tr class="b">
-                            <td align="center" valign="middle">
-                                <a name="1_2"></a>
-                                1.2
-                            </td>
-                            <td>Source Distribution
+                        <tr>
+                            <td><a name="1_2"/>1.2</td>
+                            <td>
+                                Source Distribution
                                 <a href="http://archive.apache.org/dist/ws/commons/axiom/1_2/axiom-1.2-src.zip">zip</a> |
                                 <a href="http://archive.apache.org/dist/ws/commons/axiom/1_2/axiom-1.2-src.zip.md5">MD5</a> |
                                 <a href="http://archive.apache.org/dist/ws/commons/axiom/1_2/axiom-1.2-src.zip.asc">PGP</a>
@@ -337,18 +284,12 @@
                                 <a href="http://archive.apache.org/dist/ws/commons/axiom/1_2/axiom-1.2-bin.zip">zip</a> |
                                 <a href="http://archive.apache.org/dist/ws/commons/axiom/1_2/axiom-1.2-bin.zip.md5">MD5</a> |
                                 <a href="http://archive.apache.org/dist/ws/commons/axiom/1_2/axiom-1.2-bin.zip.asc">PGP</a>
-
-                                <br/>
                             </td>
                             <td>13 - Nov - 2006</td>
-                            <td>1.2 Release (Archived)</td>
+                            <td>Archived</td>
                         </tr>
-
-                        <tr class="b">
-                            <td align="center" valign="middle">
-                                <a name="09"></a>
-                                1.1.1
-                            </td>
+                        <tr>
+                            <td><a name="1_1_1"/>1.1.1</td>
                             <td>Source Distribution
                                 <a href="http://archive.apache.org/dist/ws/commons/axiom/1_1_1/axiom-1.1.1-src.zip">zip</a> |
                                 <a href="http://archive.apache.org/dist/ws/commons/axiom/1_1_1/axiom-1.1.1-src.zip.md5">MD5</a> |
@@ -358,19 +299,14 @@
                                 <a href="http://archive.apache.org/dist/ws/commons/axiom/1_1_1/axiom-1.1.1-bin.zip">zip</a> |
                                 <a href="http://archive.apache.org/dist/ws/commons/axiom/1_1_1/axiom-1.1.1-bin.zip.md5">MD5</a> |
                                 <a href="http://archive.apache.org/dist/ws/commons/axiom/1_1_1/axiom-1.1.1-bin.zip.asc">PGP</a>
-
-                                <br/>
                             </td>
                             <td>18 - Sep - 2006</td>
-                            <td>1.1.1 Release (Archived)</td>
+                            <td>Archived</td>
                         </tr>
-
-                        <tr class="b">
-                            <td align="center" valign="middle">
-                                <a name="1_1"></a>
-                                1.1
-                            </td>
-                            <td>Source Distribution
+                        <tr>
+                            <td><a name="1_1"/>1.1</td>
+                            <td>
+                                Source Distribution
                                 <a href="http://archive.apache.org/dist/ws/commons/axiom/1_1/axiom-1.1-src.zip">zip</a> |
                                 <a href="http://archive.apache.org/dist/ws/commons/axiom/1_1/axiom-1.1-src.zip.md5">MD5</a> |
                                 <a href="http://archive.apache.org/dist/ws/commons/axiom/1_1/axiom-1.1-src.zip.asc">PGP</a>
@@ -379,24 +315,14 @@
                                 <a href="http://archive.apache.org/dist/ws/commons/axiom/1_1/axiom-1.1-bin.zip">zip</a> |
                                 <a href="http://archive.apache.org/dist/ws/commons/axiom/1_1/axiom-1.1-bin.zip.md5">MD5</a> |
                                 <a href="http://archive.apache.org/dist/ws/commons/axiom/1_1/axiom-1.1-bin.zip.asc">PGP</a>
-
-                                <br/>
                             </td>
                             <td>15 - Sep - 2006</td>
-                            <td>1.1 Release (Archived)
-                                <br/>
-                                Note : This released was compiled using JDK 1.5 and will not work with JDK 1.4. Please
-                                move to Axiom 1.1.1.
-                            </td>
+                            <td>Archived</td>
                         </tr>
-
-
-                        <tr class="b">
-                            <td align="center" valign="middle">
-                                <a name="1_0"></a>
-                                1.0
-                            </td>
-                            <td>Source Distribution
+                        <tr>
+                            <td><a name="1_0"/>1.0</td>
+                            <td>
+                                Source Distribution
                                 <a href="http://archive.apache.org/dist/ws/commons/axiom/1_0/axiom-1.0-src.zip">zip</a> |
                                 <a href="http://archive.apache.org/dist/ws/commons/axiom/1_0/axiom-1.0-src.zip.md5">MD5</a> |
                                 <a href="http://archive.apache.org/dist/ws/commons/axiom/1_0/axiom-1.0-src.zip.asc">PGP</a>
@@ -405,20 +331,14 @@
                                 <a href="http://archive.apache.org/dist/ws/commons/axiom/1_0/axiom-1.0-bin.zip">zip</a> |
                                 <a href="http://archive.apache.org/dist/ws/commons/axiom/1_0/axiom-1.0-bin.zip.md5">MD5</a> |
                                 <a href="http://archive.apache.org/dist/ws/commons/axiom/1_0/axiom-1.0-bin.zip.asc">PGP</a>
-
-                                <br/>
                             </td>
                             <td>02 - May - 2006</td>
-                            <td>1.0 Release (Archived)</td>
+                            <td>Archived</td>
                         </tr>
-
-
-                        <tr class="b">
-                            <td align="center" valign="middle">
-                                <a name="0_95"></a>
-                                0.95
-                            </td>
-                            <td>Source Distribution
+                        <tr>
+                            <td><a name="0_95"/>0.95</td>
+                            <td>
+                                Source Distribution
                                 <a href="http://archive.apache.org/dist/ws/commons/axiom/0_95/axiom-0.95-src.zip">zip</a> |
                                 <a href="http://archive.apache.org/dist/ws/commons/axiom/0_95/axiom-0.95-src.zip.md5">MD5</a> |
                                 <a href="http://archive.apache.org/dist/ws/commons/axiom/0_95/axiom-0.95-src.zip.asc">PGP</a>
@@ -427,13 +347,10 @@
                                 <a href="http://archive.apache.org/dist/ws/commons/axiom/0_95/axiom-0.95-bin.zip">zip</a> |
                                 <a href="http://archive.apache.org/dist/ws/commons/axiom/0_95/axiom-0.95-bin.zip.md5">MD5</a> |
                                 <a href="http://archive.apache.org/dist/ws/commons/axiom/0_95/axiom-0.95-bin.zip.asc">PGP</a>
-
-                                <br/>
                             </td>
                             <td>23 - Mar - 2006</td>
-                            <td>0.95 Release (Archived)</td>
+                            <td>Archived</td>
                         </tr>
-
                     </tbody>
                 </table>
             </div>