Creating new tapestry3 root subversion path for some minor tap3 work.

git-svn-id: https://svn.apache.org/repos/asf/tapestry/tapestry3/trunk@670589 13f79535-47bb-0310-9956-ffa450edef68
diff --git a/3.0.4/.checkstyle b/3.0.4/.checkstyle
deleted file mode 100644
index 2e8139b..0000000
--- a/3.0.4/.checkstyle
+++ /dev/null
@@ -1,6 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<fileset-config file-format-version="1.2.0" simple-config="true">
-    <fileset name="all" enabled="true" check-config-name="Sun Checks" local="false">
-        <file-match-pattern match-pattern="." include-pattern="true"/>
-    </fileset>
-</fileset-config>
diff --git a/3.0.4/.classpath b/3.0.4/.classpath
deleted file mode 100644
index 8842b6c..0000000
--- a/3.0.4/.classpath
+++ /dev/null
@@ -1,31 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<classpath>
-	<classpathentry kind="lib" path="config"/>
-	<classpathentry kind="src" path="framework/src"/>
-	<classpathentry kind="src" path="contrib/src"/>
-	<classpathentry kind="src" path="junit/src"/>
-	<classpathentry kind="src" path="examples/VlibBeans/src"/>
-	<classpathentry kind="src" path="examples/Vlib/src"/>
-	<classpathentry kind="src" path="examples/Workbench/src"/>
-	<classpathentry kind="src" path="examples/wap/src"/>
-	<classpathentry exported="true" kind="lib" path="lib/ext/jakarta-oro-2.0.6.jar"/>
-	<classpathentry exported="true" kind="lib" path="lib/ext/commons-logging-1.0.2.jar"/>
-	<classpathentry exported="true" kind="lib" path="lib/ext/commons-lang-1.0.jar"/>
-	<classpathentry exported="true" kind="lib" path="lib/ext/bsf-2.3.0.jar"/>
-	<classpathentry kind="lib" path="ext-dist/junit.jar"/>
-	<classpathentry exported="true" kind="lib" path="lib/ext/commons-beanutils-1.6.1.jar"/>
-	<classpathentry kind="lib" path="examples/Workbench/lib/jCharts-0.6.0.jar"/>
-	<classpathentry exported="true" kind="lib" path="lib/ext/commons-collections-2.1.jar"/>
-	<classpathentry kind="lib" path="lib/ext/commons-fileupload-1.0.jar"/>
-	<classpathentry exported="true" kind="lib" path="lib/ext/javassist-2.5.1.jar"/>
-	<classpathentry exported="true" kind="lib" path="lib/ext/commons-digester-1.5.jar"/>
-	<classpathentry kind="lib" path="lib/ext/commons-codec-1.2.jar"/>
-	<classpathentry kind="lib" path="lib/j2ee/geronimo-ejb.jar"/>
-	<classpathentry kind="lib" path="lib/j2ee/jsp-api.jar"/>
-	<classpathentry exported="true" kind="lib" path="lib/j2ee/servlet-api.jar"/>
-	<classpathentry kind="lib" path="lib/runtime/log4j-1.2.6.jar"/>
-	<classpathentry kind="lib" path="ext-dist/jdom-1.0.jar"/>
-	<classpathentry kind="lib" path="lib/ext/ognl-2.6.7.jar"/>
-	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/jre-1.4"/>
-	<classpathentry kind="output" path="bin"/>
-</classpath>
diff --git a/3.0.4/.cvsignore b/3.0.4/.cvsignore
deleted file mode 100644
index ce9ad11..0000000
--- a/3.0.4/.cvsignore
+++ /dev/null
@@ -1,13 +0,0 @@
-bin

-private

-dist

-.temp

-target

-maven.log

-velocity.log

-*.out

-build

-${destdir}

-cachedir

-ext-package

-.settings

diff --git a/3.0.4/.project b/3.0.4/.project
deleted file mode 100644
index 54808f1..0000000
--- a/3.0.4/.project
+++ /dev/null
@@ -1,17 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>

-<projectDescription>

-	<name>Tapestry</name>

-	<comment></comment>

-	<projects>

-	</projects>

-	<buildSpec>

-		<buildCommand>

-			<name>org.eclipse.jdt.core.javabuilder</name>

-			<arguments>

-			</arguments>

-		</buildCommand>

-	</buildSpec>

-	<natures>

-		<nature>org.eclipse.jdt.core.javanature</nature>

-	</natures>

-</projectDescription>

diff --git a/3.0.4/KEYS b/3.0.4/KEYS
deleted file mode 100644
index b61702f..0000000
--- a/3.0.4/KEYS
+++ /dev/null
@@ -1,115 +0,0 @@
-This file contains the PGP keys of various developers.
-
-Users: pgp < KEYS
-       gpg --import KEYS
-Developers: 
-        pgp -kxa <your name> and append it to this file.
-        (pgpk -ll <your name> && pgpk -xa <your name>) >> this file.
-        (gpg --list-sigs <your name>
-             && gpg --armor --export <your name>) >> this file.
-
-
-
-
-
-pub  1024D/2DDB17D0 2003-06-01 Howard M. Lewis Ship <hlship@apache.org>
-sig 3       2DDB17D0 2003-06-01   Howard M. Lewis Ship <hlship@apache.org>
-sub  1024g/7837388C 2003-06-01
-sig         2DDB17D0 2003-06-01   Howard M. Lewis Ship <hlship@apache.org>
-
------BEGIN PGP PUBLIC KEY BLOCK-----
-Version: GnuPG v1.2.2 (Cygwin)
-
-mQGiBD7aKV8RBACd181gddOl6a2AM57Ae1r14d3u2TOXDvZRICl4wH8TjJO/+M/4
-K27+3X2ENLo3zuI5aVnDo1png/KVVx7PzRdyru1O4D3TDNLKKahmN/eAW2MvnLBK
-SCaEz+FjSt16M+wGoOkd0M2JMIXGD44r6k74e7lCvj/wnsBVaIcB/y7HtwCglqYe
-DtMa0lmDAZW0vZ5G2zqL/vkD/0cnfWXyL+a+GobHzXKc245UmPpfSzCPqjYFyr+W
-UjU4qQrmod+CoTRADmu+qdeHJSX9Bs0y6HKSFYalEOfl7m90xvH+pdKvdPOsu2LU
-SMH0cpmZHt7NJmXOUeaaTNJ2fcO+exRhqiijSREgBDiVO8YsBTHXiNxTaJREHIeN
-0RRiA/9fw8GzIN6Nez8ikKHanvuKojNE68GfIlJqCrJBNB2/rPBIQgCnKuwjwQpX
-73EalqEfQiIAI/Ekq6TZ9rzoxICaO0CdMDCGuStdL74Vq7XKQvX5ifuQzXgZ1jdf
-3CAZo5vrMDc5b6p+Mt8Gw/uSjK+Sl8tg6PkC1pTcxjCbAm1T8LQoSG93YXJkIE0u
-IExld2lzIFNoaXAgPGhsc2hpcEBhcGFjaGUub3JnPohbBBMRAgAbBQI+2ilfBgsJ
-CAcDAgMVAgMDFgIBAh4BAheAAAoJEIa00not2xfQIjYAn2V6U4zBa5FT0gPSJgCt
-6ZZBBLNxAJ9sPcjK2OS8TL5OvbN9J5BUuReNKbkBDQQ+2ilhEAQAu5TtBmHvKB1T
-7xrTMBJxEmdfxZodrCqR11tZOqRrvT/RcLLZbDQ3ntscZNoiAxoGrGv1vpeO4FwD
-t5T2G93Hza7aYuVV3ucNMAiWUCnkXzLVvVxZ9xK1hnhKDkeQyIyyIjaoiRyq19bi
-2j0NBaG2QNMQpcDSkwy1vHO2SPW8GNMAAwUD/Atf6puXOZn7vj0My580uy5PczQh
-f6EazspE7hqTxuTR8Um6mznAlaFiEjXoprTk6vBpiRzihYHXWhdsOTcLzxVxK+TW
-7Ve2OJGc8jwEWWXfXImorvvlH3HTadV0d63+Sw4oLgO9etUamlM3vVOYavBCfC81
-FVh4vOvy4cKKizOFiEYEGBECAAYFAj7aKWEACgkQhrTSei3bF9CZowCdEiyvPimY
-D3G2EeSaq1C4qb2iqREAn2qZk6Dlf4XrWJiZG+27KvdyaA5N
-=p680
------END PGP PUBLIC KEY BLOCK-----
-pub   1024D/FD6C524C 2005-03-29
-uid                  Paul Ferraro <pferraro@apache.org>
-sig 3        FD6C524C 2005-03-29  Paul Ferraro <pferraro@apache.org>
-sub   2048g/B89AF99B 2005-03-29
-sig          FD6C524C 2005-03-29  Paul Ferraro <pferraro@apache.org>
-
------BEGIN PGP PUBLIC KEY BLOCK-----
-Version: GnuPG v1.4.0 (Cygwin)
-
-mQGiBEJInnIRBADLh6hjNRNPUDshPXl4iuzmVU2tGYfjYfOoAitU6AtAl5astuwe
-0EprzpTXrf1axd84CWlWmx/iI244UhAljEbHoZ5kI/MMJm6P0DoQRIWj3nvtdbJw
-jlgjwij1gWb3c3o3GwIwZx5onB252Np9whhG33lTmq3gVnPi528DxXpQwwCg71l8
-ZQfCR4bIGrmptM7iF2HpdJ0D/Avik9oyxvKqb8rvM72/UhP6WPl/W/6PGe7zDdzM
-9zAUdkXDmSRD4pHS2lOARHGIT3dZ/L2/Hwgc2U9IaWGnxr64WM8VqyKLF8Fx89/5
-NjvwDAwXWTdyDojvg4TamVF4xycQhSLtAyWxXp983OPp4eBGjMlAGV7SH9RtaNGw
-bQfDBACRIT3QXGQPN4ZA9osVvudo3v1OLV7whbvyPVZoRz85dtSNrDquXGmsmsLm
-g/qBMHV++QiNKF0zCR3LgSKMgBXNLKiYrKZAP+ITXn1PWDZDqHGrst58qJ1AcAe3
-JnPsqqMKzY50bd1P7lQjq9ZQM0FL29imwjiM4YhdZvT/r+PQFrQiUGF1bCBGZXJy
-YXJvIDxwZmVycmFyb0BhcGFjaGUub3JnPoheBBMRAgAeBQJCSJ5yAhsDBgsJCAcD
-AgMVAgMDFgIBAh4BAheAAAoJENoTCsn9bFJM9l0AoL+sj2ysb0pdwEHlIejG54ZW
-GV9vAKDU3+oVU0xxnd+R9yWkG7Ys32i5+LkCDQRCSJ6hEAgAx+a5d4krGWo+BFsC
-EeNDPI/3anJhvACuMwoYbWpResZH1G39UA9mUG/kI2A7Gbm96DGiPpsB9KKJWBfE
-SuXEBLjp8ukXZvrmS8NLrH0bLajptTrjlq8P49AK6C1CFPZRaoq+yd/zA+9ZlM6z
-gPFypK/WoTCQtng0ej4YGA/KEZEIE4FwU+2i9UieVcWJOarggStibPclfY+wZy6p
-YPmkHcUtKTjDTzkdileT11DahACDPAnfjVMvAb3JrkdAqTEapEMkB8TpgZx9NZKB
-yqilxfxDGKAL079exx8ats5XowBQ4/arisHc9AA26MwtoqJowsqpMUPutJ4Rskw8
-59KQCwADBgf/ZliG2GwY7SnE5jujECBGSLJLFb5CuZc/M+RyjqlhnMQsQYmj9GZT
-92I5r5jlydB3tKZ//pkA/YUqHPgKNR4VFO46SAO1QFtau3Sd6Plz82v4KVBt4HUr
-P3w4xl5p1NY/T03qij3Mn/ly6Gkn+b1CmJBBa0+ebaT63bgpRa5MaazWGf+WXx/Y
-BoBBTOOSkKrLJ6YlTQOzIKlknSlQvEuLVdAY+MNetYXpkjW0cjI0Yt9f+obSrsI6
-SeiqO57xRBK+aeDcQMVLrzAdVNkV4UMiLjLc/quLTJ3ShbO8t9RU2JIBZrppplog
-LFSMO33g6znCNXXsmzeMVHxKyrAnDzDI1ohJBBgRAgAJBQJCSJ6hAhsMAAoJENoT
-Csn9bFJMUZEAn2VCJH3MjoV6rVAt5Df892iX0zsMAJ96iBYmm/1KV2NaaqWb7XjY
-YBlFKw==
-=xwwi
------END PGP PUBLIC KEY BLOCK-----
-pub   1024D/3E6D26D2 2006-01-26
-uid                  Jesse Kuhnert <jkuhnert@apache.org>
-sig 3        3E6D26D2 2006-01-26  Jesse Kuhnert <jkuhnert@apache.org>
-sub   2048g/BFF7F76A 2006-01-26
-sig          3E6D26D2 2006-01-26  Jesse Kuhnert <jkuhnert@apache.org>
-
------BEGIN PGP PUBLIC KEY BLOCK-----
-Version: GnuPG v1.4.2.2 (GNU/Linux)
-
-mQGiBEPYLjoRBACa783DbiuMCc1LlbRDHbD8SYXz6zMMS3zSZ698yk91HG15mejQ
-hLXjenuH7PWuh83m5YyqRz3s2tuEROng5iXwn+A6iVJwnHNNMAA9l+Jy0Z9u5eFN
-29Dwd37GW0yF3tfivN/Y6b2fJzsQh6mTIwuSp6wfLtIvnBwXcDwsIQYgvwCgqX8w
-x3+fLdhPUj5VkYh9CqtBF60EAILCIaiUwk1TH6nFCfPg+UJQLLXpD6YaPItlkEdO
-OIM6P8mfYNraO8O2ZnZtdATRImaOIQ5pSbbQ44d2rGEwr7johU3B8KWb0r0RwLEE
-KAksAgdVZQ4HH9HIL3OYH7b2ED4KyhHG3TTQBmz7h6k4zNgTW3I5GHRVmoM1+x2q
-+BY2A/9Z24Oixhq2hbHPbl3YceYJE8W9l4hV+e/a9jP0G4WcvOGxMpj7yO7I/eaf
-ARCr+TjCHEMBEaZXjXe3w1F8iHyf3w5XMVbYCbhPRYUle0Z+690Lz2+hPwXOXFI5
-yVxK2J0xDrQ24CjMAZxdOlzxscIEvPkif2FlIlcElaCaw8NsbLQjSmVzc2UgS3Vo
-bmVydCA8amt1aG5lcnRAYXBhY2hlLm9yZz6IYAQTEQIAIAUCQ9guOgIbAwYLCQgH
-AwIEFQIIAwQWAgMBAh4BAheAAAoJEMB0lGc+bSbShlAAmwe4+Uexyc35UaNWAVhz
-6kiiEQbeAJ97yOFs2rpg5D3jLjK+Oowp6nvKmrkCDQRD2C5EEAgA6SBt6HRmAT0h
-hZJYmmjQZZ4FTxHHxwoIBxbnB/UcrtmavPMTSmaTwmq/EtbCWk4L/IonDXTLtLMa
-Q2UhXrBUIuK2mzOMQ4D96Dcga/M/PiR8Gtnr8t0jDimah/6IVDyKU3cyJ5LfXxP2
-/uIOcAdbwXmR/Pq64SRQx6ub3kkU/5gDGf/B8OmYTRPT+MsfkrS9V2Uo6QDx2nFq
-zel7a3KD4g4s+wybTMSC1W3pYGUeyUgRRMOIJ3MG0zJi//zkohj4QdSgnZvNciwk
-Cud0v6F+OkuMEF8rprJPCDWHrE3mbYjmVVmoVkmsjWpNEvZXuGZnfhw9RE9L2awo
-1bE6PcyXSwADBggAsJ/Rxk49qrn77X/7iOukDQHEz98yDqXxxM/l2edeyjURFbWE
-elu3BLUNGgaUVAMT+/W6dxrH4S9G8K5xLVwiNSelTtOLylYOjiO16InPpZ6I8HcX
-u9CkONthpaj7Es4hGpXxmYpnIkBN0EFA/cEK3GfPX2OiFKJ0CxOAlIkT0wMbFdpU
-tpvyltlD7KMglUJobOtFYjq5wfMyROWnJ4XLIc2XtiiT9Bzgw2blxVtfjCJ4uUUf
-c0JJ8UT+5w7/2QB3RdiSocKpS5FAkemH1gknpHhEeG8cItY0DTNDB39aa8jOIm+1
-Al0KHk4S6kedJEz4t0xcGo5NzZU323Xcl4UEPohJBBgRAgAJBQJD2C5EAhsMAAoJ
-EMB0lGc+bSbS1okAnR498zEVDPUHFMoT3kGd+xkPyf0FAJ44KZYBZLXHFIwiwuMb
-FrdorwKsLQ==
-=1t0m
------END PGP PUBLIC KEY BLOCK-----
diff --git a/3.0.4/LICENSE-2.0.txt b/3.0.4/LICENSE-2.0.txt
deleted file mode 100644
index d645695..0000000
--- a/3.0.4/LICENSE-2.0.txt
+++ /dev/null
@@ -1,202 +0,0 @@
-
-                                 Apache License
-                           Version 2.0, January 2004
-                        http://www.apache.org/licenses/
-
-   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
-
-   1. Definitions.
-
-      "License" shall mean the terms and conditions for use, reproduction,
-      and distribution as defined by Sections 1 through 9 of this document.
-
-      "Licensor" shall mean the copyright owner or entity authorized by
-      the copyright owner that is granting the License.
-
-      "Legal Entity" shall mean the union of the acting entity and all
-      other entities that control, are controlled by, or are under common
-      control with that entity. For the purposes of this definition,
-      "control" means (i) the power, direct or indirect, to cause the
-      direction or management of such entity, whether by contract or
-      otherwise, or (ii) ownership of fifty percent (50%) or more of the
-      outstanding shares, or (iii) beneficial ownership of such entity.
-
-      "You" (or "Your") shall mean an individual or Legal Entity
-      exercising permissions granted by this License.
-
-      "Source" form shall mean the preferred form for making modifications,
-      including but not limited to software source code, documentation
-      source, and configuration files.
-
-      "Object" form shall mean any form resulting from mechanical
-      transformation or translation of a Source form, including but
-      not limited to compiled object code, generated documentation,
-      and conversions to other media types.
-
-      "Work" shall mean the work of authorship, whether in Source or
-      Object form, made available under the License, as indicated by a
-      copyright notice that is included in or attached to the work
-      (an example is provided in the Appendix below).
-
-      "Derivative Works" shall mean any work, whether in Source or Object
-      form, that is based on (or derived from) the Work and for which the
-      editorial revisions, annotations, elaborations, or other modifications
-      represent, as a whole, an original work of authorship. For the purposes
-      of this License, Derivative Works shall not include works that remain
-      separable from, or merely link (or bind by name) to the interfaces of,
-      the Work and Derivative Works thereof.
-
-      "Contribution" shall mean any work of authorship, including
-      the original version of the Work and any modifications or additions
-      to that Work or Derivative Works thereof, that is intentionally
-      submitted to Licensor for inclusion in the Work by the copyright owner
-      or by an individual or Legal Entity authorized to submit on behalf of
-      the copyright owner. For the purposes of this definition, "submitted"
-      means any form of electronic, verbal, or written communication sent
-      to the Licensor or its representatives, including but not limited to
-      communication on electronic mailing lists, source code control systems,
-      and issue tracking systems that are managed by, or on behalf of, the
-      Licensor for the purpose of discussing and improving the Work, but
-      excluding communication that is conspicuously marked or otherwise
-      designated in writing by the copyright owner as "Not a Contribution."
-
-      "Contributor" shall mean Licensor and any individual or Legal Entity
-      on behalf of whom a Contribution has been received by Licensor and
-      subsequently incorporated within the Work.
-
-   2. Grant of Copyright License. Subject to the terms and conditions of
-      this License, each Contributor hereby grants to You a perpetual,
-      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
-      copyright license to reproduce, prepare Derivative Works of,
-      publicly display, publicly perform, sublicense, and distribute the
-      Work and such Derivative Works in Source or Object form.
-
-   3. Grant of Patent License. Subject to the terms and conditions of
-      this License, each Contributor hereby grants to You a perpetual,
-      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
-      (except as stated in this section) patent license to make, have made,
-      use, offer to sell, sell, import, and otherwise transfer the Work,
-      where such license applies only to those patent claims licensable
-      by such Contributor that are necessarily infringed by their
-      Contribution(s) alone or by combination of their Contribution(s)
-      with the Work to which such Contribution(s) was submitted. If You
-      institute patent litigation against any entity (including a
-      cross-claim or counterclaim in a lawsuit) alleging that the Work
-      or a Contribution incorporated within the Work constitutes direct
-      or contributory patent infringement, then any patent licenses
-      granted to You under this License for that Work shall terminate
-      as of the date such litigation is filed.
-
-   4. Redistribution. You may reproduce and distribute copies of the
-      Work or Derivative Works thereof in any medium, with or without
-      modifications, and in Source or Object form, provided that You
-      meet the following conditions:
-
-      (a) You must give any other recipients of the Work or
-          Derivative Works a copy of this License; and
-
-      (b) You must cause any modified files to carry prominent notices
-          stating that You changed the files; and
-
-      (c) You must retain, in the Source form of any Derivative Works
-          that You distribute, all copyright, patent, trademark, and
-          attribution notices from the Source form of the Work,
-          excluding those notices that do not pertain to any part of
-          the Derivative Works; and
-
-      (d) If the Work includes a "NOTICE" text file as part of its
-          distribution, then any Derivative Works that You distribute must
-          include a readable copy of the attribution notices contained
-          within such NOTICE file, excluding those notices that do not
-          pertain to any part of the Derivative Works, in at least one
-          of the following places: within a NOTICE text file distributed
-          as part of the Derivative Works; within the Source form or
-          documentation, if provided along with the Derivative Works; or,
-          within a display generated by the Derivative Works, if and
-          wherever such third-party notices normally appear. The contents
-          of the NOTICE file are for informational purposes only and
-          do not modify the License. You may add Your own attribution
-          notices within Derivative Works that You distribute, alongside
-          or as an addendum to the NOTICE text from the Work, provided
-          that such additional attribution notices cannot be construed
-          as modifying the License.
-
-      You may add Your own copyright statement to Your modifications and
-      may provide additional or different license terms and conditions
-      for use, reproduction, or distribution of Your modifications, or
-      for any such Derivative Works as a whole, provided Your use,
-      reproduction, and distribution of the Work otherwise complies with
-      the conditions stated in this License.
-
-   5. Submission of Contributions. Unless You explicitly state otherwise,
-      any Contribution intentionally submitted for inclusion in the Work
-      by You to the Licensor shall be under the terms and conditions of
-      this License, without any additional terms or conditions.
-      Notwithstanding the above, nothing herein shall supersede or modify
-      the terms of any separate license agreement you may have executed
-      with Licensor regarding such Contributions.
-
-   6. Trademarks. This License does not grant permission to use the trade
-      names, trademarks, service marks, or product names of the Licensor,
-      except as required for reasonable and customary use in describing the
-      origin of the Work and reproducing the content of the NOTICE file.
-
-   7. Disclaimer of Warranty. Unless required by applicable law or
-      agreed to in writing, Licensor provides the Work (and each
-      Contributor provides its Contributions) on an "AS IS" BASIS,
-      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
-      implied, including, without limitation, any warranties or conditions
-      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
-      PARTICULAR PURPOSE. You are solely responsible for determining the
-      appropriateness of using or redistributing the Work and assume any
-      risks associated with Your exercise of permissions under this License.
-
-   8. Limitation of Liability. In no event and under no legal theory,
-      whether in tort (including negligence), contract, or otherwise,
-      unless required by applicable law (such as deliberate and grossly
-      negligent acts) or agreed to in writing, shall any Contributor be
-      liable to You for damages, including any direct, indirect, special,
-      incidental, or consequential damages of any character arising as a
-      result of this License or out of the use or inability to use the
-      Work (including but not limited to damages for loss of goodwill,
-      work stoppage, computer failure or malfunction, or any and all
-      other commercial damages or losses), even if such Contributor
-      has been advised of the possibility of such damages.
-
-   9. Accepting Warranty or Additional Liability. While redistributing
-      the Work or Derivative Works thereof, You may choose to offer,
-      and charge a fee for, acceptance of support, warranty, indemnity,
-      or other liability obligations and/or rights consistent with this
-      License. However, in accepting such obligations, You may act only
-      on Your own behalf and on Your sole responsibility, not on behalf
-      of any other Contributor, and only if You agree to indemnify,
-      defend, and hold each Contributor harmless for any liability
-      incurred by, or claims asserted against, such Contributor by reason
-      of your accepting any such warranty or additional liability.
-
-   END OF TERMS AND CONDITIONS
-
-   APPENDIX: How to apply the Apache License to your work.
-
-      To apply the Apache License to your work, attach the following
-      boilerplate notice, with the fields enclosed by brackets "[]"
-      replaced with your own identifying information. (Don't include
-      the brackets!)  The text should be enclosed in the appropriate
-      comment syntax for the file format. We also recommend that a
-      file or class name and description of purpose be included on the
-      same "printed page" as the copyright notice for easier
-      identification within third-party archives.
-
-   Copyright [yyyy] [name of copyright owner]
-
-   Licensed under the Apache License, Version 2.0 (the "License");
-   you may not use this file except in compliance with the License.
-   You may obtain a copy of the License at
-
-       http://www.apache.org/licenses/LICENSE-2.0
-
-   Unless required by applicable law or agreed to in writing, software
-   distributed under the License is distributed on an "AS IS" BASIS,
-   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-   See the License for the specific language governing permissions and
-   limitations under the License.
diff --git a/3.0.4/NOTICE.txt b/3.0.4/NOTICE.txt
deleted file mode 100644
index 3f59805..0000000
--- a/3.0.4/NOTICE.txt
+++ /dev/null
@@ -1,2 +0,0 @@
-This product includes software developed by
-The Apache Software Foundation (http://www.apache.org/).
diff --git a/3.0.4/Readme.html b/3.0.4/Readme.html
deleted file mode 100644
index cc4949f..0000000
--- a/3.0.4/Readme.html
+++ /dev/null
@@ -1,230 +0,0 @@
-<html>
-<!-- $Id$ -->
-<head>
-<title>Tapestry: Java Web Components</title>
-<link rel="STYLESHEET" type="text/css" href="web/scripts/style_virtlib_pcIE55.css">
-</head>
-
-<body leftmargin="0" topmargin="0" marginwidth="0" marginheight="0">
-<table width="100%" border="0" cellspacing="0" cellpadding="0" bgcolor="white">
-	<tr>
-		<td height="5"><IMG height=1 src="web/images/spacer.gif" width=1 border=0>
-		</td>
-	</tr>
-	<tr>
-		<td align="left" valign="top" height="20"><span class="release">Release @VERSION@</RELEASE></span>
-		</td>
-	</tr>
-	<tr bgcolor="#4b5887">
-		<td colspan="3" height="20"><IMG height=1 src="web/images/spacer.gif" width=1 border=0>
-		</td>
-	</tr>
-</table>
-
-<table width="100%" border="0" cellspacing="0" cellpadding="2">
-	<tr>
-		<td><IMG src="web/images/Tapestry-Banner.png" align=absMiddle border=0>
-<p>Tapestry is a component based framework for creating sophisticated web applications.
-It's used with existing application servers, acting as a kind of "super servlet". 
-Tapestry applications are built by configuring and combining components to form pages.  You
-get surprisingly large amounts of robust functionality for
-startingly small amounts of effort and code!
-
-
-<p>The JARs were created on 
-@OS_NAME@ @OS_VERSION@
-using the 
-@JAVA_VENDOR@ JDK @JAVA_VM_VERSION@ 
-compiler.
-
-<p>This product includes software developed by the Apache Software Foundation 
-(<a href="http://www.apache.org/">http://www.apache.org/</a>).
-
-<br><br>.....................................................<br><br>
-<h2>Non-ASL Libraries</h2>
-
-<p>
-Tapestry depends on a handful of non-ASL libraries. Because these libraries are not distributed under the terms
-of the Apache Software License, they may not be redistributed with as part of Tapestry. Tapestry's build scripts will
-automatically download the libraries as needed. Several libraries are only needed at build time, but
-some are needed at runtime (and are typically copied into <code>WEB-INF/lib</code>). The two runtime libraries are:
-<ul>
-<li><a href="http://www.ognl.org/">OGNL</a> (Object Graph Navigation Library), version @OGNL_VERSION@
-<li><a href="http://jboss.org/developers/projects/javassist.html">Javassist</a> (byte code enhancement library), version @JAVASSIST_VERSION@
-</ul>
-
-<p>
-The necessary libraries will automatically be downloaded when building the examples. The
-Ant target <code>download-ext-framework</code> will also download the libraries. If you
-are behind a firewall, you may need to <a href="ext-dist/README.html">provide some additional properties</a> in
-<code>config/build.properties</code>.
-
-<br><br>.....................................................<br><br>
-<h2>Configuration</h2>
-
-<p>
-In order to run the Tapestry demos, you need only the <b>binary</b> distribution (it includes the source code
-for the examples). The Ant build scripts will compile and build the Workbench and the Virtual Library example
-applications on your workstation, then deploy them into Jetty, Tomcat or JBoss.
-
-<pTo run these Tapestry applications please ensure:
-			<ul>
-				<li>JDK 1.3 or newer JVM is installed, and the <tt>JAVA_HOME</tt> environment variable is set.</B>
-				<li><b><a href="http://jakarta.apache.org/ant">Ant</a></b> 1.5 or newer is installed, and is added 
-to the system <tt>PATH</tt>.</li>
-<li>You have both the <b>binary</b> and the <b>source</b> Tapestry distributions installed
-			</ul>
-			
-<p>
-Basic setup:  The demos require several external dependencies that cannot be distributed with Tapestry
-because of licensing conflicts.  You will need one of the following:
-<ul>
-<li><a href="http://sf.net/projects/jetty">Jetty</a> servlet container, release 4.2 or above.
-<li><a href="http://jakarta.apache.org/tomcat/index.html">Tomcat</a> servlet container, release 4.1 or above.
-<li><a href="http://www.jboss.org">JBoss</a> application server, release 3.0.6. 
-        Running the Virtual Library application requires JBoss.</li>         
-
-</ul>
-
-<p>
-In each case you will create the file 
-<code>config/build.properties</code>
-and put an <em>absolute path</em> to the installation directory (of Jetty, JBoss or Tomcat).
-<b>Always use only forward slashes in the path name.</b>
-
-<p>
-A sample file, <code>config/build.properties.template</code>, is provided.  You may  edit
-and rename this file.
-
-<p>
-The build process downloads a number of extra files into the
-<code>ext-dist</code> and <code>lib/ext</code>
-directories.  See the <A href="ext-dist/README.html">README.html</a> in that directory
-for more details.
-
-<h3>Configuring JBoss</h3>
-
-<p>To run the Tapestry Workbench and the Virtual Library applications with the 
-<a href="http://sourceforge.net/projects/jboss">JBoss</a> server:
-			<ul>
-				<li>Download and install <a href="http://prdownloads.sourceforge.net/jboss/jboss-3.0.6.zip?download">JBoss 3.0.6</a>.
-				<br>JBoss is an open-source application server, used to run the database and Enterprise JavaBeans in the Virtual Library.
-<p><span class="hyper-em">This auto-configuration requires JBoss 3.0.6 exactly, not a later release.  
-This only affects these turn-key
-demos, not deployment of your own Tapestry applications.</span></p>
-				<li>
-			Update <code>config/build.properties</code>
-			and set property
-			<b><code>jboss.dir</code></b>
-			to the absolute path name
-			of the JBoss installation directory.
-				<li>Download the external dependencies.
-				<li>Execute the command:
-				<br>
-			<b><code>ant -emacs configure run-jboss</code></b>
-			
-			<br>This will build, copy and configure the necessary files in the JBoss installation directory, then
-run the JBoss server, automatically deploying the example applications. 
- (The
-			<code>-emacs</code> option 
-        changes the Ant output format to be less verbose).</li>
-			</ul>
-			
-		<blockquote>You can now run the 
-<a href="http://localhost/workbench">Tapestry Workbench</a>
-or the
-<a href="http://localhost">Virtual Library</a> applications.</blockquote>
-
-
-<h3>Configuring Jetty</h3>
-
-<p>To run the Tapestry Workbench application with 
-Jetty servlet container:
-			<ul>
-				<li>Obtain and install a copy of Jetty.
-				<li>
-			Update <code>config/build.properties</code>
-			and set property
-			<b><code>jetty.dir</code></b>
-			to the absolute path name
-			of the Jetty installation directory.
-	
-				<li>Execute the command:
-				<br>
-				<b>
-			<code>ant -emacs run-workbench</code></b><br>This will run the embedded 
-			Jetty server. 
-			<br></li>
-			</ul>
-			
-		<blockquote>You can now run the 
-<a href="http://localhost:8080/workbench">Tapestry Workbench</a> application.
-</blockquote>
-
-			<h3>Configuring Tomcat</h3>
-			
-<p>To deploy the Tapestry Workbench application onto an existing 
-Tomcat installation:
-
-<p>To run the Tapestry Workbench application with 
-Tomcat servlet container:
-			<ul>
-				<li>Obtain and install a copy of Tomcat.
-				<li>
-			Update <code>config/build.properties</code>
-			and set property
-			<b><code>tomcat.dir</code></b>
-			to the absolute path name
-			of the Tomcat installation directory, for example <code>C:/Program Files/Apache Group/Tomcat 4.1</code>.
-
-				<li>Execute the command:
-				<br>
-				<b>
-			<code>ant -emacs deploy-tomcat</code></b>
-			
-			<br>This will deploy the Workbench application into Tomcat.  If Tomcat is running, you will
-			be able to access the application immediately. 
-			<br></li>
-			</ul>
-			
-		<blockquote>You can then run the 
-<a href="http://localhost:8080/workbench">Tapestry Workbench</a> application.
-</blockquote>
-
-<br><br>.....................................................<br><br>
-<h2>Building from Source</h2>
-
-<p>
-The source distribution includes the source code for the framework and the contrib library. You should extract
-the source distribution to the same directory as the binary distribution.
-You may then execute <b><code>ant install</code></b> to compile all the frameworks and examples.
-Building documentation and running the unit tests requires some additional
-setup that is discussed in
-the <A href="web/doc/ContributorsGuide/ContributorsGuide.html">Tapestry Contributor's Guide</A>.
-</p>
-			
-<br><br>.....................................................<br><br>
-<h2>Documentation</h2>
-
-A complete set of <a href="web/doc.html">documentation</a> is distributed with Tapestry.
-
-
-		<br><br>
-		.....................................................
-		<br><br>
-
-<p>Tapestry is an open source project, hosted by
- <a href="http://jakarta.apache.org">The Jakarta Project</a> 
-       and distributed under the terms
-of the <A href="LICENSE-2.0.txt">Apache Software License 2.0</A>.</p></td></tr></table>
-
-<p>
-<a href="http://jakarta.apache.org"><IMG alt="Jakarta Banner" src="web/images/jakarta.png" border=0 ></a>
-<br>© 
-2003-2004 Apache Software Foundation.</p>    
-
-
-</body>
-
-</html>
-
diff --git a/3.0.4/STATUS.html b/3.0.4/STATUS.html
deleted file mode 100644
index 6178a75..0000000
--- a/3.0.4/STATUS.html
+++ /dev/null
@@ -1,17 +0,0 @@
-<!DOCTYPE html public "-//W3C//DTD HTML 4.0 Transitional//EN">
-<html>
-<head>
-<title>Tapestry Status</title>
-<link rel="STYLESHEET" type="text/css" href="web/scripts/style_virtlib_pcIE55.css"/>
-</head>
-<body>
-
-$Id$
-
-<br/>
-
-Status documentation (including committer votes) are now recorded inside status.xml.
-
-
-</body>
-</html>
\ No newline at end of file
diff --git a/3.0.4/TODO.html b/3.0.4/TODO.html
deleted file mode 100644
index eda0ac0..0000000
--- a/3.0.4/TODO.html
+++ /dev/null
@@ -1,77 +0,0 @@
-<!DOCTYPE html public "-//W3C//DTD HTML 4.0 Transitional//EN">
-<html>
-<head>
-<title>Tapestry TODO List</title>
-<link rel="STYLESHEET" type="text/css" href="web/scripts/style_virtlib_pcIE55.css"/>
-</head>
-<body>
-<h1>Release 3.0</h1>
-<br/>
-$Id$
-<p>   Some of these items overlap requests Bugzilla.</p>
-<p><i>This list is anything but final! Not in any (prioritized) order.</i></p>
-<ul>
-	<li>Decide on final release number for "NextGen"</li>
-	<li>Bugzilla or Scarab?</li>
-	<li>Deal with character sets and localization properly</li>
-	<li>Handle change of locale correctly, by reloading new 
-  instance of page in proper locale</li>
-	<li>Improved User's Guide to replace existing Developer's 
-  Guide</li>
-	<li>Replace the current tutorial with Neil Clayton's 
-  Tutorial2</li>
-	<li>Reoganize directory structure to more standard format 
-  (compatible with Maven)</li>
-	<li>Use Forrest, or somesuch, for documentation 
-  (possibly, convert User's Guide and friends to alternate format)</li>
-	<li>Get Tapestry compiling under Maven, have nightly 
-  builds</li>
-	<li>Fill out the test suite and code coverage, reach 85% 
-  or better</li>
-	<li>Fix all the Component Reference pages to use the 3.0 
-  syntax</li>
-	<li>Unit testing stategy for the JSP tags and tagsupport 
-  service</li>
-	<li>Allow auto parameters to not be required</li>
-</ul>
-<h2>Completed items in 3.0</h2>
-<ul>
-	<li>Declarative transient properties - define transient properties in spec, 
-  Tapestry builds subclass with instance variables, accessors and 
-  initialize() <b>HLS</b></li>
-	<li>Declarative persistant properties - as with transient, but properties are 
-  made persistant <b>HLS</b></li>
-	<li>Traditional bin/src distros <b>HLS</b></li>
-	<li>Rename packages from net.sf.tapestry to org.apache.tapestry <b>HLS</b></li>
-	<li>Resolve GPL issues around McKoiDBMBean <b>HLS</b></li>
-	<li>Tapestry JSP tag library <b>HLS</b></li>
-	<li>Support array types for declared properties and connected parameters <b>HLS</b></li>
-	<li>Support primitive types for connected parameters <b>HLS</b></li>
-	<li>Integrate David Solis' WML component contributions <b>DS</b></li>
-		<li>Get Tapestry building under Gump <b>HLS</b></li>
-			<li>Properly sign the distribution and have it mirrored 
-  with the other Jakarta downloads <b>HLS</b></li>
-  	<li>New features for Script Specification: <b>HLS</b>
-  <ul>
-  	<li>Improve the "include script" element to support </li>
-    relative scripts, scripts in context, script in classpath</li>
-  	<li>Some kind of "include only once" block</li>
-  	<li>Name uniquer</li>
-  	<li>New DTD w/Jakarta public/system ids</li>
-  </ul></li>
-  	<li>Change build environment to NOT compile against LGPL 
-  frameworks (J2EE from JBoss) <b>HLS</b></li>
-</ul>
-<h2>Rejected items in 3.0</h2>
-<ul>
-	<li>Change &lt;extension&gt; initializers to use OGNL 
-  expressions <b>HLS<BR></b><i>
-  <br/>Need an "object" for OGNL expressions, not clear what that would be.</i></li>
-</ul>
-<h1>Release 3.1</h1>
-<ul>
-	<li>Intersertials</li>
-	<li>Extend listener methods to take parameters (matching service parameters to actual method parameters)</li>
-</ul>
-</body>
-</html>
diff --git a/3.0.4/build.xml b/3.0.4/build.xml
deleted file mode 100644
index 42eed76..0000000
--- a/3.0.4/build.xml
+++ /dev/null
@@ -1,762 +0,0 @@
-<?xml version="1.0"?>
-<!-- $Id$ -->
-<!-- Top-level buildfile for the Tapestry module. -->
-<project name="Tapestry Web Application Framework" default="install">
-	<property name="root.dir" value="./"/>
-	<property name="config.dir" value="${root.dir}/config"/>
-	<property file="${config.dir}/Version.properties"/>
-	<property file="${config.dir}/build.properties"/>
-	<property file="${config.dir}/common.properties"/>
-	<property name="javadoc.dir" value="web/doc/api"/>
-	<property name="private.dir" value="private"/>
-	
-	<!-- Forrest prefers to put stuff in here. -->
-	
-	<property name="build.dir" value="build"/>
-	
-	<property environment="env"/>
-	
-	<path id="jetty.classpath">
-		<fileset dir="${jetty.dir}">
-			<include name="lib/javax.servlet.jar"/>
-			<include name="lib/org.mortbay.jetty.jar"/>
-			<include name="ext/*.jar"/>
-		</fileset>
-		<!-- Needed to support JSP compilation -->
-		<pathelement location="${env.JAVA_HOME}/lib/tools.jar"/>
-	</path>
-	
-	<path id="ext.dist.classpath">
-		<fileset dir="${ext.dist.dir}">
-			<include name="*.jar"/>
-		</fileset>
-	</path>
-	
-	<path id="workbench.classpath">
-		<fileset dir="${root.lib.dir}">
-			<include name="${framework.jar}"/>
-			<include name="${contrib.jar}"/>
-			<include name="${ext.dir}/*.jar"/>
-			<include name="${runtime.dir}/*.jar"/>
-		</fileset>
-		<pathelement location="config"/>
-	</path>
-	
-	<path id="vlib.classpath">
-		<pathelement location="${vlibbeans.jar}"/>
-		<pathelement location="examples/VlibBeans/jboss"/>
-		<pathelement location="${jboss.client.dir}/jboss-j2ee.jar"/>
-		<pathelement location="${jboss.client.dir}/jboss-client.jar"/>
-		<pathelement location="${jboss.client.dir}/jnp-client.jar"/>
-		<path refid="workbench.classpath"/>
-	</path>
-	
-	<target name="clean" description="Cleans all sub-projects.">
-		<ant dir="framework" target="clean"/>
-		<ant dir="contrib" target="clean"/>
-		<ant dir="junit" target="clean"/>
-		<ant dir="examples" target="clean"/>
-		<ant dir="doc/src" target="clean"/>
-		<delete dir="${private.dir}" quiet="true"/>		
-	</target>
-	
-	<target name="clean-all" depends="clean"
-		description="Cleans all subprojects and deletes installed frameworks, WARs and generated documentation."
-		>
-		<delete quiet="true">
-			<fileset dir="${root.lib.dir}">
-				<include name="*.jar"/>
-				<include name="examples/**"/>
-			</fileset>
-		</delete>
-		<delete dir="web/doc" quiet="true"/>
-		<delete dir="${build.dir}" quiet="true"/>
-	</target>
-	
-	<target name="install" description="Builds all frameworks and examples." 
-		depends="download-ext-install">
-		<!-- Each project has its own definitions for many properties.
-     	 inheritAll="false" ensures that definitions in this buildfile
-     	 doesn't override definitions in each project's buildfile. -->
-		<ant dir="framework" target="install" inheritAll="false"/>
-		<ant dir="contrib" target="install" inheritAll="false"/>
-		<ant dir="examples" target="install" inheritAll="false"/>
-	</target>
-	
-	<target name="build-workbench" description="Builds and installs the Workbench demo."
-		depends="download-ext-framework">
-		<ant dir="examples/Workbench" target="install" inheritAll="false"/>
-	</target>
-	
-	<target name="build-vlib" description="Builds and installs the Virtual Library demo."
-		depends="download-ext-framework,check-for-jboss-dir">
-		<ant dir="examples/VlibBeans" target="install" inheritAll="false"/>
-		<ant dir="examples/Vlib" target="install" inheritAll="false"/>
-		<ant dir="examples/VlibEAR" target="install" inheritAll="false"/>		
-	</target>
-	
-	<target name="documentation" depends="download-ext-doc"
-		description="Builds the Tapestry documentation.">
-		
-		<ant dir="doc/src" target="install" inheritAll="false">
-		  <property name="ext.dist.dir" location="${ext.dist.dir}"/>
-		</ant>
-		
-		<echo>Building site documentation using Forrest ...</echo>
-		
-		<antcall target="site" inheritall="true"/>
-	</target>
-
-	<target name="junit" depends="check-for-jython-dir,download-ext-junit"
-		description="Run the JUnit test suite for Tapestry.">
-		<ant dir="junit" target="run" inheritAll="false">
-		  <property name="ext.dist.dir" location="${ext.dist.dir}"/>
-		</ant>		
-	</target>
-	
-	<target name="clover" depends="check-for-clover-dir,check-for-jython-dir"
-		description="Execute the JUnit tests and generate Code Coverage report."
-		>
-		<ant dir="junit" target="clover" inheritAll="false">
-		  <property name="ext.dist.dir" location="${ext.dist.dir}"/>
-		</ant>		
-	</target>
-	
-	<target name="dist"
-		description="Builds the Tapestry distribution from scratch."
-		depends="clean-all,install,junit,documentation,clover,javadoc">
-		<!-- After building, clean all the subprojects. -->
-		<antcall target="clean"/>
-		<!-- Now, build that actual distribution. -->
-		<antcall target="build-dist"/>
-	</target>
-	
-	<property name="dist.root.dir" value="dist"/>
-	<property name="dist.base" value="Tapestry-${framework.version}"/>
-	<property name="dist.dir" value="${dist.root.dir}/${dist.base}"/>
-	
-	<target name="build-dist"
-		description="Builds the Tapestry distribution files.">
-		<!-- Delete the base directory. -->
-		<delete dir="${dist.root.dir}" quiet="true"/>
-		<antcall target="build-dist-tarball"/>
-	</target>
-	
-	<target name="build-dist-copy">
-		<echo>Copying to ${dist.dir} ...</echo>
-		<!-- Copy all the relevant files to the base directory. -->
-		<echo>  Copying documentation ...</echo>
-		<copy todir="${dist.dir}" includeEmptyDirs="false">
-			<fileset dir=".">
-				<include name="build.xml"/>
-				<include name="*.html"/>
-				<include name="*.txt"/>
-				<include name="KEYS"/>
-				<!-- Skip HTML files in web, since those need
-				 a seperate path, to provide filtering. -->
-				<exclude name="Readme.html"/>
-				<include name="config/**"/>
-				<include name="ext-dist/README.html"/>
-				<exclude name="lib/*"/>
-				<exclude name="lib/**"/>
-				<!-- Exclude Paint Shop Pro files (used to generate images
-			  in various places) -->
-				<exclude name="**/*.psp"/>
-				<exclude name="**/*.jbf"/>
-				<!-- Don't include build.properties; that's specific to this build
-			     environment.  We ship a sample file instead. -->
-				<exclude name="config/build.properties"/>
-				<!-- This is where Eclipse puts classes. -->
-				<exclude name="bin/**"/>
-				<exclude name="${build.dir}"/>
-				<!-- It isn't a good idea to generate a distribution from a normal working
-			     directory, since the <copy> will include things like backup files created
-			     while editting.  Better to check out the Tapestry module via anon CVS to
-			     a temporary directory, configure build.properties, and build the
-			     release there. -->
-			</fileset>
-		</copy>
-		<!-- The Readme.html file and several of the web pages
-		 include a version number; copy w/ filtering. -->
-		<echo>  Copying (and filtering) Readme.html ...</echo>
-		<copy todir="${dist.dir}" includeEmptyDirs="false">
-			<fileset dir=".">
-				<include name="Readme.html"/>
-			</fileset>
-			
-			<filterset>
-				<filter token="VERSION" value="${framework.version}"/>
-				<filter token="OS_NAME" value="${os.name}"/>
-				<filter token="OS_VERSION" value="${os.version}"/>
-				<filter token="JAVA_VENDOR" value="${java.vendor}"/>
-				<filter token="JAVA_VM_VERSION" value="${java.vm.version}"/>
-				<filter token="COPY_YEARS" value="${copyright.years}"/>
-				<filter token="HOME_PAGE_URL"
-					value="http://jakarta.apache.org/tapestry"/>
-				<filter token="OGNL_VERSION" value="${ognl.version}"/>
-				<filter token="JAVASSIST_VERSION" value="${javassist.version}"/>
-			</filterset>
-		</copy>
-		
-		<echo>  Copying compiled and redistributable libraries ...</echo>
-		<copy todir="${dist.dir}/lib">
-			<fileset dir="${root.lib.dir}">
-				<include name="**/*.jar"/>
-				<exclude name="examples/*"/>
-				<exclude name="${ext.dir}/ognl-*.jar"/>
-				<exclude name="${ext.dir}/javassist-*.jar"/>
-				<include name="**/LICENSE*"/>
-			</fileset>
-		</copy>
-		
-		<echo>  Copying Tapestry Tag Library Descriptor ...</echo>
-		<copy 
-			file="framework/META-INF/taglib.tld"
-			tofile="${dist.dir}/lib/tapestry-${framework.version}.tld"/>
-		
-		<echo>  Copying framework and examples source code ...</echo>
-		<copy todir="${dist.dir}" includeEmptyDirs="false">
-			<fileset dir=".">
-				<include name="framework/**"/>
-				<include name="contrib/**"/>
-				<include name="examples/**"/>
-				
-				<!-- These two aren't quite ready for primetime.  -->
-				<exclude name="examples/DevelopmentEnvironment/**"/>
-				<exclude name="examples/Tutorial2/**"/>
-				
-				<!-- These are thumnail files that turn up in directories that contain images. These
-				     are not stored in CVS and should not be part of the distribution. -->
-				<exclude name="**/Thumbs.db"/>
-				<exclude name="**/pspbrwse.jbf"/>
-        <exclude name="**/classes/"/>        
-			</fileset>
-		</copy>
-		
-		<property name="web.dir" value="${dist.dir}/web"/>
-		<property name="dtd.dir" value="${web.dir}/dtd"/>
-		
-		<echo>  Copying Tapestry DTDs ...</echo>
-		<copy todir="${dtd.dir}" flatten="true">
-			<fileset dir="framework/src">
-				<include name="**/*.dtd"/>
-			</fileset>
-		</copy>
-		
-		<!-- Copy over javadoc, component references, and docs generated from docbook.
-		     We tend to copy the same files too many times (i.e., the builds for the
-		     TapestryUsersGuide could generate the HTML files directly into the dist), but
-		     it's still fast *enough* so not to fiddle. -->
-		     
-		<echo>  Copying documentation, JavaDoc, Clover report ...</echo>
-		<copy todir="${web.dir}" includeEmptyDirs="false">
-		  <fileset dir="web">
-		    <!-- Exclude the top level stuff (any remnants of the old, static web site).
-		         Include all the docs and reports generated below. -->
-		    <exclude name="*.html"/>
-		    <include name="**/*"/>
-		  </fileset>
-		  <fileset dir="${build.dir}/site"/>
-		</copy>
-	</target>
-	
-	<target name="build-dist-tarball"
-		description="Builds the tarball distributions."
-		depends="build-dist-copy">
-
-		<property name="bin.tar.gz" value="${dist.dir}-bin.tar.gz"/>
-		<property name="src.tar.gz" value="${dist.dir}-src.tar.gz"/>
-		<tar tarfile="${bin.tar.gz}" longfile="gnu" compression="gzip">
-			<tarfileset dir="${dist.root.dir}" id="dist.bin.set">
-				<include name="${dist.base}/*"/>
-				<include name="${dist.base}/config/**"/>
-				<include name="${dist.base}/lib/**"/>
-				<!-- Have to include a lot of Workbench source in the binary distro, because
-				     it has to be compiled and built using the dynamically downloaded non-ASL
-				     libraries (such as OGNL). -->
-				<include name="${dist.base}/examples/Workbench/**"/>
-				<exclude name="${dist.base}/examples/Workbench/.build/**"/>
-				<exclude name="${dist.base}/examples/Workbench/image-src/**"/>
-				
-				<include name="${dist.base}/examples/Vlib/**"/>
-				<include name="${dist.base}/examples/VlibBeans/**"/>
-				<include name="${dist.base}/examples/VlibEAR/**"/>
-				
-				<include name="${dist.base}/examples/wap/**"/>
-				
-				<include name="${dist.base}/examples/build.xml"/>
-				
-				<!-- Don't ship the code coverage report; it's huge. -->
-				<include name="${dist.base}/web/**"/>
-				<exclude name="${dist.base}/web/doc/clover/**"/>
-			</tarfileset>
-		</tar>
-		<tar tarfile="${src.tar.gz}" longfile="gnu" compression="gzip">
-			<tarfileset dir="${dist.root.dir}" id="dist.src.set">
-				<!-- Include the sub-projects excluded from the -bin distro. -->
-				<include name="${dist.base}/framework/**"/>
-				<include name="${dist.base}/contrib/**"/>
-			</tarfileset>
-		</tar>
-		
-		<property name="bin.zip" value="${dist.dir}-bin.zip"/>
-		<property name="src.zip" value="${dist.dir}-src.zip"/>
-		
-		<zip destfile="${bin.zip}">
-			<zipfileset refid="dist.bin.set"/>
-		</zip>
-		
-		<zip destfile="${src.zip}">
-			<zipfileset refid="dist.src.set"/>	
-		</zip>
-		
-		<!-- Create the web distribution (to be put up on the web site).  This *does*
-	     include the code coverage report.  -->
-		<property name="web.tar.gz"
-			value="${dist.root.dir}/Tapestry-Web-${framework.version}.tar.gz"/>
-		<tar basedir="${web.dir}" tarfile="${web.tar.gz}" longfile="gnu"
-			compression="gzip"/>
-	</target>
-	
-	<target name="javadoc"
-		description="Generate API documentation for the framework and examples."
-		>
-		<mkdir dir="${javadoc.dir}"/>
-		<javadoc author="true" version="true" destdir="${javadoc.dir}"
-			splitindex="true" windowtitle="Tapestry API ${framework.version}">
-			<doctitle>Tapestry ${framework.version} API</doctitle>
-			<package name="org.apache.tapestry.*"/>
-
-			<link href="http://java.sun.com/j2se/1.3/docs/api/"
-				offline="true" packageListLoc="package-lists/jdk"/>
-
-			<link href="http://java.sun.com/j2ee/sdk_1.2.1/techdocs/api/"
-				offline="true" packageListLoc="package-lists/j2ee"/>
-
-			<link href="http://jakarta.apache.org/log4j/docs/api/"
-				offline="true" packageListLoc="package-lists/log4j"/>
-
-			<link href="http://www.junit.org/junit/javadoc/3.7/" offline="true"
-				packageListLoc="package-lists/junit"/>
-
-			<link href="http://jakarta.apache.org/oro/api/" offline="true"
-				packageListLoc="package-lists/jakarta-oro"/>
-				
-			<group title="Tapestry Framework"
-				packages="org.apache.tapestry:org.apache.tapestry.*"/>
-			<group title="Tapestry Contributions Framework"
-				packages="org.apache.tapestry.contrib.*"/>
-
-			<sourcepath>
-				<pathelement location="framework/src"/>
-				<pathelement location="contrib/src"/>
-			</sourcepath>
-			
-			<classpath>
-				<path refid="vlib.classpath"/>
-				<path refid="ext.dist.classpath"/>
-				<fileset dir="${root.lib.dir}">
-					<include name="${j2ee.dir}/*.jar"/>
-				</fileset>
-			</classpath>
-		</javadoc>
-	</target>
-	
-	<target name="run-workbench" depends="check-for-jetty-dir,build-workbench"
-		description="Runs the Tapestry Workbench using Jetty.">
-		<delete dir="${private.dir}" quiet="true"/>
-		<mkdir dir="${private.dir}"/>
-		<echo>Running Tapestry Workbench on port 8080 ...</echo>
-		<java classname="org.mortbay.jetty.Server" fork="true" maxmemory="128M">
-			<classpath>
-				<path refid="jetty.classpath"/>
-			</classpath>
-			<arg value="config/jetty-workbench.xml"/>
-			<!-- Enable debugging when running the tutorial -->
-			<jvmarg line="-showversion -Xdebug -Xnoagent"/>
-			<jvmarg
-				line="-Xrunjdwp:transport=dt_socket,suspend=n,server=y,address=20150"
-				/>
-			<!-- Jetty can get easily confused (under NT) unless this is turned off. -->
-			<sysproperty key="org.mortbay.util.FileResource.checkAliases"
-				value="false"/>
-			<sysproperty key="org.apache.tapestry.asset.dir" value="${private.dir}"
-				/>
-			<sysproperty key="org.apache.tapestry.asset.URL" value="/private"/>
-		</java>
-	</target>
-	
-	<!-- ===================================================================================
-
-	 JBoss 3.0.6 auto configuration
-	
-	 Configures a JBoss 3.0.6 with a new configuration, tapestry.  Part of the configuration
-	 comes with the Tapestry distribution; part is copied from the JBoss default server
-	 configuration.
-	 
-	 This only works with JBoss 3.0.6; other releases differ enough that this
-	 simple script is broken.
-	
-     ====================================================================================  -->
-	<property name="tapestry.dir" value="${jboss.dir}/server/tapestry"/>
-	<property name="tapestry.conf.dir" value="${tapestry.dir}/conf"/>
-	<property name="tapestry.lib.dir" value="${tapestry.dir}/lib"/>
-	<property name="tapestry.db.dir" value="${tapestry.dir}/db"/>
-	<property name="tapestry.deploy.dir" value="${tapestry.dir}/deploy"/>
-	<property name="tapestry.private.dir"
-		value="${tapestry.dir}/tmp/${private.dir}"/>
-	<property name="jboss.server.default.dir"
-		value="${jboss.dir}/server/default"/>
-	<target name="configure" depends="check-for-jboss-dir,download-ext-examples"
-		description="Configure the JBoss 3.0.6 server and setup the Tapestry database."
-		>
-		<delete dir="${tapestry.lib.dir}" quiet="true"/>
-		<mkdir dir="${tapestry.lib.dir}"/>
-		<copy todir="${tapestry.lib.dir}" flatten="true">
-			<fileset dir="${root.lib.dir}">
-				<include name="*-${framework.version}.jar"/>
-				<include name="${ext.dir}/*.jar"/>
-			</fileset>
-			<fileset dir="${ext.dist.dir}">
-				<include name="mckoidb*.jar"/>
-			</fileset>			
-			<fileset dir="${jboss.server.default.dir}/lib">
-				<!-- Could do a careful analysis of just what we need and copy only that,
-				 but this is good for now.  -->
-				<include name="*.jar"/>
-			</fileset>
-		</copy>
-		<!-- Delete, recreate and copy -->
-		<delete dir="${tapestry.conf.dir}" quiet="true"/>
-		<mkdir dir="${tapestry.conf.dir}"/>
-		<copy todir="${tapestry.conf.dir}" filtering="true">
-			<fileset dir="config/jboss/conf"/>
-			<filterset>
-				<filter token="jboss.dir" value="${jboss.dir}"/>
-				<filter token="user.dir" value="${user.dir}"/>
-			</filterset>
-		</copy>
-		<mkdir dir="${tapestry.deploy.dir}"/>
-		<copy todir="${tapestry.deploy.dir}">
-			<fileset dir="${jboss.server.default.dir}/deploy">
-				<!-- Skip one file that is replaced -->
-				<exclude name="jbossweb.sar/META-INF/jboss-service.xml"/>
-				<include name="*"/>
-				<include name="**/*"/>
-			</fileset>
-		</copy>
-		<!-- Technically, this isn't necessary any longer (the filtering part),
-		 but it does no harm, and may be needed again in the future.  -->
-		<copy todir="${tapestry.deploy.dir}" filtering="true">
-			<fileset dir="config/jboss/deploy"/>
-			<filterset>
-				<filter token="user.dir" value="${user.dir}"/>
-				<filter token="jboss.dir" value="${jboss.dir}"/>
-			</filterset>
-		</copy>
-		<!-- Set a flag if the vlib already exists, then extract it if necessary. -->
-		<mkdir dir="${tapestry.db.dir}"/>
-		<available file="${tapestry.db.dir}/tapestry.conf"
-			property="tapestry.db.exists"/>
-		<antcall target="unpack-tapestry-database"/>
-	</target>
-	
-	<target name="unpack-tapestry-database"
-		description="Unpacks the Tapestry demos database."
-		unless="tapestry.db.exists">
-		<unzip src="config/jboss/tapestry-db.zip" dest="${tapestry.db.dir}"/>
-	</target>
-	
-	<target name="deploy-jboss-demos" depends="check-for-jboss-dir,build-workbench,build-vlib"
-		description="Deploys the demos and Tapestry frameworks into JBoss.">
-		<copy todir="${tapestry.deploy.dir}">
-			<fileset dir="${examples.dir}">
-				<include name="${vlib.ear}"/>
-				<include name="${workbench.war}"/>
-			</fileset>		
-		</copy>
-	</target>
-	
-	<target name="run-jboss" depends="deploy-jboss-demos"
-		description="Launch the JBoss application server.">
-		<delete dir="${tapestry.private.dir}" quiet="true"/>
-		<mkdir dir="${tapestry.private.dir}"/>
-		<java fork="true" dir="${jboss.dir}/bin" classname="org.jboss.Main">
-			<!-- Launch using the tapestry configuration, not the default. -->
-			<arg line="--configuration=tapestry"/>
-			<classpath>
-				<pathelement location="${jboss.dir}/bin/run.jar"/>
-				<!-- Include this so that the JMX control panel (based on JSPs) can work. -->
-				<pathelement location="${java.home}/../lib/tools.jar"/>
-			</classpath>
-			<!-- Enable debugging -->
-			<jvmarg line="-showversion -Xdebug -Xnoagent"/>
-			<jvmarg
-				line="-Xrunjdwp:transport=dt_socket,suspend=n,server=y,address=20500"
-				/>
-			<!-- These allow private assets to be exported as static
-	  		 files.  This coordinates with portions of
-	  		 config/deploy/jbossweb.sar/META-INF/jboss-service.xml -->
-			<sysproperty key="org.apache.tapestry.asset.dir"
-				value="${tapestry.private.dir}"/>
-			<sysproperty key="org.apache.tapestry.asset.URL" value="/private"/>
-			<!-- The following is probably only necessary under Windows.  Jetty gets
-	  	     tripped up by the fact that pathnames are case-insensitive.  -->
-			<sysproperty key="org.mortbay.util.FileResource.checkAliases"
-				value="false"/>
-		</java>
-	</target>
-		
-	<target name="deploy-tomcat"
-		depends="check-for-tomcat-dir,build-workbench"
-		description="Deploys the Workbench application into Tomcat.">
-					
-		<copy file="${examples.dir}/${workbench.war}" todir="${tomcat.dir}/webapps"/>
-
-	</target>
-	
-	<target name="check-for-jboss-dir">
-		<available property="exists.jboss.dir" type="dir" file="${jboss.dir}"/>
-		<fail unless="jboss.dir"
-			message="Property jboss.dir not specified in config/build.properties."
-			/>
-		<fail unless="exists.jboss.dir"
-			message="Directory ${jboss.dir} (jboss.dir from config/build.properties) does not exist."
-			/>
-	</target>
-	
-	<target name="check-for-tomcat-dir">
-		<available property="exists.tomcat.dir" type="dir" file="${tomcat.dir}"
-			/>
-		<fail unless="tomcat.dir"
-			message="Property tomcat.dir not specified in config/build.properties."
-			/>
-		<fail unless="exists.tomcat.dir"
-			message="Directory ${tomcat.dir} (tomcat.dir from config/build.properties) does not exist."
-			/>
-	</target>
-	
-	<target name="check-for-clover-dir">
-		<available property="exists.clover.dir" type="dir" file="${clover.dir}"
-			/>
-		<fail unless="clover.dir"
-			message="Property clover.dir not specified in config/build.properties."
-			/>
-		<fail unless="exists.clover.dir"
-			message="Directory ${clover.dir} (clover.dir from config/build.properties) does not exist."
-			/>
-	</target>
-	
-	<target name="check-for-jython-dir">
-		<available property="exists.jython.dir" type="dir" file="${jython.dir}"
-			/>
-		<fail unless="jython.dir"
-			message="Property jython.dir not specified in config/build.properties."
-			/>
-		<fail unless="exists.jython.dir"
-			message="Directory ${jython.dir} (jython.dir from config/build.properties) does not exist."
-			/>
-	</target>
-	
-	<target name="check-for-jetty-dir">
-		<available property="exists.jetty.dir" type="dir" file="${jetty.dir}" />
-		<fail unless="jetty.dir"
-			message="Property jetty.dir not specified in config/build.properties."
-			/>
-		<fail unless="exists.jetty.dir"
-			message="Directory ${jetty.dir} (jetty.dir from config/build.properties) does not exist."
-			/>
-	</target>
-	
-	<target name="check-for-forrest-dir" depends="check-defined-forrest-dir,check-downloaded-forrest">
-	</target>
-	
-	<target name="site" description="Generates static HTML documentation" depends="check-for-forrest-dir">
-		<ant antfile="${installed.forrest.dir}/forrest.antproxy.xml" target="site">
-			<property name="forrest.home" value="${installed.forrest.dir}"/>
-		</ant>
-	</target>
-
-	<target name="validate" depends="check-for-forrest-dir" description="Validates XML documentation files">
-		<ant antfile="${installed.forrest.home}/forrest.antproxy.xml" target="validate"/>
-	</target>
-
-	<target name="check-defined-forrest-dir" if="forrest.dir">
-		<available property="exists.forrest.dir" type="dir" file="${forrest.dir}"/>
-		<fail unless="exists.forrest.dir"
-	        message="Directory ${forrest.dir} (forrest.dir from config/build.properties) does not exist."/>
-		<property name="installed.forrest.dir" value="${forrest.dir}"/>
-	</target>		
-	
-	<target name="check-downloaded-forrest" unless="forrest.home" depends="proxyflags" 
-		description="Download forrest package">
-		<echo message="Property forrest.dir not specified in config/build.properties"/>
-		<echo message="Downloading Forrest"/>
-		<antcall target="downloadzip">
-			<param name="sourcefile" value="${forrestdl.loc}"/>
-			<param name="dlfile" value="${forrestdl.ant.xml}"/>
-			<param name="destdir" value="${ext.download.dir}"/>
-		</antcall>
-		<property name="installed.forrest.dir" value="${forrestdl.home}"/>
-	</target>
-
-	<target name="download-ext-install" 
-		depends="download-ext-framework, download-ext-examples" 
-		description="Download binary packages for the install target"/>
-
-	<target name="download-ext-framework" depends="proxyflags" 
-		description="Download binary packages for compiling the framework and examples" >
-		<mkdir dir="${ext.download.dir}" />
-    	
-		<antcall target="installgz">
-			<param name="sourcefile" value="${jdom.loc}"/>
-			<param name="dlfile" value="${jdom.jar}"/>
-			<param name="destfile" value="${jdom.ext.jar}"/>
-			<param name="destdir" value="${ext.download.dir}"/>
-		</antcall>
-		
-		<antcall target="installzip">
-		  <param name="sourcefile" value="${javassist.loc}"/>
-		  <param name="dlfile" value="${javassist.jar}"/>
-		  <param name="destfile" value="${javassist.ext.jar}"/>
-		  <param name="destdir" value="${javassist.dest}"/>
-		</antcall>
-		
-		<antcall target="installjar">
-		  <param name="sourcefile" value="${ognl.loc}"/>
-		  <param name="destfile" value="${ognl.dest}"/>
-		</antcall>
-
-	</target>
-
-	<target name="download-ext-examples" depends="proxyflags" 
-		description="Download binary packages for compiling the examples" >
-		<mkdir dir="${ext.download.dir}" />
-    
-		<antcall target="installzip">
-			<param name="sourcefile" value="${mckoi.loc}"/>
-			<param name="dlfile" value="${mckoi.jar}"/>
-			<param name="destfile" value="${mckoi.ext.jar}"/>
-			<param name="destdir" value="${ext.download.dir}"/>
-		</antcall>
-	</target>
-
-	<target name="download-ext-junit" depends="proxyflags" 
-		description="Download binary packages for compiling the unit tests" >
-		<mkdir dir="${ext.download.dir}" />
-    
-		<antcall target="installzip">
-			<param name="sourcefile" value="${junit.loc}"/>
-			<param name="dlfile" value="${junit.jar}"/>
-			<param name="destfile" value="${junit.ext.jar}"/>
-			<param name="destdir" value="${ext.download.dir}"/>
-		</antcall>
-
-		<antcall target="installgz">
-			<param name="sourcefile" value="${jdom.loc}"/>
-			<param name="dlfile" value="${jdom.jar}"/>
-			<param name="destfile" value="${jdom.ext.jar}"/>
-			<param name="destdir" value="${ext.download.dir}"/>
-		</antcall>
-	</target>
-
-	<target name="download-ext-doc" depends="proxyflags" 
-		description="Download binary packages for compiling the documentation" >
-		<mkdir dir="${ext.download.dir}" />
-    
-		<antcall target="downloadfile">
-			<param name="sourcefile" value="${docbookxml.loc}"/>
-			<param name="destfile" value="${docbookxml.file}"/>
-			<param name="destdir" value="${ext.dist.dir}"/>
-		</antcall>
-
-		<antcall target="downloadfile">
-			<param name="sourcefile" value="${docbookxsl.loc}"/>
-			<param name="destfile" value="${docbookxsl.file}"/>
-			<param name="destdir" value="${ext.dist.dir}"/>
-		</antcall>
-	</target>
-
-    <target name="download-alert" unless="download-alert-shown">
-    <echo>
-*********************************************************************************
-* Due to the restrictions of the Apache Software License 2.0, it is necessary   *
-* to download some additional libraries that use non-ASL licenses. You should   *
-* be aware that redistribution of these files are regulated by their individual *
-* licenses. If you experience problems with the download, consult the file      * 
-* ext-dist/README.html for details on how to configure the build to work        *
-* around a firewall.                                                            *
-*********************************************************************************
-    </echo>
-    
-    <!-- This doesn't work so well ... the property must be getting lost after
-         each antcall completes. -->
-         
-    <property name="download-alert-shown" value="you-betcha"/>
-    
-    </target>
-
-    <target name="installjar" unless="exist" depends="setproxy,testexistdest,download-alert">
-      <get src="${sourcefile}" dest="${destfile}"/>
-    </target>
-
-	<target name="installgz" unless="exist" depends="setproxy,testexistdest">
-		<antcall target="downloadgz"/>
-		<copy file="${dlfile}" tofile="${destfile}"/>
-	</target>
-  
-	<target name="downloadgz" unless="exist" depends="setproxy,testexist,download-alert">
-		<mkdir dir="${ext.download.dir}"/>
-		<!-- Download and extract the package -->
-		<get src="${sourcefile}" dest="${ext.download.dir}/file.tar.gz" />
-		<gunzip src="${ext.download.dir}/file.tar.gz" dest="${ext.download.dir}/file.tar"/>
-		<untar src="${ext.download.dir}/file.tar" dest="${ext.download.dir}"/>
-		<delete file="${ext.download.dir}/file.tar"/>
-		<delete file="${ext.download.dir}/file.tar.gz"/>
-	</target>
-
-	<target name="installzip" unless="exist" depends="setproxy,testexistdest">
-		<antcall target="downloadzip"/>
-		<copy file="${dlfile}" tofile="${destfile}"/>
-	</target>
-  
-	<target name="downloadzip" unless="exist" depends="setproxy,testexist,download-alert">
-		<!-- Download and extract the package -->
-		<mkdir dir="${ext.download.dir}"/>
-		<get src="${sourcefile}" dest="${ext.download.dir}/file.zip" />
-		<mkdir dir="${destdir}" />
-		<unzip src="${ext.download.dir}/file.zip" dest="${destdir}"/>
-		<delete file="${ext.download.dir}/file.zip"/>
-	</target>
-
-	<target name="downloadfile" unless="exist" depends="setproxy,testexistdest">
-		<!-- Download extract the file -->
-		<mkdir dir="${destdir}" />
-		<get src="${sourcefile}" dest="${destfile}" />
-	</target>
-
-	<target name="proxyflags">
-		<!-- check proxy parameters. -->
-		<condition property="useproxy">
-			<equals arg1="${proxy.use}" arg2="on" />
-		</condition>
-	</target>
-
-	<target name="setproxy"  if="useproxy">
-		<taskdef name="setproxy"
-			classname="org.apache.tools.ant.taskdefs.optional.net.SetProxy" />
-		<setproxy proxyhost="${proxy.host}" proxyport="${proxy.port}"/> 
-		<echo message="Using ${proxy.host}:${proxy.port} to download ${sourcefile}"/>
-	</target>
-
-	<target name="testexistdest">
-		<echo message="Testing for ${destfile}"/>
-		<available file="${destfile}" property="exist"/>
-	</target>
-
-	<target name="testexist">
-		<echo message="Testing for ${dlfile}"/>
-		<available file="${dlfile}" property="exist"/>
-	</target>
-
-</project>
diff --git a/3.0.4/config/.cvsignore b/3.0.4/config/.cvsignore
deleted file mode 100644
index 9a96d4a..0000000
--- a/3.0.4/config/.cvsignore
+++ /dev/null
@@ -1,2 +0,0 @@
-build.properties
-build.properties
diff --git a/3.0.4/config/Version.properties b/3.0.4/config/Version.properties
deleted file mode 100644
index 2cd3a42..0000000
--- a/3.0.4/config/Version.properties
+++ /dev/null
@@ -1,5 +0,0 @@
-# $Id$
-#
-# Stores the version number of the framework.
-
-framework.version=3.0.4
diff --git a/3.0.4/config/build.properties.sample b/3.0.4/config/build.properties.sample
deleted file mode 100644
index df89514..0000000
--- a/3.0.4/config/build.properties.sample
+++ /dev/null
@@ -1,32 +0,0 @@
-# $Id$
-# This file is used to configure the Tapestry build.
-# Copy it as "build.properties" and fill in the necessary data.
-
-# The absolute path to the directory where external distributions 
-# used in the building process will be downloaded and installed
-base.path=/usr/share/java
-
-# The absolute path to the directory containing the JBoss installation.
-# Required to execute the configure and run-jboss targets.
-jboss.dir=
-
-# The absolute path to the directory containing the Tomcat installation.
-# Required to execute the deploy-tomcat target.
-# 
-tomcat.dir=
-
-# The absolute path to the directory containing the Jetty installation.
-# Required to execute the run-workbench target.
-jetty.dir=
-
-# The absolute path to the directory containing the Jython installation.
-# Required to execute the junit target.
-jython.dir=
-
-# Home for xml-forrest, used to build documentation.
-# Available from :pserver:anoncvs@cvs.apache.org:/home/cvspublic as module xml-forrest
-# Build forrest, then set to the shbat directory, i.e.
-# C:/workspace/xml-forrest/build/dist/shbat
-
-forrest.home=
-
diff --git a/3.0.4/config/common.properties b/3.0.4/config/common.properties
deleted file mode 100644
index 94d02b0..0000000
--- a/3.0.4/config/common.properties
+++ /dev/null
@@ -1,94 +0,0 @@
-# $Id$
-#
-# Specifies some general properties used throughout.
-# Each build.xml must specify root.dir (as a relative path).
-
-lib.dir=lib
-
-root.lib.dir=${root.dir}/${lib.dir}
-
-ext.dist.dir=${root.dir}/ext-dist
-
-root.config.dir=${root.dir}/config
-
-framework.jar=tapestry-${framework.version}.jar
-contrib.jar=tapestry-contrib-${framework.version}.jar
-
-examples.dir=${root.lib.dir}/examples
-
-vlib.war=vlib.war
-vlib.ear=vlib.ear
-vlibbeans.jar=vlibbeans.jar
-workbench.war=workbench.war
-wap.war=wap.war
-
-ext.download.dir=${ext.dist.dir}/downloads
-
-# Names of directories under lib
-
-ext.dir=ext
-j2ee.dir=j2ee
-runtime.dir=runtime
-
-jboss.lib.dir=${jboss.dir}/lib
-jboss.client.dir=${jboss.dir}/client
-jboss.server.all.lib.dir=${jboss.dir}/server/all/lib
-
-# Directory containing source code and package resources
-src.dir=src
-
-# Directory containing compiled Java code
-classes.dir=classes
-
-# Used as part of copyrights
-
-copyright.years=2000-2004
-
-# ----- JUnit Unit Test Suite, version 3.8 or later -----
-junit.home=${ext.download.dir}/junit3.8.1
-junit.lib=${junit.home}
-junit.jar=${junit.lib}/junit.jar
-junit.ext.jar=${ext.dist.dir}/junit.jar
-junit.loc=http://telia.dl.sourceforge.net/sourceforge/junit/junit3.8.1.zip
-
-# ----- JDOM Library, version 1.0 -----
-jdom.home=${ext.download.dir}/jdom-1.0
-jdom.lib=${jdom.home}
-jdom.jar=${jdom.lib}/build/jdom.jar
-jdom.ext.jar=${ext.dist.dir}/jdom-1.0.jar
-jdom.loc=http://www.jdom.org/dist/binary/jdom-1.0.tar.gz
-
-# ----- McKoi Pure Java Database, version 1.0.2 -----
-mckoi.home=${ext.download.dir}/mckoi1.0.2
-mckoi.lib=${mckoi.home}
-mckoi.jar=${mckoi.lib}/mckoidb.jar
-mckoi.ext.jar=${ext.dist.dir}/mckoidb.jar
-mckoi.loc=http://www.mckoi.com/database/ver/mckoi1.0.2.zip
-
-# ----- DocBook XML, version 4.1.2 -----
-docbookxml.file=${ext.dist.dir}/docbkx412.zip
-docbookxml.loc=http://www.docbook.org/xml/4.1.2/docbkx412.zip
-
-# ----- DocBook XSL, version 1.64.1 -----
-docbookxsl.file=${ext.dist.dir}/docbook-xsl-1.64.1.zip
-docbookxsl.loc=http://telia.dl.sourceforge.net/sourceforge/docbook/docbook-xsl-1.64.1.zip
-
-# ----- Apache Forrest, version 0.5.1 -----
-forrestdl.home=${ext.download.dir}/apache-forrest-0.5.1-bin
-forrestdl.ant.xml=${forrestdl.home}/forrest.antproxy.xml
-forrestdl.loc=http://archive.apache.org/dist/forrest/pre-0.6/apache-forrest-0.5.1-bin.zip
-
-# ---- OGNL ----
-ognl.version=2.6.7
-ognl.loc=http://ognl.org/${ognl.version}/ognl-${ognl.version}.jar
-ognl.dest=${root.lib.dir}/${ext.dir}/ognl-${ognl.version}.jar
-
-# ---- Javassist ----
-
-javassist.version=2.5.1
-javassist.loc=http://umn.dl.sourceforge.net/sourceforge/jboss/javassist-${javassist.version}.zip
-javassist.dest=${ext.download.dir}/javassist-${javassist.version}
-javassist.ext.jar=${root.lib.dir}/${ext.dir}/javassist-${javassist.version}.jar
-javassist.jar=${javassist.dest}/javassist.jar
-
-
diff --git a/3.0.4/config/jboss/conf/auth.conf b/3.0.4/config/jboss/conf/auth.conf
deleted file mode 100644
index 2fe9341..0000000
--- a/3.0.4/config/jboss/conf/auth.conf
+++ /dev/null
@@ -1,12 +0,0 @@
-// This file is now obsolete but is read for backward compatability
-// Use the login-config.xml file instead
-// $Id$
-
-simple {
-    // Very simple login module: 
-    // any user name is accepted.
-    // password should either coincide with user name or be null, 
-    // all users have role "guest", 
-    // users with non-null password also have role "user"
-    org.jboss.security.auth.spi.SimpleServerLoginModule required;
-};
diff --git a/3.0.4/config/jboss/conf/jboss-minimal.xml b/3.0.4/config/jboss/conf/jboss-minimal.xml
deleted file mode 100644
index 22dec8e..0000000
--- a/3.0.4/config/jboss/conf/jboss-minimal.xml
+++ /dev/null
@@ -1,93 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE server>
-<!-- $Id$ -->
-
-<!-- ===================================================================== -->
-<!--                                                                       -->
-<!--  A minimal JBoss Server Configuration                                 -->
-<!--                                                                       -->
-<!-- ===================================================================== -->
-
-<server>
-
-  <!-- Load all jars from the JBOSS_DIST/server/<config>/lib directory. This
-    can be restricted to specific jars by specifying them in the archives
-    attribute.
-   -->
-  <classpath codebase="lib" archives="*"/>
-
-  <!-- ==================================================================== -->
-  <!-- Log4j Initialization                                                 -->
-  <!-- ==================================================================== -->
-  <mbean code="org.jboss.logging.Log4jService"
-    name="jboss.system:type=Log4jService,service=Logging">
-    <attribute name="ConfigurationURL">resource:log4j.xml</attribute>
-  </mbean>
-
-  <!-- ==================================================================== -->
-  <!-- JNDI                                                                 -->
-  <!-- ==================================================================== -->
-
-  <mbean code="org.jboss.naming.NamingService"
-	 name="jboss:service=Naming">
-    <!-- The listening port for the bootstrap JNP service. Set this to -1
-      to run the NamingService without the JNP invoker listening port.
-    -->
-    <attribute name="Port">1099</attribute>
-  </mbean>
-  <mbean code="org.jboss.naming.JNDIView" 
-	 name="jboss:service=JNDIView"/>
-
-  <!-- ==================================================================== -->
-  <!-- Deployment Scanning                                                  -->
-  <!-- ==================================================================== -->
-
-  <!-- An mbean for hot deployment/undeployment of archives.
-  -->
-  <mbean code="org.jboss.deployment.scanner.URLDeploymentScanner"
-	 name="jboss.deployment:type=DeploymentScanner,flavor=URL">
-
-    <depends optional-attribute-name="Deployer">jboss.system:service=MainDeployer</depends>
-
-    <!-- The URLComparator can be used to specify a deployment ordering
-         for deployments found in a scanned directory.  The class specified
-         must be an implementation of java.util.Comparator, it must be able
-         to compare two URL objects, and it must have a no-arg constructor.
-         Two deployment comparators are shipped with JBoss:
-           - org.jboss.deployment.DeploymentSorter 
-             Sorts by file extension, as follows:
-               "sar", "service.xml", "rar", "jar", "war", "wsr", "ear", "zip", 
-               "*"
-           - org.jboss.deployment.scanner.PrefixDeploymentSorter
-             If the name portion of the url begins with 1 or more digits, those 
-             digits are converted to an int (ignoring leading zeroes), and 
-             files are deployed in that order.  Files that do not start with 
-             any digits will be deployed last, and they will be sorted by
-             extension as above with DeploymentSorter.
-    -->
-    <attribute name="URLComparator">org.jboss.deployment.DeploymentSorter</attribute>
-    <!-- The Filter specifies a java.io.FileFilter for scanned
-         directories.  Any file not accepted by this filter will not be
-         deployed.  The org.jboss.deployment.scanner.DeploymentFilter 
-         rejects the following patterns:
-             "#*", "%*", ",*", ".*", "_$*", "*#", "*$", "*%", "*.BAK", 
-             "*.old", "*.orig", "*.rej", "*.bak", "*,v", "*~", ".make.state", 
-             ".nse_depinfo", "CVS", "CVS.admin", "RCS", "RCSLOG", "SCCS", 
-             "TAGS", "core", "tags"
-    -->
-    <attribute name="Filter">org.jboss.deployment.scanner.DeploymentFilter</attribute>
-
-    <attribute name="ScanPeriod">5000</attribute>
-
-    <!-- URLs are comma seperated and unprefixed arguments are considered
-       file URLs and resolve relative to server home(JBOSS_DIST/server/default)
-       unless the given path is absolute. Any referenced directories cannot
-       be unpackaged archives, use the parent directory of the unpacked
-       archive.
-     -->
-    <attribute name="URLs">
-       ./deploy
-    </attribute>
-  </mbean>
-
-</server>
diff --git a/3.0.4/config/jboss/conf/jboss-service.xml b/3.0.4/config/jboss/conf/jboss-service.xml
deleted file mode 100644
index e52d927..0000000
--- a/3.0.4/config/jboss/conf/jboss-service.xml
+++ /dev/null
@@ -1,336 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE server>
-<!-- $Id$ -->
-
-<!-- ===================================================================== -->
-<!--                                                                       -->
-<!--  JBoss Server Configuration                                           -->
-<!--                                                                       -->
-<!-- ===================================================================== -->
-
-<server>
-
-  <!-- Load all jars from the JBOSS_DIST/server/<config>/lib directory. This
-    can be restricted to specific jars by specifying them in the archives
-    attribute.
-   -->
-  <classpath codebase="lib" archives="*"/>
-
-  <!-- ==================================================================== -->
-  <!-- PropertyEditors and System Properties                                -->
-  <!-- ==================================================================== -->
-  <mbean code="org.jboss.varia.property.PropertyEditorManagerService"
-    name="jboss:type=Service,name=BootstrapEditors">
-    <!-- Preload all custom editors for VMs that don't use the thread
-         context class loader when searching for PropertyEditors
-    -->
-    <attribute name="BootstrapEditors">
-       java.math.BigDecimal=org.jboss.util.propertyeditor.BigDecimalEditor
-       java.lang.Boolean=org.jboss.util.propertyeditor.BooleanEditor
-       java.lang.Class=org.jboss.util.propertyeditor.ClassEditor
-       java.util.Date=org.jboss.util.propertyeditor.DateEditor
-       java.io.File=org.jboss.util.propertyeditor.FileEditor
-       java.net.InetAddress=org.jboss.util.propertyeditor.InetAddressEditor
-       java.lang.Integer=org.jboss.util.propertyeditor.IntegerEditor
-       javax.management.ObjectName=org.jboss.util.propertyeditor.ObjectNameEditor
-       java.util.Properties=org.jboss.util.propertyeditor.PropertiesEditor
-       [Ljava.lang.String;=org.jboss.util.propertyeditor.StringArrayEditor
-       java.net.URL=org.jboss.util.propertyeditor.URLEditor
-    </attribute>
-  </mbean>
-  <mbean code="org.jboss.varia.property.SystemPropertiesService"
-    name="jboss:type=Service,name=SystemProperties">
-    <!-- The invokerServletPath property gives the public URL to the
-      org.jboss.invocation.http.servlet.InvokerServlet used by the
-      HTTP proxy for RMI/HTTP. This is only needed if the http-invoker.sar
-      is deployed.
-    -->
-    <attribute name="Properties">
-      invokerServletPath=http://localhost:8080/invoker/JMXInvokerServlet
-    </attribute>
-    <!-- Load properties from each of the given comma seperated URLs
-    <attribute name="URLList">
-      http://somehost/some-location.properties,
-      ./conf/somelocal.properties
-    </attribute>
-    -->
-  </mbean>
-
-  <!-- ==================================================================== -->
-  <!-- Log4j Initialization                                                 -->
-  <!-- ==================================================================== -->
-  <mbean code="org.jboss.logging.Log4jService"
-    name="jboss.system:type=Log4jService,service=Logging">
-    <attribute name="ConfigurationURL">resource:log4j.xml</attribute>
-  </mbean>
-
-  <!-- ==================================================================== -->
-  <!-- Class Loading                                                        -->
-  <!-- ==================================================================== -->
-
-  <mbean code="org.jboss.web.WebService"
-	 name="jboss:service=Webserver">
-    <attribute name="Port">8083</attribute>
-    <!-- Should resources and non-EJB classes be downloadable -->
-    <attribute name="DownloadServerClasses">true</attribute>
-  </mbean>
-
-  <!-- ==================================================================== -->
-  <!-- JSR-77 Single JBoss Server Management Domain                         -->
-  <!-- ==================================================================== -->
-
-  <mbean code="org.jboss.management.j2ee.SingleJBossServerManagement"
-	 name="jboss.management.single:j2eeType=J2EEDomain,name=Manager" >
-  </mbean>
-
-  <!-- ==================================================================== -->
-  <!-- JNDI                                                                 -->
-  <!-- ==================================================================== -->
-
-  <mbean code="org.jboss.naming.NamingService"
-	 name="jboss:service=Naming">
-    <!-- The listening port for the bootstrap JNP service. Set this to -1
-      to run the NamingService without the JNP invoker listening port.
-    -->
-    <attribute name="Port">1099</attribute>
-  </mbean>
-  <mbean code="org.jboss.naming.JNDIView" 
-	 name="jboss:service=JNDIView"/>
-
-  <!-- ==================================================================== -->
-  <!-- Security                                                             -->
-  <!-- ==================================================================== -->
-
-  <mbean code="org.jboss.security.plugins.SecurityConfig"
-	 name="jboss.security:name=SecurityConfig">
-    <attribute name="LoginConfig">jboss.security:service=XMLLoginConfig</attribute>
-  </mbean>
-  <mbean code="org.jboss.security.auth.login.XMLLoginConfig"
-	 name="jboss.security:service=XMLLoginConfig">
-    <attribute name="ConfigResource">login-config.xml</attribute>
-  </mbean>
-
-  <!-- JAAS security manager and realm mapping -->
-  <mbean code="org.jboss.security.plugins.JaasSecurityManagerService"
-	 name="jboss.security:service=JaasSecurityManager">
-    <attribute name="SecurityManagerClassName">
-      org.jboss.security.plugins.JaasSecurityManager
-    </attribute>
-  </mbean>
-
-  <!-- ==================================================================== -->
-  <!-- Transactions                                                         -->
-  <!-- ==================================================================== -->
-
-  <mbean code="org.jboss.tm.XidFactory" 
-	 name="jboss:service=XidFactory">
-  </mbean>
- 
-  <mbean code="org.jboss.tm.TransactionManagerService" 
-	 name="jboss:service=TransactionManager">
-    <attribute name="TransactionTimeout">300</attribute>
-    <depends optional-attribute-name="XidFactory">jboss:service=XidFactory</depends>
-  </mbean>
-
-  <!-- 
-     | Uncomment to use Tyrex (tyrex.exolab.org) transaction manager plugin
-     | instead of the org.jboss.tm.TransactionManagerService and comment out
-     | the TransactionManagerService above.
-     | Make sure you have Xerces in lib/. At the moment JBoss does not
-     | ship Xerces as part of distribution. Version 1.x seems to work fine,
-     | though 2.x should as well, use whichever you like.
-     |
-  <mbean code="org.jboss.tm.plugins.tyrex.TransactionManagerService"
-         name="jboss:service=TransactionManager">
-        <attribute name="ConfigFileName">../conf/default/domain.xml</attribute>
-  </mbean>
-  -->
-
-  <mbean code="org.jboss.tm.usertx.server.ClientUserTransactionService"
-	 name="jboss:service=ClientUserTransaction">
-  </mbean>
-
-  <!-- The CachedConnectionManager is used partly to relay started UserTransactions to 
-    open connections so they may be enrolled in the new tx-->
-  <mbean code="org.jboss.resource.connectionmanager.CachedConnectionManager" name="jboss.jca:service=CachedConnectionManager">
-  </mbean>
-
-
-  <!-- ==================================================================== -->
-  <!-- The deployers...                                                     -->
-  <!-- ==================================================================== -->
-
-  <!-- Main Deployer and SARDeployer are provided by main -->
-
-  <!-- EJB deployer, remove to disable EJB behavior-->
-  <mbean code="org.jboss.ejb.EJBDeployer" name="jboss.ejb:service=EJBDeployer">
-    <attribute name="VerifyDeployments">true</attribute>
-    <attribute name="ValidateDTDs">false</attribute>
-    <attribute name="MetricsEnabled">false</attribute>
-    <attribute name="VerifierVerbose">true</attribute>
-    <!-- Add a dependency on the JMS provider(jms-service.xml) for MDBs. If
-      you are not using MDBs and JMS remove these.
-    -->
-    <depends>jboss.mq:service=JMSProviderLoader,name=JBossMQProvider</depends>
-    <depends>jboss.mq:service=ServerSessionPoolMBean,name=StdJMSPool</depends>
-  </mbean>
-
-  <!-- EAR deployer -->
-  <mbean code="org.jboss.deployment.EARDeployer" name="jboss.j2ee:service=EARDeployer">
-  </mbean>
-  
-  <!-- WAR Deployer is provided by tomcat or jetty -->
-  <!-- RAR Deployer is provided by the rar.sar package -->
-
-
-  <!-- ==================================================================== -->
-  <!-- JBoss Server Management                                              -->
-  <!-- ==================================================================== -->
-
-  <!-- AS Temporary not available
-  <mbean code="org.jboss.management.ServerDataCollector"
-         name="jboss.management:service=Collector">
-    <attribute name="RefreshSleep">5000</attribute>
-  </mbean>
-  -->
-
-  <!-- ==================================================================== -->
-  <!-- Monitoring and Management                                            -->
-  <!-- ==================================================================== -->
-
-  <!-- Uncomment to enable JMX monitoring of the bean cache
-  <mbean code="org.jboss.monitor.BeanCacheMonitor" 
-         name="jboss.monitor:name=BeanCacheMonitor"/>
-  -->
-
-  <!-- Uncomment to enable JMX monitoring of the entity bean locking
-  <mbean code="org.jboss.monitor.EntityLockMonitor" 
-         name="jboss.monitor:name=EntityLockMonitor"/>
-  -->
-
-  
-
-  <!-- ==================================================================== -->
-  <!-- Invokers to the JMX node                                             -->
-  <!-- ==================================================================== -->
-
-  <!-- RMI/JRMP invoker -->
-  <mbean code="org.jboss.invocation.jrmp.server.JRMPInvoker" 
-         name="jboss:service=invoker,type=jrmp">
-    <attribute name="RMIObjectPort">4444</attribute>
-    <!--
-    <attribute name="RMIClientSocketFactory">custom</attribute>
-    <attribute name="RMIServerSocketFactory">custom</attribute>
-    <attribute name="RMIServerSocketAddr">custom</attribute>
-    -->
-  </mbean>
-  
-  <mbean code="org.jboss.invocation.pooled.server.PooledInvoker" 
-         name="jboss:service=invoker,type=pooled">
-  </mbean>
-
-  <mbean code="org.jboss.invocation.local.LocalInvoker" 
-         name="jboss:service=invoker,type=local">
-  </mbean>
-
-  <!-- ==================================================================== -->
-  <!-- Deployment Scanning                                                  -->
-  <!-- ==================================================================== -->
-
-  <!-- Uncomment to enable caching of deployment units
-  <mbean code="org.jboss.deployment.cache.FileDeploymentStore"
-	 name="jboss.deployment:type=DeploymentStore,flavor=File">
-    <attribute name="DirectoryName">data/deployment-cache</attribute>
-  </mbean>
-
-  <mbean code="org.jboss.deployment.cache.DeploymentCache"
-	 name="jboss.deployment:type=DeploymentCache">
-    <depends optional-attribute-name="Deployer">jboss.system:service=MainDeployer</depends>
-    <depends optional-attribute-name="Store">jboss.deployment:type=DeploymentStore,flavor=File</depends>
-  </mbean>
-  -->
-
-  <!-- An mbean for hot deployment/undeployment of archives.
-  -->
-  <mbean code="org.jboss.deployment.scanner.URLDeploymentScanner"
-	 name="jboss.deployment:type=DeploymentScanner,flavor=URL">
-
-    <!-- Uncomment (and comment/remove version below) to enable usage of the
-      DeploymentCache
-    <depends optional-attribute-name="Deployer">jboss.deployment:type=DeploymentCache</depends>
-    -->
-    <depends optional-attribute-name="Deployer">jboss.system:service=MainDeployer</depends>
-
-    <!-- The URLComparator can be used to specify a deployment ordering
-         for deployments found in a scanned directory.  The class specified
-         must be an implementation of java.util.Comparator, it must be able
-         to compare two URL objects, and it must have a no-arg constructor.
-         Two deployment comparators are shipped with JBoss:
-           - org.jboss.deployment.DeploymentSorter 
-             Sorts by file extension, as follows:
-               "sar", "service.xml", "rar", "jar", "war", "wsr", "ear", "zip", 
-               "*"
-           - org.jboss.deployment.scanner.PrefixDeploymentSorter
-             If the name portion of the url begins with 1 or more digits, those 
-             digits are converted to an int (ignoring leading zeroes), and 
-             files are deployed in that order.  Files that do not start with 
-             any digits will be deployed first, and they will be sorted by
-             extension as above with DeploymentSorter.
-    -->
-    <attribute name="URLComparator">org.jboss.deployment.DeploymentSorter</attribute>
-    <!--
-    <attribute name="URLComparator">org.jboss.deployment.scanner.PrefixDeploymentSorter</attribute>
-    -->
-
-    <!-- The Filter specifies a java.io.FileFilter for scanned
-         directories.  Any file not accepted by this filter will not be
-         deployed.  The org.jboss.deployment.scanner.DeploymentFilter 
-         rejects the following patterns:
-             "#*", "%*", ",*", ".*", "_$*", "*#", "*$", "*%", "*.BAK", 
-             "*.old", "*.orig", "*.rej", "*.bak", "*,v", "*~", ".make.state", 
-             ".nse_depinfo", "CVS", "CVS.admin", "RCS", "RCSLOG", "SCCS", 
-             "TAGS", "core", "tags"
-    -->
-    <attribute name="Filter">org.jboss.deployment.scanner.DeploymentFilter</attribute>
-
-    <attribute name="ScanPeriod">5000</attribute>
-
-    <!-- URLs are comma seperated and unprefixed arguments are considered
-       file URLs and resolve relative to server home(JBOSS_DIST/server/default)
-       unless the given path is absolute. Any referenced directories cannot
-       be unpackaged archives, use the parent directory of the unpacked
-       archive.
-     -->
-    <attribute name="URLs">
-       ./deploy
-    </attribute>
-  </mbean>
-
-  <!--  An alternate hot deployer mbean. Use URLDirectoryScanner if you need to
-    specify which urls are directories to scan, and which are urls to be
-    deployed directly. URLDeploymentScanner assumes that all directories are to
-    be scanned, which can cause problems if directory referred to in the
-    deploy attribute is an exploded archive.
-  <mbean code="org.jboss.deployment.scanner.URLDirectoryScanner"
-       name="jboss.deployment:type=DeploymentScanner,flavor=URL">
-
-    <depends optional-attribute-name="Deployer">jboss.system:service=MainDeployer</depends>
-    <attribute name="URLComparator">org.jboss.deployment.DeploymentSorter</attribute>
-    <attribute name="Filter">org.jboss.deployment.scanner.DeploymentFilter</attribute>
-    <attribute name="ScanPeriod">5000</attribute>
-    /* Each entry specifies either a dir (directory to be scanned),
-      or url (url to be deployed). Like the URLs for the DeploymentScanner
-      above, a file: protocol will be assumed if not specified otherwise.
-    */
-    <attribute name="URLs">
-        <urls>
-            <dir name="./deploy" />
-            <url name="./deploy/examples/myapp.ear" />
-            <dir name="./deploy/examples" />
-            <url name="http://www.test.com/samples/myapp.ear" />
-        </urls>
-    </attribute>
-  </mbean>
-  -->
-
-</server>
diff --git a/3.0.4/config/jboss/conf/jbossmq-state.xml b/3.0.4/config/jboss/conf/jbossmq-state.xml
deleted file mode 100644
index 113ec64..0000000
--- a/3.0.4/config/jboss/conf/jbossmq-state.xml
+++ /dev/null
@@ -1,44 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<StateManager>
-	<Users>
-		<User>
-			<Name>john</Name>
-			<Password>needle</Password>
-			<Id>DurableSubscriberExample</Id>
-		</User>
-		<User>
-			<Name>guest</Name>
-			<Password>guest</Password>
-		</User>
-		<User>
-			<Name>nobody</Name>
-			<Password>nobody</Password>
-		</User>
-		<User>
-			<Name>dynsub</Name>
-			<Password>dynsub</Password>
-		</User>
-	</Users>
-	<Roles>
-		<Role name="guest">
-			<UserName>guest</UserName>
-			<UserName>john</UserName>
-		</Role>
-		<Role name="subscriber">
-			<UserName>john</UserName>
-		</Role>
-		<Role name="publisher">
-			<UserName>john</UserName>
-			<UserName>dynsub</UserName>
-		</Role>
-		<Role name="durpublisher">
-			<UserName>john</UserName>
-			<UserName>dynsub</UserName>
-		</Role>
-		<Role name="noacc">
-			<UserName>nobody</UserName>
-		</Role>
-	</Roles>
-	<DurableSubscriptions>
-	</DurableSubscriptions>
-</StateManager>
diff --git a/3.0.4/config/jboss/conf/jndi.properties b/3.0.4/config/jboss/conf/jndi.properties
deleted file mode 100644
index c59f571..0000000
--- a/3.0.4/config/jboss/conf/jndi.properties
+++ /dev/null
@@ -1,5 +0,0 @@
-java.naming.factory.initial=org.jnp.interfaces.NamingContextFactory
-java.naming.factory.url.pkgs=org.jboss.naming:org.jnp.interfaces
-# Do NOT uncomment this line as it causes in VM calls to go over
-# RMI!
-#java.naming.provider.url=localhost
diff --git a/3.0.4/config/jboss/conf/log4j.xml b/3.0.4/config/jboss/conf/log4j.xml
deleted file mode 100644
index 000fa62..0000000
--- a/3.0.4/config/jboss/conf/log4j.xml
+++ /dev/null
@@ -1,191 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE log4j:configuration SYSTEM "log4j.dtd">
-
-<!-- ===================================================================== -->
-<!--                                                                       -->
-<!--  Log4j Configuration                                                  -->
-<!--                                                                       -->
-<!-- ===================================================================== -->
-
-<!-- $Id$ -->
-
-<!--
-   | For more configuration infromation and examples see the Jakarta Log4j
-   | owebsite: http://jakarta.apache.org/log4j
- -->
-
-<log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/" debug="false">
-
-  <!-- ================================= -->
-  <!-- Preserve messages in a local file -->
-  <!-- ================================= -->
-
-  <!-- A time/date based rolling appender -->
-  <appender name="FILE" class="org.jboss.logging.appender.DailyRollingFileAppender">
-    <param name="File" value="${jboss.server.home.dir}/log/server.log"/>
-    <param name="Append" value="false"/>
-    <param name="Threshold" value="INFO"/>
-
-    <!-- Rollover at midnight each day -->
-    <param name="DatePattern" value="'.'yyyy-MM-dd"/>
-
-    <!-- Rollover at the top of each hour
-    <param name="DatePattern" value="'.'yyyy-MM-dd-HH"/>
-    -->
-
-    <layout class="org.apache.log4j.PatternLayout">
-      <!-- The default pattern: Date Priority [Category] Message\n -->
-      <param name="ConversionPattern" value="%d %-5p [%c] %m%n"/>
-
-      <!-- The full pattern: Date MS Priority [Category] (Thread:NDC) Message\n
-      <param name="ConversionPattern" value="%d %-5r %-5p [%c] (%t:%x) %m%n"/>
-       -->
-    </layout>	    
-  </appender>
-
-  <!-- A size based file rolling appender
-  <appender name="FILE" class="org.jboss.logging.appender.RollingFileAppender">
-    <param name="File" value="${jboss.server.home.dir}/log/server.log"/>
-    <param name="Append" value="false"/>
-    <param name="MaxFileSize" value="500KB"/>
-    <param name="MaxBackupIndex" value="1"/>
-
-    <layout class="org.apache.log4j.PatternLayout">
-      <param name="ConversionPattern" value="%d %-5p [%c] %m%n"/>
-    </layout>	    
-  </appender>
-  -->
-
-  <!-- ============================== -->
-  <!-- Append messages to the console -->
-  <!-- ============================== -->
-
-  <appender name="CONSOLE" class="org.apache.log4j.ConsoleAppender">
-    <param name="Threshold" value="INFO"/>
-    <param name="Target" value="System.out"/>
-
-    <layout class="org.apache.log4j.PatternLayout">
-      <!-- The default pattern: Date Priority [Category] Message\n -->
-      <param name="ConversionPattern" value="%d{ABSOLUTE} %-5p [%c{1}] %m%n"/>
-    </layout>
-  </appender>
-
-
-  <!-- ====================== -->
-  <!-- More Appender examples -->
-  <!-- ====================== -->
-
-  <!-- Buffer events and log them asynchronously
-  <appender name="ASYNC" class="org.apache.log4j.AsyncAppender">
-    <appender-ref ref="FILE"/>
-    <appender-ref ref="CONSOLE"/>
-    <appender-ref ref="SMTP"/>
-  </appender>
-  -->
-
-  <!-- EMail events to an administrator
-  <appender name="SMTP" class="org.apache.log4j.net.SMTPAppender">
-    <param name="Threshold" value="ERROR"/>
-    <param name="To" value="admin@myhost.domain.com"/>
-    <param name="From" value="nobody@myhost.domain.com"/>
-    <param name="Subject" value="JBoss Sever Errors"/>
-    <param name="SMTPHost" value="localhost"/>
-    <param name="BufferSize" value="10"/>
-    <layout class="org.apache.log4j.PatternLayout">
-      <param name="ConversionPattern" value="[%d{ABSOLUTE},%c{1}] %m%n"/>
-    </layout>
-  </appender>
-  -->
-
-  <!-- Syslog events
-  <appender name="SYSLOG" class="org.apache.log4j.net.SyslogAppender">
-    <param name="Facility" value="LOCAL7"/>
-    <param name="FacilityPrinting" value="true"/>
-    <param name="SyslogHost" value="localhost"/>
-  </appender>
-  -->
-
-  <!-- Log events to JMS (requires a topic to be created)
-  <appender name="JMS" class="org.apache.log4j.net.JMSAppender">
-    <param name="Threshold" value="ERROR"/>
-    <param name="TopicConnectionFactoryBindingName" value="java:/ConnectionFactory"/>
-    <param name="TopicBindingName" value="topic/MyErrorsTopic"/>
-  </appender>
-  -->
-
-  <!-- ================ -->
-  <!-- Limit categories -->
-  <!-- ================ -->
-
-  <!-- Limit JBoss categories to INFO
-  <category name="org.jboss">
-    <priority value="INFO"/>
-  </category>
-  -->
-
-  <!-- Increase the priority threshold for the DefaultDS category
-  <category name="DefaultDS">
-    <priority value="FATAL"/>
-  </category>
-  -->
-
-  <!-- Decrease the priority threshold for the org.jboss.varia category
-  <category name="org.jboss.varia">
-    <priority value="DEBUG"/>
-  </category>
-  -->
-
-  <category name="org.apache.tapestry">
-  	<priority value="ERROR"/>
-  </category>
-
-  
-  <!--
-     | An example of enabling the custom TRACE level priority that is used
-     | by the JBoss internals to diagnose low level details. This example
-     | turns on TRACE level msgs for the org.jboss.ejb.plugins package and its
-     | subpackages. This will produce A LOT of logging output.
-       If you use replace the log4j 1.2 jar with a 1.1.3 jar you will need to
-       change this from XLevel to XPriority.
-  <category name="org.jboss.system">
-    <priority value="TRACE" class="org.jboss.logging.XLevel"/>
-  </category>
-  <category name="org.jboss.ejb.plugins">
-    <priority value="TRACE" class="org.jboss.logging.XLevel"/>
-  </category>
-  -->
-
-  <!-- ======================= -->
-  <!-- Setup the Root category -->
-  <!-- ======================= -->
-
-  <root>
-    <appender-ref ref="CONSOLE"/>
-    <appender-ref ref="FILE"/>
-  </root>
-  
-  <!-- Clustering logging -->
-  <!-- Uncomment the following to redirect the org.javagroups and
-     org.jboss.ha categories to a cluster.log file.
-
-  <appender name="CLUSTER" class="org.jboss.logging.appender.RollingFileAppender">
-    <param name="File" value="${jboss.server.home.dir}/log/cluster.log"/>
-    <param name="Append" value="false"/>
-    <param name="MaxFileSize" value="500KB"/>
-    <param name="MaxBackupIndex" value="1"/>
-
-    <layout class="org.apache.log4j.PatternLayout">
-      <param name="ConversionPattern" value="%d %-5p [%c] %m%n"/>
-    </layout>	    
-  </appender>
-  <category name="org.javagroups">
-    <priority value="DEBUG" />
-    <appender-ref ref="CLUSTER"/>
-  </category>
-  <category name="org.jboss.ha">
-    <priority value="DEBUG" />
-    <appender-ref ref="CLUSTER"/>
-  </category>
-  -->
-
-</log4j:configuration>
diff --git a/3.0.4/config/jboss/conf/login-config.xml b/3.0.4/config/jboss/conf/login-config.xml
deleted file mode 100644
index 7760d26..0000000
--- a/3.0.4/config/jboss/conf/login-config.xml
+++ /dev/null
@@ -1,122 +0,0 @@
-<?xml version='1.0'?>
-<!DOCTYPE policy PUBLIC
-      "-//JBoss//DTD JBOSS Security Config 3.0//EN"
-      "http://www.jboss.org/j2ee/dtd/security_config.dtd">
-
-<!-- The XML based JAAS login configuration read by the
-org.jboss.security.auth.login.XMLLoginConfig mbean. Add
-an application-policy element for each security domain.
-
-The outline of the application-policy is:
-<application-policy name="security-domain-name">
-  <authentication>
-    <login-module code="login.module1.class.name" flag="control_flag">
-      <module-option name = "option1-name">option1-value</module-option>
-      <module-option name = "option2-name">option2-value</module-option>
-      ...
-    </login-module>
-
-    <login-module code="login.module2.class.name" flag="control_flag">
-      ...
-    </login-module>
-    ...
-  </authentication>
-</application-policy>
-
-$Revision$
--->
-
-<policy>
-    <!-- Used by clients within the application server VM such as
-    mbeans and servlets that access EJBs.
-    -->
-    <application-policy name = "client-login">
-       <authentication>
-          <login-module code = "org.jboss.security.ClientLoginModule"
-             flag = "required">
-          </login-module>
-       </authentication>
-    </application-policy>
-
-    <!-- Security domain for JBossMQ -->
-    <application-policy name = "jbossmq">
-       <authentication>
-          <login-module code = "org.jboss.mq.sm.file.DynamicLoginModule"
-             flag = "required">
-             <module-option name = "unauthenticatedIdentity">guest</module-option>
-	     <module-option name = "sm.objectname">jboss.mq:service=StateManager</module-option>
-          </login-module>
-       </authentication>
-    </application-policy>
-
-    <!-- Security domains for testing new jca framework -->
-    <application-policy name = "HsqlDbRealm">
-       <authentication>
-          <login-module code = "org.jboss.resource.security.ConfiguredIdentityLoginModule"
-             flag = "required">
-             <module-option name = "principal">sa</module-option>
-             <module-option name = "userName">sa</module-option>
-             <module-option name = "password"></module-option>
-             <module-option name = "managedConnectionFactoryName">jboss.jca:service=LocalTxCM,name=hsqldbDS</module-option>
-          </login-module>
-       </authentication>
-    </application-policy>
-
-    <application-policy name = "FirebirdDBRealm">
-       <authentication>
-          <login-module code = "org.jboss.resource.security.ConfiguredIdentityLoginModule"
-             flag = "required">
-             <module-option name = "principal">sysdba</module-option>
-             <module-option name = "userName">sysdba</module-option>
-             <module-option name = "password">masterkey</module-option>
-             <module-option name = "managedConnectionFactoryName">jboss.jca:service=XaTxCM,name=FirebirdDS</module-option>
-          </login-module>
-       </authentication>
-    </application-policy>
-
-    <application-policy name = "JmsXARealm">
-       <authentication>
-          <login-module code = "org.jboss.resource.security.ConfiguredIdentityLoginModule"
-             flag = "required">
-             <module-option name = "principal">guest</module-option>
-             <module-option name = "userName">guest</module-option>
-             <module-option name = "password">guest</module-option>
-             <module-option name = "managedConnectionFactoryName">jboss.jca:service=XaTxCM,name=jmsra</module-option>
-          </login-module>
-       </authentication>
-    </application-policy>
-
-    <!-- A template configuration for the jmx-console web application. This
-      defaults to the UsersRolesLoginModule the same as other and should be
-      changed to a stronger authentication mechanism as required.
-    -->
-    <application-policy name = "jmx-console">
-       <authentication>
-          <login-module code="org.jboss.security.auth.spi.UsersRolesLoginModule"
-             flag = "required" />
-       </authentication>
-    </application-policy>
-
-    <!-- The default login configuration used by any security domain that
-    does not have a application-policy entry with a matching name
-    -->
-    <application-policy name = "other">
-       <!-- A simple server login module, which can be used when the number 
-       of users is relatively small. It uses two properties files:
-       users.properties, which holds users (key) and their password (value).
-       roles.properties, which holds users (key) and a comma-separated list of
-       their roles (value).
-       The unauthenticatedIdentity property defines the name of the principal
-       that will be used when a null username and password are presented as is
-       the case for an unuathenticated web client or MDB. If you want to
-       allow such users to be authenticated add the property, e.g.,
-       unauthenticatedIdentity="nobody"
-       -->
-       <authentication>
-          <login-module code = "org.jboss.security.auth.spi.UsersRolesLoginModule"
-             flag = "required" />
-       </authentication>
-    </application-policy>
-
-</policy>
-
diff --git a/3.0.4/config/jboss/conf/server.policy b/3.0.4/config/jboss/conf/server.policy
deleted file mode 100644
index da69056..0000000
--- a/3.0.4/config/jboss/conf/server.policy
+++ /dev/null
@@ -1,12 +0,0 @@
-/// ====================================================================== ///
-//                                                                          //
-//  JBoss Security Policy                                                   //
-//                                                                          //
-/// ====================================================================== ///
-
-// $Id$
-
-grant {
-   // Allow everything for now
-   permission java.security.AllPermission;
-};
diff --git a/3.0.4/config/jboss/conf/standardjaws.xml b/3.0.4/config/jboss/conf/standardjaws.xml
deleted file mode 100644
index f9deeb4..0000000
--- a/3.0.4/config/jboss/conf/standardjaws.xml
+++ /dev/null
@@ -1,1267 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-
-<!DOCTYPE jbosscmp-jdbc PUBLIC
-    "-//JBoss//DTD JBOSSCMP-JDBC 3.0//EN"
-    "http://www.jboss.org/j2ee/dtd/jbosscmp-jdbc_3_0.dtd">
-
-<!-- ===================================================================== -->
-<!--                                                                       -->
-<!--  Standard Jaws Configuration                                          -->
-<!--                                                                       -->
-<!-- ===================================================================== -->
-
-<!-- $Id$ -->
-
-<jaws>
-   <datasource>java:/DefaultDS</datasource>
-   <type-mapping>Hypersonic SQL</type-mapping>
-   <debug>false</debug>
-
-   <default-entity>
-      <create-table>true</create-table>
-      <remove-table>false</remove-table>
-      <tuned-updates>true</tuned-updates>
-      <read-only>false</read-only>
-      <time-out>300</time-out>
-      <row-locking>false</row-locking>
-      <read-ahead>false</read-ahead>
-   </default-entity>
-
-   <type-mappings>
-      <type-mapping-definition>
-	 <name>InterBase</name>
-	 <mapping>
-	    <java-type>java.lang.Boolean</java-type>
-	    <jdbc-type>BIT</jdbc-type>
-	    <sql-type>SMALLINT</sql-type>
-	 </mapping>
-	 <mapping>
-	    <java-type>java.lang.Byte</java-type>
-	    <jdbc-type>TINYINT</jdbc-type>
-	    <sql-type>SMALLINT</sql-type>
-	 </mapping>
-	 <mapping>
-	    <java-type>java.lang.Short</java-type>
-	    <jdbc-type>SMALLINT</jdbc-type>
-	    <sql-type>SMALLINT</sql-type>
-	 </mapping>
-	 <mapping>
-	    <java-type>java.lang.Integer</java-type>
-	    <jdbc-type>INTEGER</jdbc-type>
-	    <sql-type>INTEGER</sql-type>
-	 </mapping>
-	 <mapping>
-	    <java-type>java.lang.Long</java-type>
-	    <jdbc-type>BIGINT</jdbc-type>
-	    <sql-type>NUMERIC(18,0)</sql-type>
-	 </mapping>
-	 <mapping>
-	    <java-type>java.lang.Float</java-type>
-	    <jdbc-type>REAL</jdbc-type>
-	    <sql-type>FLOAT</sql-type>
-	 </mapping>
-	 <mapping>
-	    <java-type>java.lang.Double</java-type>
-	    <jdbc-type>DOUBLE</jdbc-type>
-	    <sql-type>DOUBLE PRECISION</sql-type>
-	 </mapping>
-	 <mapping>
-	    <java-type>java.lang.Character</java-type>
-	    <jdbc-type>CHAR</jdbc-type>
-	    <sql-type>CHAR</sql-type>
-	 </mapping>
-	 <mapping>
-	    <java-type>java.lang.String</java-type>
-	    <jdbc-type>VARCHAR</jdbc-type>
-	    <sql-type>VARCHAR(64)</sql-type>
-	 </mapping>
-	 <mapping>
-	    <java-type>java.sql.Date</java-type>
-	    <jdbc-type>DATE</jdbc-type>
-	    <sql-type>DATE</sql-type>
-	 </mapping>
-	 <mapping>
-	    <java-type>java.sql.Time</java-type>
-	    <jdbc-type>TIME</jdbc-type>
-	    <sql-type>TIME</sql-type>
-	 </mapping>
-	 <mapping>
-	    <java-type>java.sql.Timestamp</java-type>
-	    <jdbc-type>TIMESTAMP</jdbc-type>
-	    <sql-type>TIMESTAMP</sql-type>
-	 </mapping>
-	 <mapping>
-	    <java-type>java.lang.Object</java-type>
-	    <jdbc-type>JAVA_OBJECT</jdbc-type>
-	    <sql-type>VARCHAR(2000)</sql-type>
-	 </mapping>
-      </type-mapping-definition>
-
-      <type-mapping-definition>
-	 <name>DB2</name>
-	 <mapping>
-	    <java-type>java.lang.Boolean</java-type>
-	    <jdbc-type>BIT</jdbc-type>
-	    <sql-type>SMALLINT</sql-type>
-	 </mapping>
-	 <!--  DB2 does not appear to support columns of type "byte"
-	 Regrettably, this means they'll be serialized.
-      <mapping>
-      <java-type>java.lang.Byte</java-type>
-      <jdbc-type>CHAR</jdbc-type>
-      <sql-type>CHAR(1) FOR BIT DATA</sql-type>
-      </mapping>
-	 -->
-	 <mapping>
-	    <java-type>java.lang.Short</java-type>
-	    <jdbc-type>SMALLINT</jdbc-type>
-	    <sql-type>SMALLINT</sql-type>
-	 </mapping>
-	 <mapping>
-	    <java-type>java.lang.Integer</java-type>
-	    <jdbc-type>INTEGER</jdbc-type>
-	    <sql-type>INTEGER</sql-type>
-	 </mapping>
-	 <mapping>
-	    <java-type>java.lang.Long</java-type>
-	    <jdbc-type>BIGINT</jdbc-type>
-	    <sql-type>BIGINT</sql-type>
-	 </mapping>
-	 <mapping>
-	    <java-type>java.lang.Float</java-type>
-	    <jdbc-type>REAL</jdbc-type>
-	    <sql-type>REAL</sql-type>
-	 </mapping>
-	 <mapping>
-	    <java-type>java.lang.Double</java-type>
-	    <jdbc-type>DOUBLE</jdbc-type>
-	    <sql-type>DOUBLE</sql-type>
-	 </mapping>
-	 <mapping>
-	    <java-type>java.lang.Character</java-type>
-	    <jdbc-type>CHAR</jdbc-type>
-	    <sql-type>CHAR</sql-type>
-	 </mapping>
-	 <mapping>
-	    <java-type>java.lang.String</java-type>
-	    <jdbc-type>VARCHAR</jdbc-type>
-	    <sql-type>VARCHAR(254)</sql-type>
-	 </mapping>
-	 <mapping>
-	    <java-type>java.sql.Date</java-type>
-	    <jdbc-type>DATE</jdbc-type>
-	    <sql-type>DATE</sql-type>
-	 </mapping>
-	 <mapping>
-	    <java-type>java.sql.Time</java-type>
-	    <jdbc-type>TIME</jdbc-type>
-	    <sql-type>TIME</sql-type>
-	 </mapping>
-	 <mapping>
-	    <java-type>java.sql.Timestamp</java-type>
-	    <jdbc-type>TIMESTAMP</jdbc-type>
-	    <sql-type>TIMESTAMP</sql-type>
-	 </mapping>
-	 <mapping>
-	    <java-type>java.lang.Object</java-type>
-	    <jdbc-type>JAVA_OBJECT</jdbc-type>
-	    <sql-type>BLOB(2000)</sql-type>
-	 </mapping>
-      </type-mapping-definition>
-
-      <type-mapping-definition>
-	 <name>Oracle8</name>
-	 <mapping>
-	    <java-type>java.lang.Boolean</java-type>
-	    <jdbc-type>BIT</jdbc-type>
-	    <sql-type>NUMBER(1)</sql-type>
-	 </mapping>
-	 <mapping>
-	    <java-type>java.lang.Byte</java-type>
-	    <jdbc-type>NUMERIC</jdbc-type>
-	    <sql-type>NUMBER(3)</sql-type>
-	 </mapping>
-	 <mapping>
-	    <java-type>java.lang.Short</java-type>
-	    <jdbc-type>NUMERIC</jdbc-type>
-	    <sql-type>NUMBER(5)</sql-type>
-	 </mapping>
-	 <mapping>
-	    <java-type>java.lang.Integer</java-type>
-	    <jdbc-type>INTEGER</jdbc-type>
-	    <sql-type>NUMBER(10)</sql-type>
-	 </mapping>
-	 <mapping>
-	    <java-type>java.lang.Long</java-type>
-	    <jdbc-type>BIGINT</jdbc-type>
-	    <sql-type>NUMBER(19)</sql-type>
-	 </mapping>
-	 <mapping>
-	    <java-type>java.lang.Float</java-type>
-	    <jdbc-type>REAL</jdbc-type>
-	    <sql-type>NUMBER(38,7)</sql-type>
-	 </mapping>
-	 <mapping>
-	    <java-type>java.math.BigDecimal</java-type>
-	    <jdbc-type>DECIMAL</jdbc-type>
-	    <sql-type>NUMBER(38,15)</sql-type>
-	 </mapping>
-	 <mapping>
-	    <java-type>java.lang.Double</java-type>
-	    <jdbc-type>DOUBLE</jdbc-type>
-	    <sql-type>NUMBER(38,15)</sql-type>
-	 </mapping>
-	 <mapping>
-	    <java-type>java.lang.Character</java-type>
-	    <jdbc-type>CHAR</jdbc-type>
-	    <sql-type>CHAR</sql-type>
-	 </mapping>
-	 <mapping>
-	    <java-type>java.lang.String</java-type>
-	    <jdbc-type>VARCHAR</jdbc-type>
-	    <sql-type>VARCHAR2(255)</sql-type>
-	 </mapping>
-	 <mapping>
-	    <java-type>java.sql.Date</java-type>
-	    <jdbc-type>DATE</jdbc-type>
-	    <sql-type>DATE</sql-type>
-	 </mapping>
-	 <mapping>
-	    <java-type>java.sql.Time</java-type>
-	    <jdbc-type>TIME</jdbc-type>
-	    <sql-type>DATE</sql-type>
-	 </mapping>
-	 <mapping>
-	    <java-type>java.sql.Timestamp</java-type>
-	    <jdbc-type>TIMESTAMP</jdbc-type>
-	    <sql-type>DATE</sql-type>
-	 </mapping>
-	 <mapping>
-	    <java-type>java.lang.Object</java-type>
-	    <jdbc-type>BLOB</jdbc-type>
-	    <sql-type>BLOB</sql-type>
-	    <!-- Change this from BLOB to RAW(255) if you know your
-	    serialized object will be <= 255 bytes -->
-	 </mapping>
-      </type-mapping-definition>
-
-      <type-mapping-definition>
-	 <name>Oracle7</name>
-	 <mapping>
-	    <java-type>java.lang.Boolean</java-type>
-	    <jdbc-type>BIT</jdbc-type>
-	    <sql-type>NUMBER(1)</sql-type>
-	 </mapping>
-	 <mapping>
-	    <java-type>java.lang.Byte</java-type>
-	    <jdbc-type>NUMERIC</jdbc-type>
-	    <sql-type>NUMBER(3)</sql-type>
-	 </mapping>
-	 <mapping>
-	    <java-type>java.lang.Short</java-type>
-	    <jdbc-type>NUMERIC</jdbc-type>
-	    <sql-type>NUMBER(5)</sql-type>
-	 </mapping>
-	 <mapping>
-	    <java-type>java.lang.Integer</java-type>
-	    <jdbc-type>INTEGER</jdbc-type>
-	    <sql-type>NUMBER(10)</sql-type>
-	 </mapping>
-	 <mapping>
-	    <java-type>java.lang.Long</java-type>
-	    <jdbc-type>BIGINT</jdbc-type>
-	    <sql-type>NUMBER(19)</sql-type>
-	 </mapping>
-	 <mapping>
-	    <java-type>java.lang.Float</java-type>
-	    <jdbc-type>REAL</jdbc-type>
-	    <sql-type>NUMBER(38,7)</sql-type>
-	 </mapping>
-	 <mapping>
-	    <java-type>java.lang.Double</java-type>
-	    <jdbc-type>DOUBLE</jdbc-type>
-	    <sql-type>NUMBER(38,15)</sql-type>
-	 </mapping>
-	 <mapping>
-	    <java-type>java.lang.Character</java-type>
-	    <jdbc-type>CHAR</jdbc-type>
-	    <sql-type>CHAR</sql-type>
-	 </mapping>
-	 <mapping>
-	    <java-type>java.lang.String</java-type>
-	    <jdbc-type>VARCHAR</jdbc-type>
-	    <sql-type>VARCHAR2(255)</sql-type>
-	 </mapping>
-	 <mapping>
-	    <java-type>java.sql.Date</java-type>
-	    <jdbc-type>DATE</jdbc-type>
-	    <sql-type>DATE</sql-type>
-	 </mapping>
-	 <mapping>
-	    <java-type>java.sql.Time</java-type>
-	    <jdbc-type>TIME</jdbc-type>
-	    <sql-type>DATE</sql-type>
-	 </mapping>
-	 <mapping>
-	    <java-type>java.sql.Timestamp</java-type>
-	    <jdbc-type>TIMESTAMP</jdbc-type>
-	    <sql-type>DATE</sql-type>
-	 </mapping>
-	 <mapping>
-	    <java-type>java.lang.Object</java-type>
-	    <jdbc-type>JAVA_OBJECT</jdbc-type>
-	    <sql-type>LONG RAW</sql-type>
-	    <!-- Change this from LONG RAW to RAW(255) if you know your
-	    serialized object will be <= 255 bytes -->
-	 </mapping>
-      </type-mapping-definition>
-
-      <type-mapping-definition>
-	 <name>Sybase</name>
-	 <mapping>
-	    <java-type>java.lang.Boolean</java-type>
-	    <jdbc-type>BIT</jdbc-type>
-	    <sql-type>BIT</sql-type>
-	 </mapping>
-	 <!-- Current Sybase JDBC drivers (jConnect 5.2) don't support
-	 byte or short.  Unfortunately they'll be serialized.
-      <mapping>
-      <java-type>java.lang.Byte</java-type>
-      <jdbc-type>TINYINT</jdbc-type>
-      <sql-type>TINYINT</sql-type>
-      </mapping>
-      <mapping>
-      <java-type>java.lang.Short</java-type>
-      <jdbc-type>SMALLINT</jdbc-type>
-      <sql-type>SMALLINT</sql-type>
-      </mapping>
-	 -->
-	 <mapping>
-	    <java-type>java.lang.Integer</java-type>
-	    <jdbc-type>INTEGER</jdbc-type>
-	    <sql-type>INTEGER</sql-type>
-	 </mapping>
-	 <mapping>
-	    <java-type>java.lang.Long</java-type>
-	    <jdbc-type>NUMERIC</jdbc-type>
-	    <sql-type>NUMERIC(38,0)</sql-type>
-	 </mapping>
-	 <mapping>
-	    <java-type>java.lang.Float</java-type>
-	    <jdbc-type>REAL</jdbc-type>
-	    <sql-type>REAL</sql-type>
-	 </mapping>
-	 <mapping>
-	    <java-type>java.lang.Double</java-type>
-	    <jdbc-type>DOUBLE</jdbc-type>
-	    <sql-type>DOUBLE PRECISION</sql-type>
-	 </mapping>
-	 <mapping>
-	    <java-type>java.lang.Character</java-type>
-	    <jdbc-type>CHAR</jdbc-type>
-	    <sql-type>CHAR</sql-type>
-	 </mapping>
-	 <mapping>
-	    <java-type>java.lang.String</java-type>
-	    <jdbc-type>VARCHAR</jdbc-type>
-	    <sql-type>VARCHAR(255)</sql-type>
-	 </mapping>
-	 <mapping>
-	    <java-type>java.sql.Date</java-type>
-	    <jdbc-type>DATE</jdbc-type>
-	    <sql-type>DATETIME</sql-type>
-	 </mapping>
-	 <mapping>
-	    <java-type>java.sql.Time</java-type>
-	    <jdbc-type>TIME</jdbc-type>
-	    <sql-type>SMALLDATETIME</sql-type>
-	 </mapping>
-	 <mapping>
-	    <java-type>java.sql.Timestamp</java-type>
-	    <jdbc-type>TIMESTAMP</jdbc-type>
-	    <sql-type>DATETIME</sql-type>
-	 </mapping>
-	 <mapping>
-	    <java-type>java.lang.Object</java-type>
-	    <jdbc-type>JAVA_OBJECT</jdbc-type>
-	    <sql-type>IMAGE</sql-type>
-	 </mapping>
-      </type-mapping-definition>
-
-      <type-mapping-definition>
-	 <name>PostgreSQL</name>
-	 <mapping>
-	    <java-type>java.lang.Boolean</java-type>
-	    <jdbc-type>CHAR</jdbc-type>
-	    <sql-type>BOOLEAN</sql-type>
-	 </mapping>
-	 <mapping>
-	    <java-type>java.lang.Byte</java-type>
-	    <jdbc-type>TINYINT</jdbc-type>
-	    <sql-type>INT2</sql-type>
-	 </mapping>
-	 <mapping>
-	    <java-type>java.lang.Short</java-type>
-	    <jdbc-type>SMALLINT</jdbc-type>
-	    <sql-type>INT2</sql-type>
-	 </mapping>
-	 <mapping>
-	    <java-type>java.lang.Integer</java-type>
-	    <jdbc-type>INTEGER</jdbc-type>
-	    <sql-type>INT4</sql-type>
-	 </mapping>
-	 <mapping>
-	    <java-type>java.lang.Long</java-type>
-	    <jdbc-type>BIGINT</jdbc-type>
-	    <sql-type>INT8</sql-type>
-	 </mapping>
-	 <mapping>
-	    <java-type>java.lang.Float</java-type>
-	    <jdbc-type>FLOAT</jdbc-type>
-	    <sql-type>FLOAT(7)</sql-type>
-	 </mapping>
-	 <mapping>
-	    <java-type>java.lang.Double</java-type>
-	    <jdbc-type>DOUBLE</jdbc-type>
-	    <sql-type>FLOAT8</sql-type>
-	 </mapping>
-	 <mapping>
-	    <java-type>java.lang.Character</java-type>
-	    <jdbc-type>CHAR</jdbc-type>
-	    <sql-type>CHAR(1)</sql-type>
-	 </mapping>
-	 <mapping>
-	    <java-type>java.lang.String</java-type>
-	    <jdbc-type>VARCHAR</jdbc-type>
-	    <sql-type>TEXT</sql-type>
-	 </mapping>
-	 <mapping>
-	    <java-type>java.sql.Date</java-type>
-	    <jdbc-type>DATE</jdbc-type>
-	    <sql-type>DATE</sql-type>
-	 </mapping>
-	 <mapping>
-	    <java-type>java.sql.Time</java-type>
-	    <jdbc-type>TIME</jdbc-type>
-	    <sql-type>TIME</sql-type>
-	 </mapping>
-	 <mapping>
-	    <java-type>java.sql.Timestamp</java-type>
-	    <jdbc-type>TIMESTAMP</jdbc-type>
-	    <sql-type>TIMESTAMP</sql-type>
-	 </mapping>
-	 <mapping>
-	    <java-type>java.lang.Object</java-type>
-	    <jdbc-type>JAVA_OBJECT</jdbc-type>
-	    <sql-type>OID</sql-type>
-	 </mapping>
-      </type-mapping-definition>
-
-      <type-mapping-definition>
-	 <name>PostgreSQL 7.2</name>
-	 <mapping>
-	    <java-type>java.lang.Boolean</java-type>
-	    <jdbc-type>CHAR</jdbc-type>
-	    <sql-type>BOOLEAN</sql-type>
-	 </mapping>
-	 <mapping>
-	    <java-type>java.lang.Byte</java-type>
-	    <jdbc-type>TINYINT</jdbc-type>
-	    <sql-type>INT2</sql-type>
-	 </mapping>
-	 <mapping>
-	    <java-type>java.lang.Short</java-type>
-	    <jdbc-type>SMALLINT</jdbc-type>
-	    <sql-type>INT2</sql-type>
-	 </mapping>
-	 <mapping>
-	    <java-type>java.lang.Integer</java-type>
-	    <jdbc-type>INTEGER</jdbc-type>
-	    <sql-type>INT4</sql-type>
-	 </mapping>
-	 <mapping>
-	    <java-type>java.lang.Long</java-type>
-	    <jdbc-type>BIGINT</jdbc-type>
-	    <sql-type>INT8</sql-type>
-	 </mapping>
-	 <mapping>
-	    <java-type>java.lang.Float</java-type>
-	    <jdbc-type>FLOAT</jdbc-type>
-	    <sql-type>FLOAT(7)</sql-type>
-	 </mapping>
-	 <mapping>
-	    <java-type>java.lang.Double</java-type>
-	    <jdbc-type>DOUBLE</jdbc-type>
-	    <sql-type>FLOAT8</sql-type>
-	 </mapping>
-	 <mapping>
-	    <java-type>java.lang.Character</java-type>
-	    <jdbc-type>CHAR</jdbc-type>
-	    <sql-type>CHAR(1)</sql-type>
-	 </mapping>
-	 <mapping>
-	    <java-type>java.lang.String</java-type>
-	    <jdbc-type>VARCHAR</jdbc-type>
-	    <sql-type>TEXT</sql-type>
-	 </mapping>
-	 <mapping>
-	    <java-type>java.sql.Date</java-type>
-	    <jdbc-type>DATE</jdbc-type>
-	    <sql-type>DATE</sql-type>
-	 </mapping>
-	 <mapping>
-	    <java-type>java.sql.Time</java-type>
-	    <jdbc-type>TIME</jdbc-type>
-	    <sql-type>TIME</sql-type>
-	 </mapping>
-	 <mapping>
-	    <java-type>java.sql.Timestamp</java-type>
-	    <jdbc-type>TIMESTAMP</jdbc-type>
-	    <sql-type>TIMESTAMP</sql-type>
-	 </mapping>
-	 <mapping>
-	    <java-type>java.lang.Object</java-type>
-	    <jdbc-type>JAVA_OBJECT</jdbc-type>
-	    <sql-type>OID</sql-type>
-	 </mapping>
-      </type-mapping-definition>
-      
-      <type-mapping-definition>
-	 <name>Hypersonic SQL</name>
-	 <mapping>
-	    <java-type>java.lang.Byte</java-type>
-	    <jdbc-type>SMALLINT</jdbc-type>
-	    <sql-type>SMALLINT</sql-type>
-	 </mapping>
-	 <mapping>
-	    <java-type>java.util.Date</java-type>
-	    <jdbc-type>DATE</jdbc-type>
-	    <sql-type>DATE</sql-type>
-	 </mapping>
-	 <mapping>
-	    <java-type>java.lang.Boolean</java-type>
-	    <jdbc-type>BIT</jdbc-type>
-	    <sql-type>BIT</sql-type>
-	 </mapping>
-	 <mapping>
-	    <java-type>java.lang.Integer</java-type>
-	    <jdbc-type>INTEGER</jdbc-type>
-	    <sql-type>INTEGER</sql-type>
-	 </mapping>
-	 <mapping>
-	    <java-type>java.lang.Object</java-type>
-	    <jdbc-type>JAVA_OBJECT</jdbc-type>
-	    <sql-type>OBJECT</sql-type>
-	 </mapping>
-	 <mapping>
-	    <java-type>java.lang.Short</java-type>
-	    <jdbc-type>SMALLINT</jdbc-type>
-	    <sql-type>SMALLINT</sql-type>
-	 </mapping>
-	 <mapping>
-	    <java-type>java.lang.Character</java-type>
-	    <jdbc-type>CHAR</jdbc-type>
-	    <sql-type>CHAR</sql-type>
-	 </mapping>
-	 <mapping>
-	    <java-type>java.lang.String</java-type>
-	    <jdbc-type>VARCHAR</jdbc-type>
-	    <sql-type>VARCHAR(256)</sql-type>
-	 </mapping>
-	 <mapping>
-	    <java-type>java.sql.Timestamp</java-type>
-	    <jdbc-type>TIMESTAMP</jdbc-type>
-	    <sql-type>TIMESTAMP</sql-type>
-	 </mapping>
-	 <mapping>
-	    <java-type>java.lang.Float</java-type>
-	    <jdbc-type>REAL</jdbc-type>
-	    <sql-type>REAL</sql-type>
-	 </mapping>
-	 <mapping>
-	    <java-type>java.lang.Long</java-type>
-	    <jdbc-type>BIGINT</jdbc-type>
-	    <sql-type>BIGINT</sql-type>
-	 </mapping>
-	 <mapping>
-	    <java-type>java.lang.Double</java-type>
-	    <jdbc-type>DOUBLE</jdbc-type>
-	    <sql-type>DOUBLE</sql-type>
-	 </mapping>
-      </type-mapping-definition>
-
-      <type-mapping-definition>
-	 <name>PointBase</name>
-	 <mapping>
-	    <java-type>java.lang.Character</java-type>
-	    <jdbc-type>CHAR</jdbc-type>
-	    <sql-type>CHAR</sql-type>
-	 </mapping>
-	 <mapping>
-	    <java-type>java.lang.Short</java-type>
-	    <jdbc-type>SMALLINT</jdbc-type>
-	    <sql-type>SMALLINT</sql-type>
-	 </mapping>
-	 <mapping>
-	    <java-type>java.lang.Long</java-type>
-	    <jdbc-type>BIGINT</jdbc-type>
-	    <sql-type>INTEGER</sql-type>
-	 </mapping>
-	 <mapping>
-	    <java-type>java.lang.Double</java-type>
-	    <jdbc-type>DOUBLE</jdbc-type>
-	    <sql-type>FLOAT</sql-type>
-	 </mapping>
-	 <mapping>
-	    <java-type>java.lang.Float</java-type>
-	    <jdbc-type>FLOAT</jdbc-type>
-	    <sql-type>FLOAT</sql-type>
-	 </mapping>
-	 <mapping>
-	    <java-type>java.lang.Boolean</java-type>
-	    <jdbc-type>BINARY</jdbc-type>
-	    <sql-type>BOOLEAN</sql-type>
-	 </mapping>
-	 <mapping>
-	    <java-type>java.lang.String</java-type>
-	    <jdbc-type>VARCHAR</jdbc-type>
-	    <sql-type>VARCHAR(256)</sql-type>
-	 </mapping>
-	 <mapping>
-	    <java-type>java.lang.Byte</java-type>
-	    <jdbc-type>SMALLINT</jdbc-type>
-	    <sql-type>SMALLINT</sql-type>
-	 </mapping>
-	 <mapping>
-	    <java-type>java.lang.Object</java-type>
-	    <jdbc-type>BLOB</jdbc-type>
-	    <sql-type>BLOB</sql-type>
-	 </mapping>
-	 <mapping>
-	    <java-type>java.lang.Integer</java-type>
-	    <jdbc-type>INTEGER</jdbc-type>
-	    <sql-type>INTEGER</sql-type>
-	 </mapping>
-      </type-mapping-definition>
-
-      <type-mapping-definition>
-	 <name>SOLID</name>
-	 <mapping>
-	    <java-type>java.lang.Character</java-type>
-	    <jdbc-type>CHAR</jdbc-type>
-	    <sql-type>CHAR</sql-type>
-	 </mapping>
-	 <mapping>
-	    <java-type>java.lang.Byte</java-type>
-	    <jdbc-type>TINYINT</jdbc-type>
-	    <sql-type>TINYINT</sql-type>
-	 </mapping>
-	 <mapping>
-	    <java-type>java.lang.Short</java-type>
-	    <jdbc-type>INTEGER</jdbc-type>
-	    <sql-type>INTEGER</sql-type>
-	 </mapping>
-	 <mapping>
-	    <java-type>java.lang.Double</java-type>
-	    <jdbc-type>DOUBLE</jdbc-type>
-	    <sql-type>DOUBLE</sql-type>
-	 </mapping>
-	 <mapping>
-	    <java-type>java.lang.Object</java-type>
-	    <jdbc-type>BLOB</jdbc-type>
-	    <sql-type>BLOB</sql-type>
-	 </mapping>
-	 <mapping>
-	    <java-type>java.lang.String</java-type>
-	    <jdbc-type>VARCHAR</jdbc-type>
-	    <sql-type>VARCHAR(256)</sql-type>
-	 </mapping>
-	 <mapping>
-	    <java-type>java.lang.Integer</java-type>
-	    <jdbc-type>INTEGER</jdbc-type>
-	    <sql-type>INTEGER</sql-type>
-	 </mapping>
-	 <mapping>
-	    <java-type>java.sql.Timestamp</java-type>
-	    <jdbc-type>TIMESTAMP</jdbc-type>
-	    <sql-type>TIMESTAMP</sql-type>
-	 </mapping>
-	 <mapping>
-	    <java-type>java.lang.Boolean</java-type>
-	    <jdbc-type>BIT</jdbc-type>
-	    <sql-type>BIT</sql-type>
-	 </mapping>
-	 <mapping>
-	    <java-type>java.lang.Float</java-type>
-	    <jdbc-type>FLOAT</jdbc-type>
-	    <sql-type>FLOAT</sql-type>
-	 </mapping>
-	 <mapping>
-	    <java-type>java.lang.Long</java-type>
-	    <jdbc-type>BIGINT</jdbc-type>
-	    <sql-type>BIGINT</sql-type>
-	 </mapping>
-	 <mapping>
-	    <java-type>java.util.Date</java-type>
-	    <jdbc-type>DATE</jdbc-type>
-	    <sql-type>DATE</sql-type>
-	 </mapping>
-      </type-mapping-definition>
-
-      <type-mapping-definition>
-	 <name>mySQL</name>
-	 <mapping>
-	    <java-type>java.lang.Float</java-type>
-	    <jdbc-type>FLOAT</jdbc-type>
-	    <sql-type>FLOAT</sql-type>
-	 </mapping>
-	 <mapping>
-	    <java-type>java.lang.Double</java-type>
-	    <jdbc-type>DOUBLE</jdbc-type>
-	    <sql-type>DOUBLE</sql-type>
-	 </mapping>
-	 <mapping>
-	    <java-type>java.lang.Boolean</java-type>
-	    <jdbc-type>TINYINT</jdbc-type>
-	    <sql-type>TINYINT</sql-type>
-	 </mapping>
-	 <mapping>
-	    <java-type>java.lang.Object</java-type>
-	    <jdbc-type>JAVA_OBJECT</jdbc-type>
-	    <sql-type>BLOB</sql-type>
-	 </mapping>
-	 <mapping>
-	    <java-type>java.lang.Integer</java-type>
-	    <jdbc-type>INTEGER</jdbc-type>
-	    <sql-type>INTEGER</sql-type>
-	 </mapping>
-	 <mapping>
-	    <java-type>java.lang.Short</java-type>
-	    <jdbc-type>SMALLINT</jdbc-type>
-	    <sql-type>SMALLINT</sql-type>
-	 </mapping>
-	 <mapping>
-	    <java-type>java.sql.Timestamp</java-type>
-	    <jdbc-type>TIMESTAMP</jdbc-type>
-	    <sql-type>TIMESTAMP</sql-type>
-	 </mapping>
-	 <mapping>
-	    <java-type>java.lang.Byte</java-type>
-	    <jdbc-type>TINYINT</jdbc-type>
-	    <sql-type>TINYINT</sql-type>
-	 </mapping>
-	 <mapping>
-	    <java-type>java.lang.Character</java-type>
-	    <jdbc-type>CHAR</jdbc-type>
-	    <sql-type>CHAR</sql-type>
-	 </mapping>
-	 <mapping>
-	    <java-type>java.lang.Long</java-type>
-	    <jdbc-type>BIGINT</jdbc-type>
-	    <sql-type>BIGINT</sql-type>
-	 </mapping>
-	 <mapping>
-	    <java-type>java.lang.String</java-type>
-	    <jdbc-type>VARCHAR</jdbc-type>
-	    <sql-type>VARCHAR(255) BINARY</sql-type>
-	 </mapping>
-	 <mapping>
-	    <java-type>java.util.Date</java-type>
-	    <jdbc-type>DATE</jdbc-type>
-	    <sql-type>DATETIME</sql-type>
-	 </mapping>
-	 <mapping>
-	    <java-type>java.sql.Date</java-type>
-	    <jdbc-type>DATE</jdbc-type>
-	    <sql-type>DATETIME</sql-type>
-	 </mapping>
-	 <mapping>
-	    <java-type>java.sql.Time</java-type>
-	    <jdbc-type>TIME</jdbc-type>
-	    <sql-type>BIGINT</sql-type>
-	 </mapping>
-      </type-mapping-definition>
-
-      <type-mapping-definition>
-	 <name>MS SQLSERVER</name>
-	 <mapping>
-	    <java-type>java.lang.Integer</java-type>
-	    <jdbc-type>INTEGER</jdbc-type>
-	    <sql-type>INTEGER</sql-type>
-	 </mapping>
-	 <mapping>
-	    <java-type>java.lang.Character</java-type>
-	    <jdbc-type>CHAR</jdbc-type>
-	    <sql-type>CHAR</sql-type>
-	 </mapping>
-	 <mapping>
-	    <java-type>java.lang.Short</java-type>
-	    <jdbc-type>SMALLINT</jdbc-type>
-	    <sql-type>SMALLINT</sql-type>
-	 </mapping>
-	 <mapping>
-	    <java-type>java.lang.Double</java-type>
-	    <jdbc-type>DOUBLE</jdbc-type>
-	    <sql-type>DOUBLE</sql-type>
-	 </mapping>
-	 <mapping>
-	    <java-type>java.lang.Long</java-type>
-	    <jdbc-type>DECIMAL</jdbc-type>
-	    <sql-type>DECIMAL(20)</sql-type>
-	 </mapping>
-	 <mapping>
-	    <java-type>java.math.BigDecimal</java-type>
-	    <jdbc-type>VARCHAR</jdbc-type>
-	    <sql-type>VARCHAR(256)</sql-type>
-	 </mapping>
-	 <mapping>
-	    <java-type>java.lang.String</java-type>
-	    <jdbc-type>VARCHAR</jdbc-type>
-	    <sql-type>VARCHAR(256)</sql-type>
-	 </mapping>
-	 <mapping>
-	    <java-type>java.lang.Object</java-type>
-	    <jdbc-type>JAVA_OBJECT</jdbc-type>
-	    <sql-type>IMAGE</sql-type>
-	 </mapping>
-	 <mapping>
-	    <java-type>java.lang.Byte</java-type>
-	    <jdbc-type>TINYINT</jdbc-type>
-	    <sql-type>TINYINT</sql-type>
-	 </mapping>
-	 <mapping>
-	    <java-type>java.sql.Timestamp</java-type>
-	    <jdbc-type>TIMESTAMP</jdbc-type>
-	    <sql-type>TIMESTAMP</sql-type>
-	 </mapping>
-	 <mapping>
-	    <java-type>java.sql.Date</java-type>
-	    <jdbc-type>DATE</jdbc-type>
-	    <sql-type>DATETIME</sql-type>
-	 </mapping>
-	 <mapping>
-	    <java-type>java.sql.Time</java-type>
-	    <jdbc-type>TIME</jdbc-type>
-	    <sql-type>DATETIME</sql-type>
-	 </mapping>
-	 <mapping>
-	    <java-type>java.util.Date</java-type>
-	    <jdbc-type>DATE</jdbc-type>
-	    <sql-type>DATETIME</sql-type>
-	 </mapping>
-	 <mapping>
-	    <java-type>java.lang.Boolean</java-type>
-	    <jdbc-type>BIT</jdbc-type>
-	    <sql-type>BIT</sql-type>
-	 </mapping>
-	 <mapping>
-	    <java-type>java.lang.Float</java-type>
-	    <jdbc-type>FLOAT</jdbc-type>
-	    <sql-type>FLOAT</sql-type>
-	 </mapping>
-      </type-mapping-definition>
-
-      <type-mapping-definition> 
-	 <name>MS SQLSERVER2000</name> 
-	 
-	 <mapping> 
-	    <java-type>java.lang.Integer</java-type> 
-	    <jdbc-type>INTEGER</jdbc-type> 
-	    <sql-type>INTEGER</sql-type> 
-	 </mapping> 
-	 
-	 <mapping> 
-	    <java-type>java.lang.Character</java-type> 
-	    <jdbc-type>CHAR</jdbc-type> 
-	    <sql-type>CHAR</sql-type> 
-	 </mapping> 
-	 
-	 <mapping> 
-	    <java-type>java.lang.Short</java-type> 
-	    <jdbc-type>SMALLINT</jdbc-type> 
-	    <sql-type>SMALLINT</sql-type> 
-	 </mapping> 
-	 
-	 <mapping> 
-	    <java-type>java.lang.Long</java-type> 
-	    <jdbc-type>BIGINT</jdbc-type> 
-	    <sql-type>BIGINT</sql-type> 
-	 </mapping> 
-	 
-	 <mapping> 
-	    <java-type>java.math.BigDecimal</java-type> 
-	    <jdbc-type>VARCHAR</jdbc-type> 
-	    <sql-type>VARCHAR(256)</sql-type> 
-	 </mapping> 
-	 
-	 <mapping> 
-	    <java-type>java.lang.String</java-type> 
-	    <jdbc-type>VARCHAR</jdbc-type> 
-	    <sql-type>VARCHAR(256)</sql-type> 
-	 </mapping> 
-	 
-	 <mapping> 
-	    <java-type>java.lang.Object</java-type> 
-	    <jdbc-type>JAVA_OBJECT</jdbc-type> 
-	    <sql-type>IMAGE</sql-type> 
-	 </mapping> 
-	 
-	 <mapping> 
-	    <java-type>java.lang.Byte</java-type> 
-	    <jdbc-type>TINYINT</jdbc-type> 
-	    <sql-type>TINYINT</sql-type> 
-	 </mapping> 
-	 
-	 <mapping> 
-	    <java-type>java.sql.Timestamp</java-type> 
-	    <jdbc-type>TIMESTAMP</jdbc-type> 
-	    <sql-type>TIMESTAMP</sql-type> 
-	 </mapping> 
-	 
-	 <mapping> 
-	    <java-type>java.sql.Date</java-type> 
-	    <jdbc-type>DATE</jdbc-type> 
-	    <sql-type>DATETIME</sql-type> 
-	 </mapping> 
-	 
-	 <mapping> 
-	    <java-type>java.sql.Time</java-type> 
-	    <jdbc-type>TIME</jdbc-type> 
-	    <sql-type>DATETIME</sql-type> 
-	 </mapping> 
-	 
-	 <mapping> 
-	    <java-type>java.util.Date</java-type> 
-	    <jdbc-type>DATE</jdbc-type> 
-	    <sql-type>DATETIME</sql-type> 
-	 </mapping> 
-	 
-	 <mapping> 
-	    <java-type>java.lang.Boolean</java-type> 
-	    <jdbc-type>BIT</jdbc-type> 
-	    <sql-type>BIT</sql-type> 
-	 </mapping> 
-	 
-	 <mapping> 
-	    <java-type>java.lang.Float</java-type> 
-	    <jdbc-type>REAL</jdbc-type> 
-	    <sql-type>REAL</sql-type> 
-	 </mapping> 
-	 
-	 <mapping> 
-	    <java-type>java.lang.Double</java-type> 
-	    <jdbc-type>DOUBLE</jdbc-type> 
-	    <sql-type>FLOAT</sql-type> 
-	 </mapping> 
-      </type-mapping-definition>
-      
-      <type-mapping-definition>
-	 <name>DB2/400</name>
-	 <mapping>
-	    <java-type>java.lang.Character</java-type>
-	    <jdbc-type>CHAR</jdbc-type>
-	    <sql-type>CHAR(1)</sql-type>
-	 </mapping>
-	 <mapping>
-	    <java-type>java.lang.String</java-type>
-	    <jdbc-type>VARCHAR</jdbc-type>
-	    <sql-type>VARCHAR(256)</sql-type>
-	 </mapping>
-	 <!-- Apparent DB2/400 doesn't handle Byte type either
-      <mapping>
-      <java-type>java.lang.Byte</java-type>
-      <jdbc-type>CHAR</jdbc-type>
-      <sql-type>CHAR(1) FOR BIT DATA</sql-type>
-      </mapping>
-	 -->
-	 <mapping>
-	    <java-type>java.util.Date</java-type>
-	    <jdbc-type>DATE</jdbc-type>
-	    <sql-type>DATE</sql-type>
-	 </mapping>
-	 <mapping>
-	    <java-type>java.sql.Time</java-type>
-	    <jdbc-type>TIME</jdbc-type>
-	    <sql-type>TIME</sql-type>
-	 </mapping>
-	 <mapping>
-	    <java-type>java.lang.Float</java-type>
-	    <jdbc-type>FLOAT</jdbc-type>
-	    <sql-type>FLOAT</sql-type>
-	 </mapping>
-	 <mapping>
-	    <java-type>java.lang.Integer</java-type>
-	    <jdbc-type>INTEGER</jdbc-type>
-	    <sql-type>INTEGER</sql-type>
-	 </mapping>
-	 <mapping>
-	    <java-type>java.lang.Double</java-type>
-	    <jdbc-type>DOUBLE</jdbc-type>
-	    <sql-type>DOUBLE</sql-type>
-	 </mapping>
-	 <mapping>
-	    <java-type>java.lang.Long</java-type>
-	    <jdbc-type>BIGINT</jdbc-type>
-	    <sql-type>INTEGER</sql-type>
-	 </mapping>
-	 <mapping>
-	    <java-type>java.lang.Boolean</java-type>
-	    <jdbc-type>CHAR</jdbc-type>
-	    <sql-type>CHAR(5)</sql-type>
-	 </mapping>
-	 <mapping>
-	    <java-type>java.lang.Short</java-type>
-	    <jdbc-type>SMALLINT</jdbc-type>
-	    <sql-type>SMALLINT</sql-type>
-	 </mapping>
-	 <mapping>
-	    <java-type>java.lang.Object</java-type>
-	    <jdbc-type>JAVA_OBJECT</jdbc-type>
-	    <sql-type>VARCHAR(4096) FOR BIT DATA</sql-type>
-	 </mapping>
-	 <mapping>
-	    <java-type>java.sql.Timestamp</java-type>
-	    <jdbc-type>TIMESTAMP</jdbc-type>
-	    <sql-type>TIMESTAMP</sql-type>
-	 </mapping>
-      </type-mapping-definition>
-
-      <type-mapping-definition>
-	 <name>SapDB</name>
-	 <mapping>
-	    <java-type>java.lang.Integer</java-type>
-	    <jdbc-type>INTEGER</jdbc-type>
-	    <sql-type>INTEGER</sql-type>
-	 </mapping>
-	 <mapping>
-	    <java-type>java.lang.Character</java-type>
-	    <jdbc-type>CHAR</jdbc-type>
-	    <sql-type>CHAR</sql-type>
-	 </mapping>
-	 <mapping>
-	    <java-type>java.lang.String</java-type>
-	    <jdbc-type>VARCHAR</jdbc-type>
-	    <sql-type>VARCHAR(256)</sql-type>
-	 </mapping>
-	 <mapping>
-	    <java-type>java.lang.Object</java-type>
-	    <jdbc-type>JAVA_OBJECT</jdbc-type>
-	    <sql-type>LONG BYTE</sql-type>
-	 </mapping>
-	 <mapping>
-	    <java-type>java.lang.Byte</java-type>
-	    <jdbc-type>TINYINT</jdbc-type>
-	    <sql-type>CHAR BYTE</sql-type>
-	 </mapping>
-	 <mapping>
-	    <java-type>java.sql.Timestamp</java-type>
-	    <jdbc-type>TIMESTAMP</jdbc-type>
-	    <sql-type>TIMESTAMP</sql-type>
-	 </mapping>
-	 <mapping>
-	    <java-type>java.util.Date</java-type>
-	    <jdbc-type>DATE</jdbc-type>
-	    <sql-type>DATE</sql-type>
-	 </mapping>
-	 <mapping>
-	    <java-type>java.sql.Time</java-type>
-	    <jdbc-type>TIME</jdbc-type>
-	    <sql-type>TIME</sql-type>
-	 </mapping>
-	 <mapping>
-	    <java-type>java.lang.Boolean</java-type>
-	    <jdbc-type>BIT</jdbc-type>
-	    <sql-type>BOOLEAN</sql-type>
-	 </mapping>
-	 <mapping>
-	    <java-type>java.lang.Float</java-type>
-	    <jdbc-type>FLOAT</jdbc-type>
-	    <sql-type>FLOAT</sql-type>
-	 </mapping>
-	 <mapping>
-	    <java-type>java.lang.Short</java-type>
-	    <jdbc-type>SMALLINT</jdbc-type>
-	    <sql-type>SMALLINT</sql-type>
-	 </mapping>
-	 <mapping>
-	    <java-type>java.lang.Double</java-type>
-	    <jdbc-type>DOUBLE</jdbc-type>
-	    <sql-type>DOUBLE PRECISION</sql-type>
-	 </mapping>
-	 <mapping>
-	    <java-type>java.lang.Long</java-type>
-	    <jdbc-type>DECIMAL</jdbc-type>
-	    <sql-type>DECIMAL(20)</sql-type>
-	 </mapping>
-      </type-mapping-definition>
-
-      <type-mapping-definition>
-	 <name>Cloudscape</name>
-	 <mapping>
-	    <java-type>java.math.BigDecimal</java-type>
-	    <jdbc-type>LONGVARCHAR</jdbc-type>
-	    <sql-type>LONG VARCHAR</sql-type>
-	 </mapping>
-	 <mapping>
-	    <java-type>java.lang.Boolean</java-type>
-	    <jdbc-type>BIT</jdbc-type>
-	    <sql-type>BOOLEAN</sql-type>
-	 </mapping>
-	 <mapping>
-	    <java-type>java.lang.Byte</java-type>
-	    <jdbc-type>TINYINT</jdbc-type>
-	    <sql-type>TINYINT</sql-type>
-	 </mapping>
-	 <mapping>
-	    <java-type>java.lang.Short</java-type>
-	    <jdbc-type>SMALLINT</jdbc-type>
-	    <sql-type>SMALLINT</sql-type>
-	 </mapping>
-	 <mapping>
-	    <java-type>java.lang.Integer</java-type>
-	    <jdbc-type>INTEGER</jdbc-type>
-	    <sql-type>INTEGER</sql-type>
-	 </mapping>
-	 <mapping>
-	    <java-type>java.lang.Long</java-type>
-	    <jdbc-type>BIGINT</jdbc-type>
-	    <sql-type>LONGINT</sql-type>
-	 </mapping>
-	 <mapping>
-	    <java-type>java.lang.Float</java-type>
-	    <jdbc-type>REAL</jdbc-type>
-	    <sql-type>REAL</sql-type>
-	 </mapping>
-	 <mapping>
-	    <java-type>java.lang.Double</java-type>
-	    <jdbc-type>DOUBLE</jdbc-type>
-	    <sql-type>DOUBLE PRECISION</sql-type>
-	 </mapping>
-	 <mapping>
-	    <java-type>java.lang.Character</java-type>
-	    <jdbc-type>CHAR</jdbc-type>
-	    <sql-type>CHAR</sql-type>
-	 </mapping>
-	 <mapping>
-	    <java-type>java.lang.String</java-type>
-	    <jdbc-type>LONGVARCHAR</jdbc-type>
-	    <sql-type>LONG VARCHAR</sql-type>
-	 </mapping>
-	 <mapping>
-	    <java-type>java.sql.Date</java-type>
-	    <jdbc-type>DATE</jdbc-type>
-	    <sql-type>DATE</sql-type>
-	 </mapping>
-	 <mapping>
-	    <java-type>java.sql.Time</java-type>
-	    <jdbc-type>TIME</jdbc-type>
-	    <sql-type>TIME</sql-type>
-	 </mapping>
-	 <mapping>
-	    <java-type>java.sql.Timestamp</java-type>
-	    <jdbc-type>TIMESTAMP</jdbc-type>
-	    <sql-type>TIMESTAMP</sql-type>
-	 </mapping>
-	 <mapping>
-	    <java-type>java.lang.Object</java-type>
-	    <jdbc-type>JAVA_OBJECT</jdbc-type>
-	    <sql-type>LONG VARBINARY</sql-type>
-	 </mapping>
-      </type-mapping-definition>
-
-      
-      <type-mapping-definition> 
-	 <name>InformixDB</name> 
-	 <mapping> 
-	    <java-type>java.lang.Character</java-type> 
-	    <jdbc-type>CHAR</jdbc-type> 
-	    <sql-type>CHAR(1)</sql-type> 
-	 </mapping> 
-	 
-	 <mapping> 
-	    <java-type>java.lang.String</java-type> 
-	    <jdbc-type>VARCHAR</jdbc-type> 
-	    <sql-type>VARCHAR(255,0)</sql-type> 
-	 </mapping> 
-	 
-	 <mapping> 
-	    <java-type>java.math.BigDecimal</java-type> 
-	    <jdbc-type>NUMERIC</jdbc-type> 
-	    <sql-type>DECIMAL</sql-type> 
-	 </mapping> 
-	 
-	 <mapping> 
-	    <java-type>java.lang.Boolean</java-type> 
-	    <jdbc-type>BIT</jdbc-type> 
-	    <sql-type>SMALLINT</sql-type> 
-	 </mapping> 
-	 
-	 <mapping> 
-	    <java-type>java.lang.Integer</java-type> 
-	    <jdbc-type>INTEGER</jdbc-type> 
-	    <sql-type>INTEGER</sql-type> 
-	 </mapping> 
-	 
-	 <mapping> 
-	    <java-type>java.lang.Long</java-type> 
-	    <jdbc-type>BIGINT</jdbc-type> 
-	    <sql-type>NUMERIC(18,0)</sql-type> 
-	 </mapping> 
-	 
-	 <mapping> 
-	    <java-type>java.lang.Float</java-type> 
-	    <jdbc-type>REAL</jdbc-type> 
-	    <sql-type>FLOAT</sql-type> 
-	 </mapping> 
-	 
-	 <mapping> 
-	    <java-type>java.lang.Double</java-type> 
-	    <jdbc-type>DOUBLE</jdbc-type> 
-	    <sql-type>DOUBLE PRECISION</sql-type> 
-	 </mapping> 
-	 
-	 <mapping> 
-	    <java-type>java.lang.Byte</java-type> 
-	    <jdbc-type>TINYINT</jdbc-type> 
-	    <sql-type>SMALLINT</sql-type> 
-	 </mapping> 
-	 
-	 <mapping> 
-	    <java-type>java.lang.Short</java-type> 
-	    <jdbc-type>SMALLINT</jdbc-type> 
-	    <sql-type>SMALLINT</sql-type> 
-	 </mapping> 
-	 
-	 <mapping> 
-	    <java-type>java.util.Date</java-type> 
-	    <jdbc-type>DATE</jdbc-type> 
-	    <sql-type>DATE</sql-type> 
-	 </mapping> 
-	 
-	 <mapping> 
-	    <java-type>java.sql.Date</java-type> 
-	    <jdbc-type>DATE</jdbc-type> 
-	    <sql-type>DATE</sql-type> 
-	 </mapping> 
-	 
-	 <mapping> 
-	    <java-type>java.sql.Time</java-type> 
-	    <jdbc-type>TIME</jdbc-type> 
-	    <sql-type>TIME</sql-type> 
-	 </mapping> 
-	 
-	 <mapping> 
-	    <java-type>java.sql.Timestamp</java-type> 
-	    <jdbc-type>TIMESTAMP</jdbc-type> 
-	    <sql-type>DATETIME YEAR TO FRACTION(3)</sql-type> 
-	 </mapping> 
-	 
-	 <mapping> 
-	    <java-type>java.lang.Object</java-type> 
-	    <jdbc-type>JAVA_OBJECT</jdbc-type> 
-	    <sql-type>BYTE</sql-type> 
-	 </mapping> 
-      </type-mapping-definition> 
-
-   </type-mappings>
-</jaws>
diff --git a/3.0.4/config/jboss/conf/standardjboss.xml b/3.0.4/config/jboss/conf/standardjboss.xml
deleted file mode 100644
index fdd3fc1..0000000
--- a/3.0.4/config/jboss/conf/standardjboss.xml
+++ /dev/null
@@ -1,992 +0,0 @@
-<?xml version = "1.0" encoding = "UTF-8"?>
-
-<!-- ===================================================================== -->
-<!--                                                                       -->
-<!--  Standard JBoss Configuration                                         -->
-<!--                                                                       -->
-<!-- ===================================================================== -->
-
-<!-- $Id$ -->
-<jboss>
-	<enforce-ejb-restrictions>false</enforce-ejb-restrictions>
-	<container-configurations>
-		<container-configuration>
-			<container-name>Standard CMP 2.x EntityBean</container-name>
-			<sync-on-commit-only>false</sync-on-commit-only>
-			<call-logging>false</call-logging>
-			<container-invoker>org.jboss.proxy.ejb.ProxyFactory</container-invoker>
-			<container-interceptors>
-				<interceptor>org.jboss.ejb.plugins.LogInterceptor</interceptor>
-				<interceptor>org.jboss.ejb.plugins.SecurityInterceptor</interceptor>
-				<interceptor>org.jboss.ejb.plugins.TxInterceptorCMT</interceptor>
-				<interceptor metricsEnabled = "true">org.jboss.ejb.plugins.MetricsInterceptor</interceptor>
-				<interceptor>org.jboss.ejb.plugins.EntityCreationInterceptor</interceptor>
-				<interceptor>org.jboss.ejb.plugins.EntityLockInterceptor</interceptor>
-				<interceptor>org.jboss.ejb.plugins.EntityInstanceInterceptor</interceptor>    
-				<interceptor>org.jboss.ejb.plugins.EntityReentranceInterceptor</interceptor>
-				<interceptor>org.jboss.resource.connectionmanager.CachedConnectionInterceptor</interceptor>
-                                <interceptor>org.jboss.ejb.plugins.EntitySynchronizationInterceptor</interceptor>
-				<interceptor>org.jboss.ejb.plugins.cmp.jdbc.JDBCRelationInterceptor</interceptor>
-			</container-interceptors>
-			<client-interceptors>
-				<home>
-					<interceptor>org.jboss.proxy.ejb.HomeInterceptor</interceptor>
-					<interceptor>org.jboss.proxy.SecurityInterceptor</interceptor>
-					<interceptor>org.jboss.proxy.TransactionInterceptor</interceptor>
-					<interceptor>org.jboss.invocation.InvokerInterceptor</interceptor>
-				</home>
-				<bean>
-					<interceptor>org.jboss.proxy.ejb.EntityInterceptor</interceptor>
-					<interceptor>org.jboss.proxy.SecurityInterceptor</interceptor>
-					<interceptor>org.jboss.proxy.TransactionInterceptor</interceptor>
-					<interceptor>org.jboss.invocation.InvokerInterceptor</interceptor>
-				</bean>
-				<list-entity>
-					<interceptor>org.jboss.proxy.ejb.ListEntityInterceptor</interceptor>
-					<interceptor>org.jboss.proxy.SecurityInterceptor</interceptor>
-					<interceptor>org.jboss.proxy.TransactionInterceptor</interceptor>
-					<interceptor>org.jboss.invocation.InvokerInterceptor</interceptor>
-				</list-entity>
-			</client-interceptors>
-			<instance-pool>org.jboss.ejb.plugins.EntityInstancePool</instance-pool>
-			<instance-cache>org.jboss.ejb.plugins.EntityInstanceCache</instance-cache>
-			<persistence-manager>org.jboss.ejb.plugins.cmp.jdbc.JDBCStoreManager</persistence-manager>
-			<transaction-manager>org.jboss.tm.TxManager</transaction-manager>
-			<locking-policy>org.jboss.ejb.plugins.lock.QueuedPessimisticEJBLock</locking-policy>
-			<container-cache-conf>
-				<cache-policy>org.jboss.ejb.plugins.LRUEnterpriseContextCachePolicy</cache-policy>
-				<cache-policy-conf>
-					<min-capacity>50</min-capacity>
-					<max-capacity>1000000</max-capacity>
-					<overager-period>300</overager-period>
-					<max-bean-age>600</max-bean-age>
-					<resizer-period>400</resizer-period>
-					<max-cache-miss-period>60</max-cache-miss-period>
-					<min-cache-miss-period>1</min-cache-miss-period>
-					<cache-load-factor>0.75</cache-load-factor>
-				</cache-policy-conf>
-			</container-cache-conf>
-			<container-pool-conf>
-				<MaximumSize>100</MaximumSize>
-			</container-pool-conf>
-			<commit-option>B</commit-option>
-		</container-configuration>
-		<container-configuration>
-			<container-name>Instance Per Transaction CMP 2.x EntityBean</container-name>
-			<call-logging>false</call-logging>
-			<sync-on-commit-only>false</sync-on-commit-only>
-			<container-invoker>org.jboss.proxy.ejb.ProxyFactory</container-invoker>
-			<container-interceptors>
-				<interceptor>org.jboss.ejb.plugins.LogInterceptor</interceptor>
-				<interceptor>org.jboss.ejb.plugins.SecurityInterceptor</interceptor>
-				<interceptor>org.jboss.ejb.plugins.TxInterceptorCMT</interceptor>
-				<interceptor metricsEnabled = "true">org.jboss.ejb.plugins.MetricsInterceptor</interceptor>
-				<interceptor>org.jboss.ejb.plugins.EntityCreationInterceptor</interceptor>
-				<interceptor>org.jboss.ejb.plugins.EntityLockInterceptor</interceptor>
-				<interceptor>org.jboss.ejb.plugins.EntityMultiInstanceInterceptor</interceptor>    
-				<interceptor>org.jboss.ejb.plugins.EntityReentranceInterceptor</interceptor>
-                                <interceptor>org.jboss.resource.connectionmanager.CachedConnectionInterceptor</interceptor>
-                                <interceptor>org.jboss.ejb.plugins.EntityMultiInstanceSynchronizationInterceptor</interceptor>
-				<interceptor>org.jboss.ejb.plugins.cmp.jdbc.JDBCRelationInterceptor</interceptor>
-			</container-interceptors>
-			<client-interceptors>
-				<home>
-					<interceptor>org.jboss.proxy.ejb.HomeInterceptor</interceptor>
-					<interceptor>org.jboss.proxy.SecurityInterceptor</interceptor>
-					<interceptor>org.jboss.proxy.TransactionInterceptor</interceptor>
-					<interceptor>org.jboss.invocation.InvokerInterceptor</interceptor>
-				</home>
-				<bean>
-					<interceptor>org.jboss.proxy.ejb.EntityInterceptor</interceptor>
-					<interceptor>org.jboss.proxy.SecurityInterceptor</interceptor>
-					<interceptor>org.jboss.proxy.TransactionInterceptor</interceptor>
-					<interceptor>org.jboss.invocation.InvokerInterceptor</interceptor>
-				</bean>
-				<list-entity>
-					<interceptor>org.jboss.proxy.ejb.ListEntityInterceptor</interceptor>
-					<interceptor>org.jboss.proxy.SecurityInterceptor</interceptor>
-					<interceptor>org.jboss.proxy.TransactionInterceptor</interceptor>
-					<interceptor>org.jboss.invocation.InvokerInterceptor</interceptor>
-				</list-entity>
-			</client-interceptors>
-			<instance-pool>org.jboss.ejb.plugins.EntityInstancePool</instance-pool>
-			<instance-cache>org.jboss.ejb.plugins.EntityInstanceCache</instance-cache>
-			<persistence-manager>org.jboss.ejb.plugins.cmp.jdbc.JDBCStoreManager</persistence-manager>
-			<transaction-manager>org.jboss.tm.TxManager</transaction-manager>
-			<locking-policy>org.jboss.ejb.plugins.lock.NoLock</locking-policy>
-			<container-cache-conf>
-				<cache-policy>org.jboss.ejb.plugins.LRUEnterpriseContextCachePolicy</cache-policy>
-				<cache-policy-conf>
-					<min-capacity>50</min-capacity>
-					<max-capacity>1000000</max-capacity>
-					<overager-period>300</overager-period>
-					<max-bean-age>600</max-bean-age>
-					<resizer-period>400</resizer-period>
-					<max-cache-miss-period>60</max-cache-miss-period>
-					<min-cache-miss-period>1</min-cache-miss-period>
-					<cache-load-factor>0.75</cache-load-factor>
-				</cache-policy-conf>
-			</container-cache-conf>
-			<container-pool-conf>
-				<MaximumSize>100</MaximumSize>
-			</container-pool-conf>
-			<commit-option>B</commit-option>
-		</container-configuration>
-		<container-configuration>
-			<container-name>Standard CMP EntityBean</container-name>
-			<call-logging>false</call-logging>
-			<sync-on-commit-only>false</sync-on-commit-only>
-			<container-invoker>org.jboss.proxy.ejb.ProxyFactory</container-invoker>
-			<container-interceptors>
-				<interceptor>org.jboss.ejb.plugins.LogInterceptor</interceptor>
-				<interceptor>org.jboss.ejb.plugins.SecurityInterceptor</interceptor>
-				<interceptor>org.jboss.ejb.plugins.TxInterceptorCMT</interceptor>
-				<interceptor metricsEnabled = "true">org.jboss.ejb.plugins.MetricsInterceptor</interceptor>
-				<interceptor>org.jboss.ejb.plugins.EntityCreationInterceptor</interceptor>
-				<interceptor>org.jboss.ejb.plugins.EntityLockInterceptor</interceptor>
-				<interceptor>org.jboss.ejb.plugins.EntityInstanceInterceptor</interceptor>    
-				<interceptor>org.jboss.ejb.plugins.EntityReentranceInterceptor</interceptor>
-                                <interceptor>org.jboss.resource.connectionmanager.CachedConnectionInterceptor</interceptor>
-                                <interceptor>org.jboss.ejb.plugins.EntitySynchronizationInterceptor</interceptor>
-			</container-interceptors>
-			<client-interceptors>
-				<home>
-					<interceptor>org.jboss.proxy.ejb.HomeInterceptor</interceptor>
-					<interceptor>org.jboss.proxy.SecurityInterceptor</interceptor>
-					<interceptor>org.jboss.proxy.TransactionInterceptor</interceptor>
-					<interceptor>org.jboss.invocation.InvokerInterceptor</interceptor>
-				</home>
-				<bean>
-					<interceptor>org.jboss.proxy.ejb.EntityInterceptor</interceptor>
-					<interceptor>org.jboss.proxy.SecurityInterceptor</interceptor>
-					<interceptor>org.jboss.proxy.TransactionInterceptor</interceptor>
-					<interceptor>org.jboss.invocation.InvokerInterceptor</interceptor>
-				</bean>
-				<list-entity>
-					<interceptor>org.jboss.proxy.ejb.ListEntityInterceptor</interceptor>
-					<interceptor>org.jboss.proxy.SecurityInterceptor</interceptor>
-					<interceptor>org.jboss.proxy.TransactionInterceptor</interceptor>
-					<interceptor>org.jboss.invocation.InvokerInterceptor</interceptor>
-				</list-entity>
-			</client-interceptors>
-			<instance-pool>org.jboss.ejb.plugins.EntityInstancePool</instance-pool>
-			<instance-cache>org.jboss.ejb.plugins.EntityInstanceCache</instance-cache>
-			<persistence-manager>org.jboss.ejb.plugins.jaws.JAWSPersistenceManager</persistence-manager>
-			<transaction-manager>org.jboss.tm.TxManager</transaction-manager>
-			<locking-policy>org.jboss.ejb.plugins.lock.QueuedPessimisticEJBLock</locking-policy>
-			<container-cache-conf>
-				<cache-policy>org.jboss.ejb.plugins.LRUEnterpriseContextCachePolicy</cache-policy>
-				<cache-policy-conf>
-					<min-capacity>50</min-capacity>
-					<max-capacity>1000000</max-capacity>
-					<overager-period>300</overager-period>
-					<max-bean-age>600</max-bean-age>
-					<resizer-period>400</resizer-period>
-					<max-cache-miss-period>60</max-cache-miss-period>
-					<min-cache-miss-period>1</min-cache-miss-period>
-					<cache-load-factor>0.75</cache-load-factor>
-				</cache-policy-conf>
-			</container-cache-conf>
-			<container-pool-conf>
-				<MaximumSize>100</MaximumSize>
-			</container-pool-conf>
-			<commit-option>A</commit-option>
-		</container-configuration>
-		<container-configuration>
-			<container-name>Instance Per Transaction CMP EntityBean</container-name>
-			<call-logging>false</call-logging>
-			<sync-on-commit-only>false</sync-on-commit-only>
-			<container-invoker>org.jboss.proxy.ejb.ProxyFactory</container-invoker>
-			<container-interceptors>
-				<interceptor>org.jboss.ejb.plugins.LogInterceptor</interceptor>
-				<interceptor>org.jboss.ejb.plugins.SecurityInterceptor</interceptor>
-				<interceptor>org.jboss.ejb.plugins.TxInterceptorCMT</interceptor>
-				<interceptor metricsEnabled = "true">org.jboss.ejb.plugins.MetricsInterceptor</interceptor>
-				<interceptor>org.jboss.ejb.plugins.EntityCreationInterceptor</interceptor>
-				<interceptor>org.jboss.ejb.plugins.EntityLockInterceptor</interceptor>
-				<interceptor>org.jboss.ejb.plugins.EntityMultiInstanceInterceptor</interceptor>    
-				<interceptor>org.jboss.ejb.plugins.EntityReentranceInterceptor</interceptor>
-                                <interceptor>org.jboss.resource.connectionmanager.CachedConnectionInterceptor</interceptor>
-                                <interceptor>org.jboss.ejb.plugins.EntityMultiInstanceSynchronizationInterceptor</interceptor>
-			</container-interceptors>
-			<client-interceptors>
-				<home>
-					<interceptor>org.jboss.proxy.ejb.HomeInterceptor</interceptor>
-					<interceptor>org.jboss.proxy.SecurityInterceptor</interceptor>
-					<interceptor>org.jboss.proxy.TransactionInterceptor</interceptor>
-					<interceptor>org.jboss.invocation.InvokerInterceptor</interceptor>
-				</home>
-				<bean>
-					<interceptor>org.jboss.proxy.ejb.EntityInterceptor</interceptor>
-					<interceptor>org.jboss.proxy.SecurityInterceptor</interceptor>
-					<interceptor>org.jboss.proxy.TransactionInterceptor</interceptor>
-					<interceptor>org.jboss.invocation.InvokerInterceptor</interceptor>
-				</bean>
-				<list-entity>
-					<interceptor>org.jboss.proxy.ejb.ListEntityInterceptor</interceptor>
-					<interceptor>org.jboss.proxy.SecurityInterceptor</interceptor>
-					<interceptor>org.jboss.proxy.TransactionInterceptor</interceptor>
-					<interceptor>org.jboss.invocation.InvokerInterceptor</interceptor>
-				</list-entity>
-			</client-interceptors>
-			<instance-pool>org.jboss.ejb.plugins.EntityInstancePool</instance-pool>
-			<instance-cache>org.jboss.ejb.plugins.EntityInstanceCache</instance-cache>
-			<persistence-manager>org.jboss.ejb.plugins.jaws.JAWSPersistenceManager</persistence-manager>
-			<transaction-manager>org.jboss.tm.TxManager</transaction-manager>
-			<locking-policy>org.jboss.ejb.plugins.lock.NoLock</locking-policy>
-			<container-cache-conf>
-				<cache-policy>org.jboss.ejb.plugins.LRUEnterpriseContextCachePolicy</cache-policy>
-				<cache-policy-conf>
-					<min-capacity>50</min-capacity>
-					<max-capacity>1000000</max-capacity>
-					<overager-period>300</overager-period>
-					<max-bean-age>600</max-bean-age>
-					<resizer-period>400</resizer-period>
-					<max-cache-miss-period>60</max-cache-miss-period>
-					<min-cache-miss-period>1</min-cache-miss-period>
-					<cache-load-factor>0.75</cache-load-factor>
-				</cache-policy-conf>
-			</container-cache-conf>
-			<container-pool-conf>
-				<MaximumSize>100</MaximumSize>
-			</container-pool-conf>
-			<commit-option>A</commit-option>
-		</container-configuration>
-		<container-configuration>
-			<container-name>Clustered CMP 2.x EntityBean</container-name>
-			<call-logging>false</call-logging>
-			<sync-on-commit-only>false</sync-on-commit-only>
-			<container-invoker>org.jboss.proxy.ejb.ProxyFactoryHA</container-invoker>
-			<container-interceptors>
-				<interceptor>org.jboss.ejb.plugins.LogInterceptor</interceptor>
-				<interceptor>org.jboss.ejb.plugins.CleanShutdownInterceptor</interceptor>
-				<interceptor>org.jboss.ejb.plugins.SecurityInterceptor</interceptor>
-				<interceptor>org.jboss.ejb.plugins.TxInterceptorCMT</interceptor>
-				<interceptor metricsEnabled = "true">org.jboss.ejb.plugins.MetricsInterceptor</interceptor>
-				<interceptor>org.jboss.ejb.plugins.EntityCreationInterceptor</interceptor>
-				<interceptor>org.jboss.ejb.plugins.EntityLockInterceptor</interceptor>
-				<interceptor>org.jboss.ejb.plugins.EntityInstanceInterceptor</interceptor>
-				<interceptor>org.jboss.ejb.plugins.EntityReentranceInterceptor</interceptor>
-                                <interceptor>org.jboss.resource.connectionmanager.CachedConnectionInterceptor</interceptor>
-                                <interceptor>org.jboss.ejb.plugins.EntitySynchronizationInterceptor</interceptor>
-				<interceptor>org.jboss.ejb.plugins.cmp.jdbc.JDBCRelationInterceptor</interceptor>
-			</container-interceptors>
-			<client-interceptors>
-				<home>
-					<interceptor>org.jboss.proxy.ejb.HomeInterceptor</interceptor>
-					<interceptor>org.jboss.proxy.SecurityInterceptor</interceptor>
-					<interceptor>org.jboss.proxy.TransactionInterceptor</interceptor>
-					<interceptor>org.jboss.invocation.InvokerInterceptor</interceptor>
-				</home>
-				<bean>
-					<interceptor>org.jboss.proxy.ejb.EntityInterceptor</interceptor>
-					<interceptor>org.jboss.proxy.SecurityInterceptor</interceptor>
-					<interceptor>org.jboss.proxy.TransactionInterceptor</interceptor>
-					<interceptor>org.jboss.invocation.InvokerInterceptor</interceptor>
-				</bean>
-				<list-entity>
-					<interceptor>org.jboss.proxy.ejb.ListEntityInterceptor</interceptor>
-					<interceptor>org.jboss.proxy.SecurityInterceptor</interceptor>
-					<interceptor>org.jboss.proxy.TransactionInterceptor</interceptor>
-					<interceptor>org.jboss.invocation.InvokerInterceptor</interceptor>
-				</list-entity>
-			</client-interceptors>
-			<instance-pool>org.jboss.ejb.plugins.EntityInstancePool</instance-pool>
-			<instance-cache>org.jboss.ejb.plugins.EntityInstanceCache</instance-cache>
-			<persistence-manager>org.jboss.ejb.plugins.cmp.jdbc.JDBCStoreManager</persistence-manager>
-			<transaction-manager>org.jboss.tm.TxManager</transaction-manager>
-			<locking-policy>org.jboss.ejb.plugins.lock.QueuedPessimisticEJBLock</locking-policy>
-			<container-cache-conf>
-				<cache-policy>org.jboss.ejb.plugins.LRUEnterpriseContextCachePolicy</cache-policy>
-				<cache-policy-conf>
-					<min-capacity>50</min-capacity>
-					<max-capacity>1000000</max-capacity>
-					<overager-period>300</overager-period>
-					<max-bean-age>600</max-bean-age>
-					<resizer-period>400</resizer-period>
-					<max-cache-miss-period>60</max-cache-miss-period>
-					<min-cache-miss-period>1</min-cache-miss-period>
-					<cache-load-factor>0.75</cache-load-factor>
-				</cache-policy-conf>
-			</container-cache-conf>
-			<container-pool-conf>
-				<MaximumSize>100</MaximumSize>
-			</container-pool-conf>
-			<commit-option>B</commit-option>
-		</container-configuration>
-		<container-configuration>
-			<container-name>Clustered CMP EntityBean</container-name>
-			<call-logging>false</call-logging>
-			<sync-on-commit-only>false</sync-on-commit-only>
-			<container-invoker>org.jboss.proxy.ejb.ProxyFactoryHA</container-invoker>
-			<container-interceptors>
-				<interceptor>org.jboss.ejb.plugins.LogInterceptor</interceptor>
-				<interceptor>org.jboss.ejb.plugins.CleanShutdownInterceptor</interceptor>
-				<interceptor>org.jboss.ejb.plugins.SecurityInterceptor</interceptor>
-				<interceptor>org.jboss.ejb.plugins.TxInterceptorCMT</interceptor>
-				<interceptor metricsEnabled = "true">org.jboss.ejb.plugins.MetricsInterceptor</interceptor>
-				<interceptor>org.jboss.ejb.plugins.EntityCreationInterceptor</interceptor>
-				<interceptor>org.jboss.ejb.plugins.EntityLockInterceptor</interceptor>
-				<interceptor>org.jboss.ejb.plugins.EntityInstanceInterceptor</interceptor>
-				<interceptor>org.jboss.ejb.plugins.EntityReentranceInterceptor</interceptor>
-                                <interceptor>org.jboss.resource.connectionmanager.CachedConnectionInterceptor</interceptor>
-                                <interceptor>org.jboss.ejb.plugins.EntitySynchronizationInterceptor</interceptor>
-			</container-interceptors>
-			<client-interceptors>
-				<home>
-					<interceptor>org.jboss.proxy.ejb.HomeInterceptor</interceptor>
-					<interceptor>org.jboss.proxy.SecurityInterceptor</interceptor>
-					<interceptor>org.jboss.proxy.TransactionInterceptor</interceptor>
-					<interceptor>org.jboss.invocation.InvokerInterceptor</interceptor>
-				</home>
-				<bean>
-					<interceptor>org.jboss.proxy.ejb.EntityInterceptor</interceptor>
-					<interceptor>org.jboss.proxy.SecurityInterceptor</interceptor>
-					<interceptor>org.jboss.proxy.TransactionInterceptor</interceptor>
-					<interceptor>org.jboss.invocation.InvokerInterceptor</interceptor>
-				</bean>
-				<list-entity>
-					<interceptor>org.jboss.proxy.ejb.ListEntityInterceptor</interceptor>
-					<interceptor>org.jboss.proxy.SecurityInterceptor</interceptor>
-					<interceptor>org.jboss.proxy.TransactionInterceptor</interceptor>
-					<interceptor>org.jboss.invocation.InvokerInterceptor</interceptor>
-				</list-entity>
-			</client-interceptors>
-			<instance-pool>org.jboss.ejb.plugins.EntityInstancePool</instance-pool>
-			<instance-cache>org.jboss.ejb.plugins.EntityInstanceCache</instance-cache>
-			<persistence-manager>org.jboss.ejb.plugins.jaws.JAWSPersistenceManager</persistence-manager>
-			<transaction-manager>org.jboss.tm.TxManager</transaction-manager>
-			<locking-policy>org.jboss.ejb.plugins.lock.QueuedPessimisticEJBLock</locking-policy>
-			<container-cache-conf>
-				<cache-policy>org.jboss.ejb.plugins.LRUEnterpriseContextCachePolicy</cache-policy>
-				<cache-policy-conf>
-					<min-capacity>50</min-capacity>
-					<max-capacity>1000000</max-capacity>
-					<overager-period>300</overager-period>
-					<max-bean-age>600</max-bean-age>
-					<resizer-period>400</resizer-period>
-					<max-cache-miss-period>60</max-cache-miss-period>
-					<min-cache-miss-period>1</min-cache-miss-period>
-					<cache-load-factor>0.75</cache-load-factor>
-				</cache-policy-conf>
-			</container-cache-conf>
-			<container-pool-conf>
-				<MaximumSize>100</MaximumSize>
-			</container-pool-conf>
-			<commit-option>B</commit-option>
-		</container-configuration>
-		<container-configuration>
-			<container-name>Standard Stateless SessionBean</container-name>
-			<call-logging>false</call-logging>
-			<container-invoker>org.jboss.proxy.ejb.ProxyFactory</container-invoker>
-			<container-interceptors>
-				<interceptor>org.jboss.ejb.plugins.LogInterceptor</interceptor>
-				<interceptor>org.jboss.ejb.plugins.SecurityInterceptor</interceptor>
-				<!-- CMT -->
-
-				<interceptor transaction = "Container">org.jboss.ejb.plugins.TxInterceptorCMT</interceptor>
-				<interceptor transaction = "Container" metricsEnabled = "true">org.jboss.ejb.plugins.MetricsInterceptor</interceptor>
-				<interceptor transaction = "Container">org.jboss.ejb.plugins.StatelessSessionInstanceInterceptor</interceptor>
-				<!-- BMT -->
-
-				<interceptor transaction = "Bean">org.jboss.ejb.plugins.StatelessSessionInstanceInterceptor</interceptor>
-				<interceptor transaction = "Bean">org.jboss.ejb.plugins.TxInterceptorBMT</interceptor>
-				<interceptor transaction = "Bean" metricsEnabled = "true">org.jboss.ejb.plugins.MetricsInterceptor</interceptor>    <interceptor>org.jboss.resource.connectionmanager.CachedConnectionInterceptor</interceptor>
-         </container-interceptors>
-			<client-interceptors>
-				<home>
-					<interceptor>org.jboss.proxy.ejb.HomeInterceptor</interceptor>
-					<interceptor>org.jboss.proxy.SecurityInterceptor</interceptor>
-					<interceptor>org.jboss.proxy.TransactionInterceptor</interceptor>
-					<interceptor>org.jboss.invocation.InvokerInterceptor</interceptor>
-				</home>
-				<bean>
-					<interceptor>org.jboss.proxy.ejb.StatelessSessionInterceptor</interceptor>
-					<interceptor>org.jboss.proxy.SecurityInterceptor</interceptor>
-					<interceptor>org.jboss.proxy.TransactionInterceptor</interceptor>
-					<interceptor>org.jboss.invocation.InvokerInterceptor</interceptor>
-				</bean>
-			</client-interceptors>
-			<instance-pool>org.jboss.ejb.plugins.StatelessSessionInstancePool</instance-pool>
-			<instance-cache/>
-			<persistence-manager/>
-			<transaction-manager>org.jboss.tm.TxManager</transaction-manager>
-			<container-pool-conf>
-				<MaximumSize>100</MaximumSize>
-			</container-pool-conf>
-		</container-configuration>
-		<container-configuration>
-			<container-name>Clustered Stateless SessionBean</container-name>
-			<call-logging>false</call-logging>
-			<container-invoker>org.jboss.proxy.ejb.ProxyFactoryHA</container-invoker>
-			<container-interceptors>
-				<interceptor>org.jboss.ejb.plugins.LogInterceptor</interceptor>
-				<interceptor>org.jboss.ejb.plugins.CleanShutdownInterceptor</interceptor>
-				<interceptor>org.jboss.ejb.plugins.SecurityInterceptor</interceptor>
-				<!-- CMT -->
-
-				<interceptor transaction = "Container">org.jboss.ejb.plugins.TxInterceptorCMT</interceptor>
-				<interceptor transaction = "Container" metricsEnabled = "true">org.jboss.ejb.plugins.MetricsInterceptor</interceptor>
-				<interceptor transaction = "Container">org.jboss.ejb.plugins.StatelessSessionInstanceInterceptor</interceptor>
-				<!-- BMT -->
-
-				<interceptor transaction = "Bean">org.jboss.ejb.plugins.StatelessSessionInstanceInterceptor</interceptor>
-				<interceptor transaction = "Bean">org.jboss.ejb.plugins.TxInterceptorBMT</interceptor>
-				<interceptor transaction = "Bean" metricsEnabled = "true">org.jboss.ejb.plugins.MetricsInterceptor</interceptor>    <interceptor>org.jboss.resource.connectionmanager.CachedConnectionInterceptor</interceptor>
-         </container-interceptors>
-			<client-interceptors>
-				<home>
-					<interceptor>org.jboss.proxy.ejb.HomeInterceptor</interceptor>
-					<interceptor>org.jboss.proxy.SecurityInterceptor</interceptor>
-					<interceptor>org.jboss.proxy.TransactionInterceptor</interceptor>
-					<interceptor>org.jboss.invocation.InvokerInterceptor</interceptor>
-				</home>
-				<bean>
-					<interceptor>org.jboss.proxy.ejb.StatelessSessionInterceptor</interceptor>
-					<interceptor>org.jboss.proxy.SecurityInterceptor</interceptor>
-					<interceptor>org.jboss.proxy.TransactionInterceptor</interceptor>
-					<interceptor>org.jboss.invocation.InvokerInterceptor</interceptor>
-				</bean>
-			</client-interceptors>
-			<instance-pool>org.jboss.ejb.plugins.StatelessSessionInstancePool</instance-pool>
-			<instance-cache/>
-			<persistence-manager/>
-			<transaction-manager>org.jboss.tm.TxManager</transaction-manager>
-			<container-pool-conf>
-				<MaximumSize>100</MaximumSize>
-			</container-pool-conf>
-		</container-configuration>
-		<container-configuration>
-			<container-name>Standard Stateful SessionBean</container-name>
-			<call-logging>false</call-logging>
-			<container-invoker>org.jboss.proxy.ejb.ProxyFactory</container-invoker>
-			<container-interceptors>
-				<interceptor>org.jboss.ejb.plugins.LogInterceptor</interceptor>
-				<!-- CMT -->
-
-				<interceptor transaction = "Container">org.jboss.ejb.plugins.TxInterceptorCMT</interceptor>
-				<interceptor transaction = "Container" metricsEnabled = "true">org.jboss.ejb.plugins.MetricsInterceptor</interceptor>
-				<interceptor transaction = "Container">org.jboss.ejb.plugins.StatefulSessionInstanceInterceptor</interceptor>
-				<!-- BMT -->
-
-				<interceptor transaction = "Bean">org.jboss.ejb.plugins.StatefulSessionInstanceInterceptor</interceptor>
-				<interceptor transaction = "Bean">org.jboss.ejb.plugins.TxInterceptorBMT</interceptor>
-				<interceptor transaction = "Bean" metricsEnabled = "true">org.jboss.ejb.plugins.MetricsInterceptor</interceptor>    <interceptor>org.jboss.resource.connectionmanager.CachedConnectionInterceptor</interceptor>
-            <interceptor>org.jboss.ejb.plugins.SecurityInterceptor</interceptor>
-			</container-interceptors>
-			<client-interceptors>
-				<home>
-					<interceptor>org.jboss.proxy.ejb.HomeInterceptor</interceptor>
-					<interceptor>org.jboss.proxy.SecurityInterceptor</interceptor>
-					<interceptor>org.jboss.proxy.TransactionInterceptor</interceptor>
-					<interceptor>org.jboss.invocation.InvokerInterceptor</interceptor>
-				</home>
-				<bean>
-					<interceptor>org.jboss.proxy.ejb.StatefulSessionInterceptor</interceptor>
-					<interceptor>org.jboss.proxy.SecurityInterceptor</interceptor>
-					<interceptor>org.jboss.proxy.TransactionInterceptor</interceptor>
-					<interceptor>org.jboss.invocation.InvokerInterceptor</interceptor>
-				</bean>
-			</client-interceptors>
-			<instance-cache>org.jboss.ejb.plugins.StatefulSessionInstanceCache</instance-cache>
-			<persistence-manager>org.jboss.ejb.plugins.StatefulSessionFilePersistenceManager</persistence-manager>
-			<transaction-manager>org.jboss.tm.TxManager</transaction-manager>
-			<container-cache-conf>
-				<cache-policy>org.jboss.ejb.plugins.LRUStatefulContextCachePolicy</cache-policy>
-				<cache-policy-conf>
-					<min-capacity>50</min-capacity>
-					<max-capacity>1000000</max-capacity>
-					<remover-period>1800</remover-period>
-					<max-bean-life>1800</max-bean-life>
-					<overager-period>300</overager-period>
-					<max-bean-age>600</max-bean-age>
-					<resizer-period>400</resizer-period>
-					<max-cache-miss-period>60</max-cache-miss-period>
-					<min-cache-miss-period>1</min-cache-miss-period>
-					<cache-load-factor>0.75</cache-load-factor>
-				</cache-policy-conf>
-			</container-cache-conf>
-			<container-pool-conf>
-				<MaximumSize>100</MaximumSize>
-			</container-pool-conf>
-		</container-configuration>
-		<container-configuration>
-			<container-name>Clustered Stateful SessionBean</container-name>
-			<call-logging>false</call-logging>
-			<container-invoker>org.jboss.proxy.ejb.ProxyFactoryHA</container-invoker>
-			<container-interceptors>
-				<interceptor>org.jboss.ejb.plugins.LogInterceptor</interceptor>
-				<interceptor>org.jboss.ejb.plugins.CleanShutdownInterceptor</interceptor>
-				<!-- CMT -->
-
-				<interceptor transaction = "Container">org.jboss.ejb.plugins.TxInterceptorCMT</interceptor>
-				<interceptor transaction = "Container" metricsEnabled = "true">org.jboss.ejb.plugins.MetricsInterceptor</interceptor>
-				<interceptor transaction = "Container">org.jboss.ejb.plugins.StatefulSessionInstanceInterceptor</interceptor>
-				<!-- BMT -->
-
-				<interceptor transaction = "Bean">org.jboss.ejb.plugins.StatefulSessionInstanceInterceptor</interceptor>
-				<interceptor transaction = "Bean">org.jboss.ejb.plugins.TxInterceptorBMT</interceptor>
-				<interceptor transaction = "Bean" metricsEnabled = "true">org.jboss.ejb.plugins.MetricsInterceptor</interceptor>
-				<interceptor>org.jboss.ejb.plugins.SecurityInterceptor</interceptor>    <interceptor>org.jboss.resource.connectionmanager.CachedConnectionInterceptor</interceptor>
-            <interceptor>org.jboss.ejb.plugins.StatefulHASessionSynchronisationInterceptor</interceptor>
-			</container-interceptors>
-			<client-interceptors>
-				<home>
-					<interceptor>org.jboss.proxy.ejb.HomeInterceptor</interceptor>
-					<interceptor>org.jboss.proxy.SecurityInterceptor</interceptor>
-					<interceptor>org.jboss.proxy.TransactionInterceptor</interceptor>
-					<interceptor>org.jboss.invocation.InvokerInterceptor</interceptor>
-				</home>
-				<bean>
-					<interceptor>org.jboss.proxy.ejb.StatefulSessionInterceptor</interceptor>
-					<interceptor>org.jboss.proxy.SecurityInterceptor</interceptor>
-					<interceptor>org.jboss.proxy.TransactionInterceptor</interceptor>
-					<interceptor>org.jboss.invocation.InvokerInterceptor</interceptor>
-				</bean>
-			</client-interceptors>
-			<instance-cache>org.jboss.ejb.plugins.StatefulSessionInstanceCache</instance-cache>
-			<persistence-manager>org.jboss.ejb.plugins.StatefulHASessionPersistenceManager</persistence-manager>
-			<transaction-manager>org.jboss.tm.TxManager</transaction-manager>
-			<container-cache-conf>
-				<cache-policy>org.jboss.ejb.plugins.LRUStatefulContextCachePolicy</cache-policy>
-				<cache-policy-conf>
-					<min-capacity>50</min-capacity>
-					<max-capacity>1000000</max-capacity>
-					<remover-period>1800</remover-period>
-					<max-bean-life>1800</max-bean-life>
-					<overager-period>300</overager-period>
-					<max-bean-age>600</max-bean-age>
-					<resizer-period>400</resizer-period>
-					<max-cache-miss-period>60</max-cache-miss-period>
-					<min-cache-miss-period>1</min-cache-miss-period>
-					<cache-load-factor>0.75</cache-load-factor>
-				</cache-policy-conf>
-			</container-cache-conf>
-			<container-pool-conf>
-				<MaximumSize>100</MaximumSize>
-			</container-pool-conf>
-		</container-configuration>
-		<container-configuration>
-			<container-name>Standard BMP EntityBean</container-name>
-			<call-logging>false</call-logging>
-			<sync-on-commit-only>false</sync-on-commit-only>
-			<container-invoker>org.jboss.proxy.ejb.ProxyFactory</container-invoker>
-			<container-interceptors>
-				<interceptor>org.jboss.ejb.plugins.LogInterceptor</interceptor>
-				<interceptor>org.jboss.ejb.plugins.SecurityInterceptor</interceptor>
-				<interceptor>org.jboss.ejb.plugins.TxInterceptorCMT</interceptor>
-				<interceptor metricsEnabled = "true">org.jboss.ejb.plugins.MetricsInterceptor</interceptor>
-				<interceptor>org.jboss.ejb.plugins.EntityCreationInterceptor</interceptor>
-				<interceptor>org.jboss.ejb.plugins.EntityLockInterceptor</interceptor>
-				<interceptor>org.jboss.ejb.plugins.EntityInstanceInterceptor</interceptor>
-				<interceptor>org.jboss.ejb.plugins.EntityReentranceInterceptor</interceptor>
-                                <interceptor>org.jboss.resource.connectionmanager.CachedConnectionInterceptor</interceptor>
-	                        <interceptor>org.jboss.ejb.plugins.EntitySynchronizationInterceptor</interceptor>
-			</container-interceptors>
-			<client-interceptors>
-				<home>
-					<interceptor>org.jboss.proxy.ejb.HomeInterceptor</interceptor>
-					<interceptor>org.jboss.proxy.SecurityInterceptor</interceptor>
-					<interceptor>org.jboss.proxy.TransactionInterceptor</interceptor>
-					<interceptor>org.jboss.invocation.InvokerInterceptor</interceptor>
-				</home>
-				<bean>
-					<interceptor>org.jboss.proxy.ejb.EntityInterceptor</interceptor>
-					<interceptor>org.jboss.proxy.SecurityInterceptor</interceptor>
-					<interceptor>org.jboss.proxy.TransactionInterceptor</interceptor>
-					<interceptor>org.jboss.invocation.InvokerInterceptor</interceptor>
-				</bean>
-				<list-entity>
-					<interceptor>org.jboss.proxy.ejb.ListEntityInterceptor</interceptor>
-					<interceptor>org.jboss.proxy.SecurityInterceptor</interceptor>
-					<interceptor>org.jboss.proxy.TransactionInterceptor</interceptor>
-					<interceptor>org.jboss.invocation.InvokerInterceptor</interceptor>
-				</list-entity>
-			</client-interceptors>
-			<instance-pool>org.jboss.ejb.plugins.EntityInstancePool</instance-pool>
-			<instance-cache>org.jboss.ejb.plugins.EntityInstanceCache</instance-cache>
-			<persistence-manager>org.jboss.ejb.plugins.BMPPersistenceManager</persistence-manager>
-			<transaction-manager>org.jboss.tm.TxManager</transaction-manager>
-			<locking-policy>org.jboss.ejb.plugins.lock.QueuedPessimisticEJBLock</locking-policy>
-			<container-cache-conf>
-				<cache-policy>org.jboss.ejb.plugins.LRUEnterpriseContextCachePolicy</cache-policy>
-				<cache-policy-conf>
-					<min-capacity>50</min-capacity>
-					<max-capacity>1000000</max-capacity>
-					<overager-period>300</overager-period>
-					<max-bean-age>600</max-bean-age>
-					<resizer-period>400</resizer-period>
-					<max-cache-miss-period>60</max-cache-miss-period>
-					<min-cache-miss-period>1</min-cache-miss-period>
-					<cache-load-factor>0.75</cache-load-factor>
-				</cache-policy-conf>
-			</container-cache-conf>
-			<container-pool-conf>
-				<MaximumSize>100</MaximumSize>
-			</container-pool-conf>
-			<commit-option>A</commit-option>
-		</container-configuration>
-		<container-configuration>
-			<container-name>Instance Per Transaction BMP EntityBean</container-name>
-			<call-logging>false</call-logging>
-			<sync-on-commit-only>false</sync-on-commit-only>
-			<container-invoker>org.jboss.proxy.ejb.ProxyFactory</container-invoker>
-			<container-interceptors>
-				<interceptor>org.jboss.ejb.plugins.LogInterceptor</interceptor>
-				<interceptor>org.jboss.ejb.plugins.SecurityInterceptor</interceptor>
-				<interceptor>org.jboss.ejb.plugins.TxInterceptorCMT</interceptor>
-				<interceptor metricsEnabled = "true">org.jboss.ejb.plugins.MetricsInterceptor</interceptor>
-				<interceptor>org.jboss.ejb.plugins.EntityCreationInterceptor</interceptor>
-				<interceptor>org.jboss.ejb.plugins.EntityLockInterceptor</interceptor>
-				<interceptor>org.jboss.ejb.plugins.EntityMultiInstanceInterceptor</interceptor>
-				<interceptor>org.jboss.ejb.plugins.EntityReentranceInterceptor</interceptor>
-                                <interceptor>org.jboss.resource.connectionmanager.CachedConnectionInterceptor</interceptor>
-                                <interceptor>org.jboss.ejb.plugins.EntityMultiInstanceSynchronizationInterceptor</interceptor>
-			</container-interceptors>
-			<client-interceptors>
-				<home>
-					<interceptor>org.jboss.proxy.ejb.HomeInterceptor</interceptor>
-					<interceptor>org.jboss.proxy.SecurityInterceptor</interceptor>
-					<interceptor>org.jboss.proxy.TransactionInterceptor</interceptor>
-					<interceptor>org.jboss.invocation.InvokerInterceptor</interceptor>
-				</home>
-				<bean>
-					<interceptor>org.jboss.proxy.ejb.EntityInterceptor</interceptor>
-					<interceptor>org.jboss.proxy.SecurityInterceptor</interceptor>
-					<interceptor>org.jboss.proxy.TransactionInterceptor</interceptor>
-					<interceptor>org.jboss.invocation.InvokerInterceptor</interceptor>
-				</bean>
-				<list-entity>
-					<interceptor>org.jboss.proxy.ejb.ListEntityInterceptor</interceptor>
-					<interceptor>org.jboss.proxy.SecurityInterceptor</interceptor>
-					<interceptor>org.jboss.proxy.TransactionInterceptor</interceptor>
-					<interceptor>org.jboss.invocation.InvokerInterceptor</interceptor>
-				</list-entity>
-			</client-interceptors>
-			<instance-pool>org.jboss.ejb.plugins.EntityInstancePool</instance-pool>
-			<instance-cache>org.jboss.ejb.plugins.EntityInstanceCache</instance-cache>
-			<persistence-manager>org.jboss.ejb.plugins.BMPPersistenceManager</persistence-manager>
-			<transaction-manager>org.jboss.tm.TxManager</transaction-manager>
-			<locking-policy>org.jboss.ejb.plugins.lock.NoLock</locking-policy>
-			<container-cache-conf>
-				<cache-policy>org.jboss.ejb.plugins.LRUEnterpriseContextCachePolicy</cache-policy>
-				<cache-policy-conf>
-					<min-capacity>50</min-capacity>
-					<max-capacity>1000000</max-capacity>
-					<overager-period>300</overager-period>
-					<max-bean-age>600</max-bean-age>
-					<resizer-period>400</resizer-period>
-					<max-cache-miss-period>60</max-cache-miss-period>
-					<min-cache-miss-period>1</min-cache-miss-period>
-					<cache-load-factor>0.75</cache-load-factor>
-				</cache-policy-conf>
-			</container-cache-conf>
-			<container-pool-conf>
-				<MaximumSize>100</MaximumSize>
-			</container-pool-conf>
-			<commit-option>B</commit-option>
-		</container-configuration>
-		<container-configuration>
-			<container-name>Clustered BMP EntityBean</container-name>
-			<call-logging>false</call-logging>
-			<sync-on-commit-only>false</sync-on-commit-only>
-			<container-invoker>org.jboss.proxy.ejb.ProxyFactoryHA</container-invoker>
-			<container-interceptors>
-				<interceptor>org.jboss.ejb.plugins.LogInterceptor</interceptor>
-				<interceptor>org.jboss.ejb.plugins.CleanShutdownInterceptor</interceptor>
-				<interceptor>org.jboss.ejb.plugins.SecurityInterceptor</interceptor>
-				<interceptor>org.jboss.ejb.plugins.TxInterceptorCMT</interceptor>
-				<interceptor metricsEnabled = "true">org.jboss.ejb.plugins.MetricsInterceptor</interceptor>
-				<interceptor>org.jboss.ejb.plugins.EntityCreationInterceptor</interceptor>
-				<interceptor>org.jboss.ejb.plugins.EntityLockInterceptor</interceptor>
-				<interceptor>org.jboss.ejb.plugins.EntityInstanceInterceptor</interceptor>
-				<interceptor>org.jboss.ejb.plugins.EntityReentranceInterceptor</interceptor>
-                                <interceptor>org.jboss.resource.connectionmanager.CachedConnectionInterceptor</interceptor>
-                                <interceptor>org.jboss.ejb.plugins.EntitySynchronizationInterceptor</interceptor>
-			</container-interceptors>
-			<client-interceptors>
-				<home>
-					<interceptor>org.jboss.proxy.ejb.HomeInterceptor</interceptor>
-					<interceptor>org.jboss.proxy.SecurityInterceptor</interceptor>
-					<interceptor>org.jboss.proxy.TransactionInterceptor</interceptor>
-					<interceptor>org.jboss.invocation.InvokerInterceptor</interceptor>
-				</home>
-				<bean>
-					<interceptor>org.jboss.proxy.ejb.EntityInterceptor</interceptor>
-					<interceptor>org.jboss.proxy.SecurityInterceptor</interceptor>
-					<interceptor>org.jboss.proxy.TransactionInterceptor</interceptor>
-					<interceptor>org.jboss.invocation.InvokerInterceptor</interceptor>
-				</bean>
-				<list-entity>
-					<interceptor>org.jboss.proxy.ejb.ListEntityInterceptor</interceptor>
-					<interceptor>org.jboss.proxy.SecurityInterceptor</interceptor>
-					<interceptor>org.jboss.proxy.TransactionInterceptor</interceptor>
-					<interceptor>org.jboss.invocation.InvokerInterceptor</interceptor>
-				</list-entity>
-			</client-interceptors>
-			<instance-pool>org.jboss.ejb.plugins.EntityInstancePool</instance-pool>
-			<instance-cache>org.jboss.ejb.plugins.EntityInstanceCache</instance-cache>
-			<persistence-manager>org.jboss.ejb.plugins.BMPPersistenceManager</persistence-manager>
-			<transaction-manager>org.jboss.tm.TxManager</transaction-manager>
-			<locking-policy>org.jboss.ejb.plugins.lock.QueuedPessimisticEJBLock</locking-policy>
-			<container-cache-conf>
-				<cache-policy>org.jboss.ejb.plugins.LRUEnterpriseContextCachePolicy</cache-policy>
-				<cache-policy-conf>
-					<min-capacity>50</min-capacity>
-					<max-capacity>1000000</max-capacity>
-					<overager-period>300</overager-period>
-					<max-bean-age>600</max-bean-age>
-					<resizer-period>400</resizer-period>
-					<max-cache-miss-period>60</max-cache-miss-period>
-					<min-cache-miss-period>1</min-cache-miss-period>
-					<cache-load-factor>0.75</cache-load-factor>
-				</cache-policy-conf>
-			</container-cache-conf>
-			<container-pool-conf>
-				<MaximumSize>100</MaximumSize>
-			</container-pool-conf>
-			<commit-option>B</commit-option>
-		</container-configuration>
-		<container-configuration>
-			<container-name>Standard Message Driven Bean</container-name>
-			<call-logging>false</call-logging>
-			<container-invoker>org.jboss.ejb.plugins.jms.JMSContainerInvoker</container-invoker>
-			<container-interceptors>
-				<interceptor>org.jboss.ejb.plugins.LogInterceptor</interceptor>
-				<interceptor>org.jboss.ejb.plugins.RunAsSecurityInterceptor</interceptor>
-				<!-- CMT -->
-
-				<interceptor transaction = "Container">org.jboss.ejb.plugins.TxInterceptorCMT</interceptor>
-				<interceptor transaction = "Container" metricsEnabled = "true">org.jboss.ejb.plugins.MetricsInterceptor</interceptor>
-				<interceptor transaction = "Container">org.jboss.ejb.plugins.MessageDrivenInstanceInterceptor</interceptor>
-				<!-- BMT -->
-
-				<interceptor transaction = "Bean">org.jboss.ejb.plugins.MessageDrivenInstanceInterceptor</interceptor>
-				<interceptor transaction = "Bean">org.jboss.ejb.plugins.MessageDrivenTxInterceptorBMT</interceptor>
-				<interceptor transaction = "Bean" metricsEnabled = "true">org.jboss.ejb.plugins.MetricsInterceptor</interceptor>    <interceptor>org.jboss.resource.connectionmanager.CachedConnectionInterceptor</interceptor>
-        </container-interceptors>
-			<client-interceptors>
-				<home>
-					<interceptor>org.jboss.proxy.ejb.HomeInterceptor</interceptor>
-					<interceptor>org.jboss.proxy.SecurityInterceptor</interceptor>
-					<interceptor>org.jboss.proxy.TransactionInterceptor</interceptor>
-					<interceptor>org.jboss.invocation.InvokerInterceptor</interceptor>
-				</home>
-				<bean>
-					<interceptor>new org.jboss.proxy.ejb.StatelessSessionInterceptor</interceptor>
-					<interceptor>org.jboss.proxy.SecurityInterceptor</interceptor>
-					<interceptor>org.jboss.proxy.TransactionInterceptor</interceptor>
-					<interceptor>org.jboss.invocation.InvokerInterceptor</interceptor>
-				</bean>
-			</client-interceptors>
-			<instance-pool>org.jboss.ejb.plugins.MessageDrivenInstancePool</instance-pool>
-			<instance-cache/>
-			<persistence-manager/>
-			<transaction-manager>org.jboss.tm.TxManager</transaction-manager>
-			<container-invoker-conf>
-				<JMSProviderAdapterJNDI>DefaultJMSProvider</JMSProviderAdapterJNDI>
-				<ServerSessionPoolFactoryJNDI>StdJMSPool</ServerSessionPoolFactoryJNDI>
-				<MaximumSize>15</MaximumSize>
-				<MaxMessages>1</MaxMessages>
-				<MDBConfig>
-					<ReconnectIntervalSec>10</ReconnectIntervalSec>
-					<DLQConfig>
-						<DestinationQueue>queue/DLQ</DestinationQueue>
-						<MaxTimesRedelivered>10</MaxTimesRedelivered>
-						<TimeToLive>0</TimeToLive>
-					</DLQConfig>
-				</MDBConfig>
-			</container-invoker-conf>
-			<container-pool-conf>
-				<MaximumSize>100</MaximumSize>
-			</container-pool-conf>
-		</container-configuration>
-		<container-configuration>
-			<container-name>IIOP CMP 2.x EntityBean</container-name>
-			<call-logging>false</call-logging>
-			<sync-on-commit-only>false</sync-on-commit-only>
-			<container-invoker>org.jboss.ejb.plugins.iiop.server.IIOPContainerInvoker</container-invoker>
-			<container-interceptors>
-				<interceptor>org.jboss.ejb.plugins.LogInterceptor</interceptor>
-				<interceptor>org.jboss.ejb.plugins.SecurityInterceptor</interceptor>
-				<interceptor>org.jboss.ejb.plugins.TxInterceptorCMT</interceptor>
-				<interceptor metricsEnabled = "true">org.jboss.ejb.plugins.MetricsInterceptor</interceptor>
-				<interceptor>org.jboss.ejb.plugins.EntityCreationInterceptor</interceptor>
-				<interceptor>org.jboss.ejb.plugins.EntityLockInterceptor</interceptor>
-				<interceptor>org.jboss.ejb.plugins.EntityInstanceInterceptor</interceptor>
-				<interceptor>org.jboss.ejb.plugins.EntityReentranceInterceptor</interceptor>
-				<interceptor>org.jboss.ejb.plugins.EntitySynchronizationInterceptor</interceptor>
-				<interceptor>org.jboss.ejb.plugins.cmp.jdbc.JDBCRelationInterceptor</interceptor>
-			</container-interceptors>
-			<instance-pool>org.jboss.ejb.plugins.EntityInstancePool</instance-pool>
-			<instance-cache>org.jboss.ejb.plugins.EntityInstanceCache</instance-cache>
-			<persistence-manager>org.jboss.ejb.plugins.cmp.jdbc.JDBCStoreManager</persistence-manager>
-			<transaction-manager>org.jboss.tm.TxManager</transaction-manager>
-			<web-class-loader>org.jboss.iiop.WebCL</web-class-loader>
-			<locking-policy>org.jboss.ejb.plugins.lock.QueuedPessimisticEJBLock</locking-policy>
-			<container-cache-conf>
-				<cache-policy>org.jboss.ejb.plugins.LRUEnterpriseContextCachePolicy</cache-policy>
-				<cache-policy-conf>
-					<min-capacity>50</min-capacity>
-					<max-capacity>1000000</max-capacity>
-					<overager-period>300</overager-period>
-					<max-bean-age>600</max-bean-age>
-					<resizer-period>400</resizer-period>
-					<max-cache-miss-period>60</max-cache-miss-period>
-					<min-cache-miss-period>1</min-cache-miss-period>
-					<cache-load-factor>0.75</cache-load-factor>
-				</cache-policy-conf>
-			</container-cache-conf>
-			<container-pool-conf>
-				<MaximumSize>100</MaximumSize>
-			</container-pool-conf>
-			<commit-option>B</commit-option>
-		</container-configuration>
-		<container-configuration>
-			<container-name>IIOP CMP EntityBean</container-name>
-			<call-logging>false</call-logging>
-			<sync-on-commit-only>false</sync-on-commit-only>
-			<container-invoker>org.jboss.ejb.plugins.iiop.server.IIOPContainerInvoker</container-invoker>
-			<container-interceptors>
-				<interceptor>org.jboss.ejb.plugins.LogInterceptor</interceptor>
-				<interceptor>org.jboss.ejb.plugins.SecurityInterceptor</interceptor>
-				<interceptor>org.jboss.ejb.plugins.TxInterceptorCMT</interceptor>
-				<interceptor metricsEnabled = "true">org.jboss.ejb.plugins.MetricsInterceptor</interceptor>
-				<interceptor>org.jboss.ejb.plugins.EntityCreationInterceptor</interceptor>
-				<interceptor>org.jboss.ejb.plugins.EntityLockInterceptor</interceptor>
-				<interceptor>org.jboss.ejb.plugins.EntityInstanceInterceptor</interceptor>
-				<interceptor>org.jboss.ejb.plugins.EntityReentranceInterceptor</interceptor>
-				<interceptor>org.jboss.ejb.plugins.EntitySynchronizationInterceptor</interceptor>
-			</container-interceptors>
-			<instance-pool>org.jboss.ejb.plugins.EntityInstancePool</instance-pool>
-			<instance-cache>org.jboss.ejb.plugins.EntityInstanceCache</instance-cache>
-			<persistence-manager>org.jboss.ejb.plugins.jaws.JAWSPersistenceManager</persistence-manager>
-			<transaction-manager>org.jboss.tm.TxManager</transaction-manager>
-			<web-class-loader>org.jboss.iiop.WebCL</web-class-loader>
-			<locking-policy>org.jboss.ejb.plugins.lock.QueuedPessimisticEJBLock</locking-policy>
-			<container-cache-conf>
-				<cache-policy>org.jboss.ejb.plugins.LRUEnterpriseContextCachePolicy</cache-policy>
-				<cache-policy-conf>
-					<min-capacity>50</min-capacity>
-					<max-capacity>1000000</max-capacity>
-					<overager-period>300</overager-period>
-					<max-bean-age>600</max-bean-age>
-					<resizer-period>400</resizer-period>
-					<max-cache-miss-period>60</max-cache-miss-period>
-					<min-cache-miss-period>1</min-cache-miss-period>
-					<cache-load-factor>0.75</cache-load-factor>
-				</cache-policy-conf>
-			</container-cache-conf>
-			<container-pool-conf>
-				<MaximumSize>100</MaximumSize>
-			</container-pool-conf>
-			<commit-option>A</commit-option>
-		</container-configuration>
-		<container-configuration>
-			<container-name>IIOP Stateless SessionBean</container-name>
-			<call-logging>false</call-logging>
-			<container-invoker>org.jboss.ejb.plugins.iiop.server.IIOPContainerInvoker</container-invoker>
-			<container-interceptors>
-				<interceptor>org.jboss.ejb.plugins.LogInterceptor</interceptor>
-				<interceptor>org.jboss.ejb.plugins.SecurityInterceptor</interceptor>
-				<!-- CMT -->
-				<interceptor transaction = "Container">org.jboss.ejb.plugins.TxInterceptorCMT</interceptor>
-				<interceptor transaction = "Container" metricsEnabled = "true">org.jboss.ejb.plugins.MetricsInterceptor</interceptor>
-				<interceptor transaction = "Container">org.jboss.ejb.plugins.StatelessSessionInstanceInterceptor</interceptor>
-				<!-- BMT -->
-				<interceptor transaction = "Bean">org.jboss.ejb.plugins.StatelessSessionInstanceInterceptor</interceptor>
-				<interceptor transaction = "Bean">org.jboss.ejb.plugins.TxInterceptorBMT</interceptor>
-				<interceptor transaction = "Bean" metricsEnabled = "true">org.jboss.ejb.plugins.MetricsInterceptor</interceptor>
-			</container-interceptors>
-			<instance-pool>org.jboss.ejb.plugins.StatelessSessionInstancePool</instance-pool>
-			<instance-cache/>
-			<persistence-manager/>
-			<transaction-manager>org.jboss.tm.TxManager</transaction-manager>
-			<web-class-loader>org.jboss.iiop.WebCL</web-class-loader>
-			<container-pool-conf>
-				<MaximumSize>100</MaximumSize>
-			</container-pool-conf>
-		</container-configuration>
-		<container-configuration>
-			<container-name>IIOP Stateful SessionBean</container-name>
-			<call-logging>false</call-logging>
-			<container-invoker>org.jboss.ejb.plugins.iiop.server.IIOPContainerInvoker</container-invoker>
-			<container-interceptors>
-				<interceptor>org.jboss.ejb.plugins.LogInterceptor</interceptor>
-				<!-- CMT -->
-
-				<interceptor transaction = "Container">org.jboss.ejb.plugins.TxInterceptorCMT</interceptor>
-				<interceptor transaction = "Container" metricsEnabled = "true">org.jboss.ejb.plugins.MetricsInterceptor</interceptor>
-				<interceptor transaction = "Container">org.jboss.ejb.plugins.StatefulSessionInstanceInterceptor</interceptor>
-				<!-- BMT -->
-
-				<interceptor transaction = "Bean">org.jboss.ejb.plugins.StatefulSessionInstanceInterceptor</interceptor>
-				<interceptor transaction = "Bean">org.jboss.ejb.plugins.TxInterceptorBMT</interceptor>
-				<interceptor transaction = "Bean" metricsEnabled = "true">org.jboss.ejb.plugins.MetricsInterceptor</interceptor>
-				<interceptor>org.jboss.ejb.plugins.SecurityInterceptor</interceptor>
-			</container-interceptors>
-			<instance-cache>org.jboss.ejb.plugins.StatefulSessionInstanceCache</instance-cache>
-			<persistence-manager>org.jboss.ejb.plugins.StatefulSessionFilePersistenceManager</persistence-manager>
-			<transaction-manager>org.jboss.tm.TxManager</transaction-manager>
-			<web-class-loader>org.jboss.iiop.WebCL</web-class-loader>
-			<container-cache-conf>
-				<cache-policy>org.jboss.ejb.plugins.LRUStatefulContextCachePolicy</cache-policy>
-				<cache-policy-conf>
-					<min-capacity>50</min-capacity>
-					<max-capacity>1000000</max-capacity>
-					<remover-period>1800</remover-period>
-					<max-bean-life>1800</max-bean-life>
-					<overager-period>300</overager-period>
-					<max-bean-age>600</max-bean-age>
-					<resizer-period>400</resizer-period>
-					<max-cache-miss-period>60</max-cache-miss-period>
-					<min-cache-miss-period>1</min-cache-miss-period>
-					<cache-load-factor>0.75</cache-load-factor>
-				</cache-policy-conf>
-			</container-cache-conf>
-			<container-pool-conf>
-				<MaximumSize>100</MaximumSize>
-			</container-pool-conf>
-		</container-configuration>
-		<container-configuration>
-			<container-name>IIOP BMP EntityBean</container-name>
-			<call-logging>false</call-logging>
-			<sync-on-commit-only>false</sync-on-commit-only>
-			<container-invoker>org.jboss.ejb.plugins.iiop.server.IIOPContainerInvoker</container-invoker>
-			<container-interceptors>
-				<interceptor>org.jboss.ejb.plugins.LogInterceptor</interceptor>
-				<interceptor>org.jboss.ejb.plugins.SecurityInterceptor</interceptor>
-				<interceptor>org.jboss.ejb.plugins.TxInterceptorCMT</interceptor>
-				<interceptor metricsEnabled = "true">org.jboss.ejb.plugins.MetricsInterceptor</interceptor>
-				<interceptor>org.jboss.ejb.plugins.EntityCreationInterceptor</interceptor>
-				<interceptor>org.jboss.ejb.plugins.EntityLockInterceptor</interceptor>
-				<interceptor>org.jboss.ejb.plugins.EntityInstanceInterceptor</interceptor>
-				<interceptor>org.jboss.ejb.plugins.EntityReentranceInterceptor</interceptor>
-				<interceptor>org.jboss.ejb.plugins.EntitySynchronizationInterceptor</interceptor>
-			</container-interceptors>
-			<instance-pool>org.jboss.ejb.plugins.EntityInstancePool</instance-pool>
-			<instance-cache>org.jboss.ejb.plugins.EntityInstanceCache</instance-cache>
-			<persistence-manager>org.jboss.ejb.plugins.BMPPersistenceManager</persistence-manager>
-			<transaction-manager>org.jboss.tm.TxManager</transaction-manager>
-			<web-class-loader>org.jboss.iiop.WebCL</web-class-loader>
-			<locking-policy>org.jboss.ejb.plugins.lock.QueuedPessimisticEJBLock</locking-policy>
-			<container-cache-conf>
-				<cache-policy>org.jboss.ejb.plugins.LRUEnterpriseContextCachePolicy</cache-policy>
-				<cache-policy-conf>
-					<min-capacity>50</min-capacity>
-					<max-capacity>1000000</max-capacity>
-					<overager-period>300</overager-period>
-					<max-bean-age>600</max-bean-age>
-					<resizer-period>400</resizer-period>
-					<max-cache-miss-period>60</max-cache-miss-period>
-					<min-cache-miss-period>1</min-cache-miss-period>
-					<cache-load-factor>0.75</cache-load-factor>
-				</cache-policy-conf>
-			</container-cache-conf>
-			<container-pool-conf>
-				<MaximumSize>100</MaximumSize>
-			</container-pool-conf>
-			<commit-option>A</commit-option>
-		</container-configuration>
-	</container-configurations>
-</jboss>
diff --git a/3.0.4/config/jboss/conf/standardjbosscmp-jdbc.xml b/3.0.4/config/jboss/conf/standardjbosscmp-jdbc.xml
deleted file mode 100644
index 8bc80b7..0000000
--- a/3.0.4/config/jboss/conf/standardjbosscmp-jdbc.xml
+++ /dev/null
@@ -1,2005 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE jbosscmp-jdbc>
-
-<!-- ===================================================================== -->
-<!--                                                                       -->
-<!--  Standard JBossCMP-JDBC Configuration                                 -->
-<!--                                                                       -->
-<!-- ===================================================================== -->
-
-<!-- $Id$ -->
-
-<jbosscmp-jdbc>
-   
-   <defaults>
-      <datasource>java:/DefaultDS</datasource>
-      <datasource-mapping>Hypersonic SQL</datasource-mapping>
-      
-      <create-table>true</create-table>
-      <remove-table>false</remove-table>
-      <read-only>false</read-only>
-      <time-out>300</time-out>
-      <pk-constraint>true</pk-constraint>
-      <fk-constraint>false</fk-constraint>
-      <row-locking>false</row-locking>
-      <preferred-relation-mapping>foreign-key</preferred-relation-mapping>
-      <read-ahead>
-      <strategy>on-load</strategy>
-      <page-size>1000</page-size>
-      <eager-load-group>*</eager-load-group>
-      </read-ahead>
-      <list-cache-max>1000</list-cache-max>
-   </defaults>
-
-   <type-mappings>
-     <type-mapping>
-      <name>McKoi</name>
-      <row-locking-template>SELECT ?1 FROM ?2 WHERE ?3 FOR UPDATE</row-locking-template>
-      <pk-constraint-template>CONSTRAINT ?1 PRIMARY KEY (?2)</pk-constraint-template>
-      <fk-constraint-template>ALTER TABLE ?1 ADD CONSTRAINT ?2 FOREIGN KEY (?3) REFERENCES ?4 (?5)</fk-constraint-template>
-      <alias-header-prefix>t</alias-header-prefix>
-      <alias-header-suffix>_</alias-header-suffix>
-      <alias-max-length>32</alias-max-length>
-      <subquery-supported>true</subquery-supported>
-      <true-mapping>TRUE</true-mapping>
-      <false-mapping>FALSE</false-mapping>
-
-      <mapping>
-         <java-type>java.lang.Boolean</java-type>
-         <jdbc-type>BIT</jdbc-type>
-         <sql-type>BOOLEAN</sql-type>
-      </mapping>
-      <mapping>
-         <java-type>java.lang.Byte</java-type>
-         <jdbc-type>TINYINT</jdbc-type>
-         <sql-type>SMALLINT</sql-type>
-      </mapping>
-      <mapping>
-         <java-type>java.lang.Short</java-type>
-         <jdbc-type>SMALLINT</jdbc-type>
-         <sql-type>SMALLINT</sql-type>
-      </mapping>
-      <mapping>
-         <java-type>java.lang.Integer</java-type>
-         <jdbc-type>INTEGER</jdbc-type>
-         <sql-type>INTEGER</sql-type>
-      </mapping>
-      <mapping>
-         <java-type>java.lang.Long</java-type>
-         <jdbc-type>BIGINT</jdbc-type>
-         <sql-type>BIGINT</sql-type>
-      </mapping>
-      <mapping>
-         <java-type>java.lang.Float</java-type>
-         <jdbc-type>REAL</jdbc-type>
-         <sql-type>FLOAT</sql-type>
-      </mapping>
-      <mapping>
-         <java-type>java.lang.Double</java-type>
-         <jdbc-type>DOUBLE</jdbc-type>
-         <sql-type>DOUBLE</sql-type>
-      </mapping>
-      <mapping>
-         <java-type>java.lang.Character</java-type>
-         <jdbc-type>CHAR</jdbc-type>
-         <sql-type>CHAR</sql-type>
-      </mapping>
-      <mapping>
-         <java-type>java.lang.String</java-type>
-         <jdbc-type>VARCHAR</jdbc-type>
-         <sql-type>VARCHAR(64)</sql-type>
-      </mapping>
-      <mapping>
-         <java-type>java.sql.Date</java-type>
-         <jdbc-type>DATE</jdbc-type>
-         <sql-type>DATE</sql-type>
-      </mapping>
-      <mapping>
-         <java-type>java.sql.Time</java-type>
-         <jdbc-type>TIME</jdbc-type>
-         <sql-type>TIME</sql-type>
-      </mapping>
-      <mapping>
-         <java-type>java.sql.Timestamp</java-type>
-         <jdbc-type>TIMESTAMP</jdbc-type>
-         <sql-type>TIMESTAMP</sql-type>
-      </mapping>
-      <mapping>
-         <java-type>java.lang.Object</java-type>
-         <jdbc-type>JAVA_OBJECT</jdbc-type>
-         <sql-type>JAVA_OBJECT</sql-type>
-      </mapping>
-   </type-mapping>
-   
-      <type-mapping>
-         <name>InterBase</name>
-         <row-locking-template>SELECT ?1 FROM ?2 WHERE ?3 FOR UPDATE</row-locking-template>
-         <pk-constraint-template>CONSTRAINT ?1 PRIMARY KEY (?2)</pk-constraint-template>
-         <fk-constraint-template>ALTER TABLE ?1 ADD CONSTRAINT ?2 FOREIGN KEY (?3) REFERENCES ?4 (?5)</fk-constraint-template>
-         <alias-header-prefix>t</alias-header-prefix>
-         <alias-header-suffix>_</alias-header-suffix>
-         <alias-max-length>32</alias-max-length>
-         <subquery-supported>true</subquery-supported>
-         <true-mapping>1</true-mapping>
-         <false-mapping>0</false-mapping>
-
-         <mapping>
-            <java-type>java.lang.Boolean</java-type>
-            <jdbc-type>BIT</jdbc-type>
-            <sql-type>SMALLINT</sql-type>
-         </mapping>
-         <mapping>
-            <java-type>java.lang.Byte</java-type>
-            <jdbc-type>TINYINT</jdbc-type>
-            <sql-type>SMALLINT</sql-type>
-         </mapping>
-         <mapping>
-            <java-type>java.lang.Short</java-type>
-            <jdbc-type>SMALLINT</jdbc-type>
-            <sql-type>SMALLINT</sql-type>
-         </mapping>
-         <mapping>
-            <java-type>java.lang.Integer</java-type>
-            <jdbc-type>INTEGER</jdbc-type>
-            <sql-type>INTEGER</sql-type>
-         </mapping>
-         <mapping>
-            <java-type>java.lang.Long</java-type>
-            <jdbc-type>BIGINT</jdbc-type>
-            <sql-type>NUMERIC(18,0)</sql-type>
-         </mapping>
-         <mapping>
-            <java-type>java.lang.Float</java-type>
-            <jdbc-type>REAL</jdbc-type>
-            <sql-type>FLOAT</sql-type>
-         </mapping>
-         <mapping>
-            <java-type>java.lang.Double</java-type>
-            <jdbc-type>DOUBLE</jdbc-type>
-            <sql-type>DOUBLE PRECISION</sql-type>
-         </mapping>
-         <mapping>
-            <java-type>java.lang.Character</java-type>
-            <jdbc-type>VARCHAR</jdbc-type>
-            <sql-type>CHAR</sql-type>
-         </mapping>
-         <mapping>
-            <java-type>java.lang.String</java-type>
-            <jdbc-type>VARCHAR</jdbc-type>
-            <sql-type>VARCHAR(64)</sql-type>
-         </mapping>
-         <mapping>
-            <java-type>java.sql.Date</java-type>
-            <jdbc-type>DATE</jdbc-type>
-            <sql-type>DATE</sql-type>
-         </mapping>
-         <mapping>
-            <java-type>java.sql.Time</java-type>
-            <jdbc-type>TIME</jdbc-type>
-            <sql-type>TIME</sql-type>
-         </mapping>
-         <mapping>
-            <java-type>java.sql.Timestamp</java-type>
-            <jdbc-type>TIMESTAMP</jdbc-type>
-            <sql-type>TIMESTAMP</sql-type>
-         </mapping>
-         <mapping>
-            <java-type>java.lang.Object</java-type>
-            <jdbc-type>JAVA_OBJECT</jdbc-type>
-            <sql-type>VARCHAR(2000)</sql-type>
-         </mapping>
-      </type-mapping>
-
-      <type-mapping>
-         <name>DB2</name>
-         <row-locking-template/>
-         <pk-constraint-template>CONSTRAINT ?1 PRIMARY KEY (?2)</pk-constraint-template>
-         <fk-constraint-template>ALTER TABLE ?1 ADD CONSTRAINT ?2 FOREIGN KEY (?3) REFERENCES ?4 (?5)</fk-constraint-template>
-         <alias-header-prefix>t</alias-header-prefix>
-         <alias-header-suffix>_</alias-header-suffix>
-         <alias-max-length>32</alias-max-length>
-         <subquery-supported>true</subquery-supported>
-         <true-mapping>1</true-mapping>
-         <false-mapping>0</false-mapping>
-
-         <mapping>
-            <java-type>java.lang.Boolean</java-type>
-            <jdbc-type>BIT</jdbc-type>
-            <sql-type>SMALLINT</sql-type>
-         </mapping>
-    <!--  DB2 does not appear to support columns of type "byte"
-    Regrettably, this means they'll be serialized.
-         <mapping>
-            <java-type>java.lang.Byte</java-type>
-            <jdbc-type>CHAR</jdbc-type>
-            <sql-type>CHAR(1) FOR BIT DATA</sql-type>
-         </mapping>
-    -->
-         <mapping>
-            <java-type>java.lang.Short</java-type>
-            <jdbc-type>SMALLINT</jdbc-type>
-            <sql-type>SMALLINT</sql-type>
-         </mapping>
-         <mapping>
-            <java-type>java.lang.Integer</java-type>
-            <jdbc-type>INTEGER</jdbc-type>
-            <sql-type>INTEGER</sql-type>
-         </mapping>
-         <mapping>
-            <java-type>java.lang.Long</java-type>
-            <jdbc-type>BIGINT</jdbc-type>
-            <sql-type>BIGINT</sql-type>
-         </mapping>
-         <mapping>
-            <java-type>java.lang.Float</java-type>
-            <jdbc-type>REAL</jdbc-type>
-            <sql-type>REAL</sql-type>
-         </mapping>
-         <mapping>
-            <java-type>java.lang.Double</java-type>
-            <jdbc-type>DOUBLE</jdbc-type>
-            <sql-type>DOUBLE</sql-type>
-         </mapping>
-         <mapping>
-            <java-type>java.lang.Character</java-type>
-            <jdbc-type>CHAR</jdbc-type>
-            <sql-type>CHAR</sql-type>
-         </mapping>
-         <mapping>
-            <java-type>java.lang.String</java-type>
-            <jdbc-type>VARCHAR</jdbc-type>
-            <sql-type>VARCHAR(254)</sql-type>
-         </mapping>
-         <mapping>
-            <java-type>java.sql.Date</java-type>
-            <jdbc-type>DATE</jdbc-type>
-            <sql-type>DATE</sql-type>
-         </mapping>
-         <mapping>
-            <java-type>java.sql.Time</java-type>
-            <jdbc-type>TIME</jdbc-type>
-            <sql-type>TIME</sql-type>
-         </mapping>
-         <mapping>
-            <java-type>java.sql.Timestamp</java-type>
-            <jdbc-type>TIMESTAMP</jdbc-type>
-            <sql-type>TIMESTAMP</sql-type>
-         </mapping>
-         <mapping>
-            <java-type>java.lang.Object</java-type>
-            <jdbc-type>JAVA_OBJECT</jdbc-type>
-            <sql-type>BLOB(2000)</sql-type>
-         </mapping>
-      </type-mapping>
-
-      <type-mapping>
-         <name>Oracle9i</name>
-         <!--
-         | Make sure that you have the Oracle 9i version of classes12.jar
-         | or you will suffer 
-         -->
-         <row-locking-template>SELECT ?1 FROM ?2 WHERE ?3 FOR UPDATE</row-locking-template>
-         <pk-constraint-template>CONSTRAINT ?1 PRIMARY KEY (?2)</pk-constraint-template>
-         <fk-constraint-template>ALTER TABLE ?1 ADD CONSTRAINT ?2 FOREIGN KEY (?3) REFERENCES ?4 (?5)</fk-constraint-template>
-         <alias-header-prefix>t</alias-header-prefix>
-         <alias-header-suffix>_</alias-header-suffix>
-         <alias-max-length>30</alias-max-length>
-         <subquery-supported>true</subquery-supported>
-         <true-mapping>1</true-mapping>
-         <false-mapping>0</false-mapping>
-
-         <function-mapping>
-            <function-name>concat</function-name>
-            <function-sql>(?1 || ?2)</function-sql>
-         </function-mapping>    
-         <function-mapping>
-            <function-name>substring</function-name>
-            <function-sql>substr(?1, ?2, ?3)</function-sql>
-         </function-mapping>    
-         <function-mapping>
-            <function-name>lcase</function-name>
-            <function-sql>lower(?1)</function-sql>
-         </function-mapping>    
-         <function-mapping>
-            <function-name>length</function-name>
-            <function-sql>length(?1)</function-sql>
-         </function-mapping>    
-         <function-mapping>
-            <function-name>locate</function-name>
-            <function-sql>instr(?2, ?1, ?3)</function-sql>
-         </function-mapping>    
-         <function-mapping>
-            <function-name>abs</function-name>
-            <function-sql>abs(?1)</function-sql>
-         </function-mapping>    
-         <function-mapping>
-            <function-name>sqrt</function-name>
-            <function-sql>sqrt(?1)</function-sql>
-         </function-mapping>    
-         <function-mapping>
-            <function-name>ucase</function-name>
-            <function-sql>upper(?1)</function-sql>
-         </function-mapping>    
-
-         <mapping>
-            <java-type>java.lang.Boolean</java-type>
-            <jdbc-type>BIT</jdbc-type>
-            <sql-type>NUMBER(1)</sql-type>
-         </mapping>
-         <mapping>
-            <java-type>java.lang.Byte</java-type>
-            <jdbc-type>SMALLINT</jdbc-type>
-            <sql-type>NUMBER(3)</sql-type>
-         </mapping>
-         <mapping>
-            <java-type>java.lang.Short</java-type>
-            <jdbc-type>NUMERIC</jdbc-type>
-            <sql-type>NUMBER(5)</sql-type>
-         </mapping>
-         <mapping>
-            <java-type>java.lang.Integer</java-type>
-            <jdbc-type>INTEGER</jdbc-type>
-            <sql-type>NUMBER(10)</sql-type>
-         </mapping>
-         <mapping>
-            <java-type>java.lang.Long</java-type>
-            <jdbc-type>BIGINT</jdbc-type>
-            <sql-type>NUMBER(19)</sql-type>
-         </mapping>
-         <mapping>
-            <java-type>java.lang.Float</java-type>
-            <jdbc-type>REAL</jdbc-type>
-            <sql-type>NUMBER(38,7)</sql-type>
-         </mapping>
-         <mapping>
-            <java-type>java.math.BigDecimal</java-type>
-            <jdbc-type>DECIMAL</jdbc-type>
-            <sql-type>NUMBER(38,15)</sql-type>
-         </mapping>
-         <mapping>
-            <java-type>java.lang.Double</java-type>
-            <jdbc-type>DOUBLE</jdbc-type>
-            <sql-type>NUMBER(38,15)</sql-type>
-         </mapping>
-         <mapping>
-            <java-type>java.lang.Character</java-type>
-            <jdbc-type>VARCHAR</jdbc-type>
-            <sql-type>CHAR</sql-type>
-         </mapping>
-         <mapping>
-            <java-type>java.lang.String</java-type>
-            <jdbc-type>VARCHAR</jdbc-type>
-            <sql-type>VARCHAR2(255)</sql-type>
-         </mapping>
-         <mapping>
-            <java-type>java.util.Date</java-type>
-            <jdbc-type>TIMESTAMP</jdbc-type>
-            <sql-type>TIMESTAMP(3)</sql-type>
-         </mapping>
-         <mapping>
-            <java-type>java.sql.Date</java-type>
-            <jdbc-type>DATE</jdbc-type>
-            <sql-type>DATE</sql-type>
-         </mapping>
-         <mapping>
-            <java-type>java.sql.Time</java-type>
-            <jdbc-type>TIME</jdbc-type>
-            <sql-type>DATE</sql-type>
-         </mapping>
-         <mapping>
-            <java-type>java.sql.Timestamp</java-type>
-            <jdbc-type>TIMESTAMP</jdbc-type>
-            <sql-type>TIMESTAMP(9)</sql-type>
-         </mapping>
-         <mapping>
-            <java-type>java.lang.Object</java-type>
-            <jdbc-type>BLOB</jdbc-type>
-            <sql-type>BLOB</sql-type>
-            <!--
-            | Change this from BLOB to RAW(n) if you know your
-            | serialized object will be <= n bytes and n <= 2000
-            -->
-         </mapping>
-      </type-mapping>
-
-      <type-mapping>
-         <name>Oracle8</name>
-         <row-locking-template>SELECT ?1 FROM ?2 WHERE ?3 FOR UPDATE</row-locking-template>
-         <pk-constraint-template>CONSTRAINT ?1 PRIMARY KEY (?2)</pk-constraint-template>
-         <fk-constraint-template>ALTER TABLE ?1 ADD CONSTRAINT ?2 FOREIGN KEY (?3) REFERENCES ?4 (?5)</fk-constraint-template>
-         <alias-header-prefix>t</alias-header-prefix>
-         <alias-header-suffix>_</alias-header-suffix>
-         <alias-max-length>30</alias-max-length>
-         <subquery-supported>true</subquery-supported>
-         <true-mapping>1</true-mapping>
-         <false-mapping>0</false-mapping>
-
-         <function-mapping>
-            <function-name>concat</function-name>
-            <function-sql>(?1 || ?2)</function-sql>
-         </function-mapping>    
-         <function-mapping>
-            <function-name>substring</function-name>
-            <function-sql>substr(?1, ?2, ?3)</function-sql>
-         </function-mapping>    
-         <function-mapping>
-            <function-name>lcase</function-name>
-            <function-sql>lower(?1)</function-sql>
-         </function-mapping>    
-         <function-mapping>
-            <function-name>length</function-name>
-            <function-sql>length(?1)</function-sql>
-         </function-mapping>    
-         <function-mapping>
-            <function-name>locate</function-name>
-            <function-sql>instr(?2, ?1, ?3)</function-sql>
-         </function-mapping>    
-         <function-mapping>
-            <function-name>abs</function-name>
-            <function-sql>abs(?1)</function-sql>
-         </function-mapping>    
-         <function-mapping>
-            <function-name>sqrt</function-name>
-            <function-sql>sqrt(?1)</function-sql>
-         </function-mapping>    
-         <function-mapping>
-            <function-name>ucase</function-name>
-            <function-sql>upper(?1)</function-sql>
-         </function-mapping>    
-
-         <mapping>
-            <java-type>java.lang.Boolean</java-type>
-            <jdbc-type>BIT</jdbc-type>
-            <sql-type>NUMBER(1)</sql-type>
-         </mapping>
-         <mapping>
-            <java-type>java.lang.Byte</java-type>
-            <jdbc-type>NUMERIC</jdbc-type>
-            <sql-type>NUMBER(3)</sql-type>
-         </mapping>
-         <mapping>
-            <java-type>java.lang.Short</java-type>
-            <jdbc-type>NUMERIC</jdbc-type>
-            <sql-type>NUMBER(5)</sql-type>
-         </mapping>
-         <mapping>
-            <java-type>java.lang.Integer</java-type>
-            <jdbc-type>INTEGER</jdbc-type>
-            <sql-type>NUMBER(10)</sql-type>
-         </mapping>
-         <mapping>
-            <java-type>java.lang.Long</java-type>
-            <jdbc-type>BIGINT</jdbc-type>
-            <sql-type>NUMBER(19)</sql-type>
-         </mapping>
-         <mapping>
-            <java-type>java.lang.Float</java-type>
-            <jdbc-type>REAL</jdbc-type>
-            <sql-type>NUMBER(38,7)</sql-type>
-         </mapping>
-         <mapping>
-            <java-type>java.math.BigDecimal</java-type>
-            <jdbc-type>DECIMAL</jdbc-type>
-            <sql-type>NUMBER(38,15)</sql-type>
-         </mapping>
-         <mapping>
-            <java-type>java.lang.Double</java-type>
-            <jdbc-type>DOUBLE</jdbc-type>
-            <sql-type>NUMBER(38,15)</sql-type>
-         </mapping>
-         <mapping>
-            <java-type>java.lang.Character</java-type>
-            <jdbc-type>VARCHAR</jdbc-type>
-            <sql-type>CHAR</sql-type>
-         </mapping>
-         <mapping>
-            <java-type>java.lang.String</java-type>
-            <jdbc-type>VARCHAR</jdbc-type>
-            <sql-type>VARCHAR2(255)</sql-type>
-         </mapping>
-         <mapping>
-            <!--
-            | Note that you lose granularity here
-            | Use a numeric type and store milliseconds if you really need it
-            -->
-            <java-type>java.util.Date</java-type>
-            <jdbc-type>TIMESTAMP</jdbc-type>
-            <sql-type>DATE</sql-type>
-         </mapping>
-         <mapping>
-            <java-type>java.sql.Date</java-type>
-            <jdbc-type>DATE</jdbc-type>
-            <sql-type>DATE</sql-type>
-         </mapping>
-         <mapping>
-            <java-type>java.sql.Time</java-type>
-            <jdbc-type>TIME</jdbc-type>
-            <sql-type>DATE</sql-type>
-         </mapping>
-         <mapping>
-            <!--
-            | Note that you lose granularity here
-            | Use a numeric type and store milliseconds if you really need it
-            -->
-            <java-type>java.sql.Timestamp</java-type>
-            <jdbc-type>TIMESTAMP</jdbc-type>
-            <sql-type>DATE</sql-type>
-         </mapping>
-         <mapping>
-            <java-type>java.lang.Object</java-type>
-            <jdbc-type>BLOB</jdbc-type>
-            <sql-type>BLOB</sql-type>
-            <!--
-            | Change this from BLOB to RAW(n) if you know your
-            | serialized object will be <= n bytes and n <= 2000
-            -->
-         </mapping>
-      </type-mapping>
-
-      <type-mapping>
-         <name>Oracle7</name>
-         <row-locking-template>SELECT ?1 FROM ?2 WHERE ?3 FOR UPDATE</row-locking-template>
-         <pk-constraint-template>CONSTRAINT ?1 PRIMARY KEY (?2)</pk-constraint-template>
-         <fk-constraint-template>ALTER TABLE ?1 ADD CONSTRAINT ?2 FOREIGN KEY (?3) REFERENCES ?4 (?5)</fk-constraint-template>
-         <alias-header-prefix>t</alias-header-prefix>
-         <alias-header-suffix>_</alias-header-suffix>
-         <alias-max-length>30</alias-max-length>
-         <subquery-supported>true</subquery-supported>
-         <true-mapping>1</true-mapping>
-         <false-mapping>0</false-mapping>
-
-         <function-mapping>
-            <function-name>concat</function-name>
-            <function-sql>(?1 || ?2)</function-sql>
-         </function-mapping>    
-         <function-mapping>
-            <function-name>substring</function-name>
-            <function-sql>substr(?1, ?2, ?3)</function-sql>
-         </function-mapping>    
-         <function-mapping>
-            <function-name>lcase</function-name>
-            <function-sql>lower(?1)</function-sql>
-         </function-mapping>    
-         <function-mapping>
-            <function-name>length</function-name>
-            <function-sql>length(?1)</function-sql>
-         </function-mapping>    
-         <function-mapping>
-            <function-name>locate</function-name>
-            <function-sql>instr(?2, ?1, ?3)</function-sql>
-         </function-mapping>    
-         <function-mapping>
-            <function-name>abs</function-name>
-            <function-sql>abs(?1)</function-sql>
-         </function-mapping>    
-         <function-mapping>
-            <function-name>sqrt</function-name>
-            <function-sql>sqrt(?1)</function-sql>
-         </function-mapping>    
-         <function-mapping>
-            <function-name>ucase</function-name>
-            <function-sql>upper(?1)</function-sql>
-         </function-mapping>    
-
-         <mapping>
-            <java-type>java.lang.Boolean</java-type>
-            <jdbc-type>BIT</jdbc-type>
-            <sql-type>NUMBER(1)</sql-type>
-         </mapping>
-         <mapping>
-            <java-type>java.lang.Byte</java-type>
-            <jdbc-type>NUMERIC</jdbc-type>
-            <sql-type>NUMBER(3)</sql-type>
-         </mapping>
-         <mapping>
-            <java-type>java.lang.Short</java-type>
-            <jdbc-type>NUMERIC</jdbc-type>
-            <sql-type>NUMBER(5)</sql-type>
-         </mapping>
-         <mapping>
-            <java-type>java.lang.Integer</java-type>
-            <jdbc-type>INTEGER</jdbc-type>
-            <sql-type>NUMBER(10)</sql-type>
-         </mapping>
-         <mapping>
-            <java-type>java.lang.Long</java-type>
-            <jdbc-type>BIGINT</jdbc-type>
-            <sql-type>NUMBER(19)</sql-type>
-         </mapping>
-         <mapping>
-            <java-type>java.lang.Float</java-type>
-            <jdbc-type>REAL</jdbc-type>
-            <sql-type>NUMBER(38,7)</sql-type>
-         </mapping>
-         <mapping>
-            <java-type>java.lang.Double</java-type>
-            <jdbc-type>DOUBLE</jdbc-type>
-            <sql-type>NUMBER(38,15)</sql-type>
-         </mapping>
-         <mapping>
-            <java-type>java.lang.Character</java-type>
-            <jdbc-type>VARCHAR</jdbc-type>
-            <sql-type>CHAR</sql-type>
-         </mapping>
-         <mapping>
-            <java-type>java.lang.String</java-type>
-            <jdbc-type>VARCHAR</jdbc-type>
-            <sql-type>VARCHAR2(255)</sql-type>
-         </mapping>
-         <mapping>
-            <!--
-            | Note that you lose granularity here
-            | Use a numeric type and store milliseconds if you really need it
-            -->
-            <java-type>java.util.Date</java-type>
-            <jdbc-type>TIMESTAMP</jdbc-type>
-            <sql-type>DATE</sql-type>
-         </mapping>
-         <mapping>
-            <java-type>java.sql.Date</java-type>
-            <jdbc-type>DATE</jdbc-type>
-            <sql-type>DATE</sql-type>
-         </mapping>
-         <mapping>
-            <java-type>java.sql.Time</java-type>
-            <jdbc-type>TIME</jdbc-type>
-            <sql-type>DATE</sql-type>
-         </mapping>
-         <mapping>
-            <!--
-            | Note that you lose granularity here
-            | Use a numeric type and store milliseconds if you really need it
-            -->
-            <java-type>java.sql.Timestamp</java-type>
-            <jdbc-type>TIMESTAMP</jdbc-type>
-            <sql-type>DATE</sql-type>
-         </mapping>
-         <mapping>
-            <java-type>java.lang.Object</java-type>
-            <jdbc-type>LONGVARBINARY</jdbc-type>
-            <sql-type>LONG RAW</sql-type>
-            <!--
-            | Change this from LONG RAW to RAW(n) if you know your
-            | serialized object will be <= n bytes and n <= 2000
-            | Oracle only permits one LONG type per table
-            -->
-         </mapping>
-      </type-mapping>
-
-      <type-mapping>
-         <name>Sybase</name>
-         <row-locking-template/>
-         <pk-constraint-template>CONSTRAINT ?1 PRIMARY KEY (?2)</pk-constraint-template>
-         <fk-constraint-template>ALTER TABLE ?1 ADD CONSTRAINT ?2 FOREIGN KEY (?3) REFERENCES ?4 (?5)</fk-constraint-template>
-         <alias-header-prefix>t</alias-header-prefix>
-         <alias-header-suffix>_</alias-header-suffix>
-         <alias-max-length>32</alias-max-length>
-         <subquery-supported>true</subquery-supported>
-         <true-mapping>1</true-mapping>
-         <false-mapping>0</false-mapping>
-
-         <mapping>
-            <java-type>java.lang.Boolean</java-type>
-            <jdbc-type>BIT</jdbc-type>
-            <sql-type>BIT</sql-type>
-         </mapping>
-    <!-- Current Sybase JDBC drivers (jConnect 5.2) don't support
-    byte or short.  Unfortunately they'll be serialized.
-         <mapping>
-            <java-type>java.lang.Byte</java-type>
-            <jdbc-type>TINYINT</jdbc-type>
-            <sql-type>TINYINT</sql-type>
-         </mapping>
-         <mapping>
-            <java-type>java.lang.Short</java-type>
-            <jdbc-type>SMALLINT</jdbc-type>
-            <sql-type>SMALLINT</sql-type>
-         </mapping>
-    -->
-         <mapping>
-            <java-type>java.lang.Integer</java-type>
-            <jdbc-type>INTEGER</jdbc-type>
-            <sql-type>INTEGER</sql-type>
-         </mapping>
-         <mapping>
-            <java-type>java.lang.Long</java-type>
-            <jdbc-type>NUMERIC</jdbc-type>
-            <sql-type>NUMERIC(38,0)</sql-type>
-         </mapping>
-         <mapping>
-            <java-type>java.lang.Float</java-type>
-            <jdbc-type>REAL</jdbc-type>
-            <sql-type>REAL</sql-type>
-         </mapping>
-         <mapping>
-            <java-type>java.lang.Double</java-type>
-            <jdbc-type>DOUBLE</jdbc-type>
-            <sql-type>DOUBLE PRECISION</sql-type>
-         </mapping>
-         <mapping>
-            <java-type>java.lang.Character</java-type>
-            <jdbc-type>CHAR</jdbc-type>
-            <sql-type>CHAR</sql-type>
-         </mapping>
-         <mapping>
-            <java-type>java.lang.String</java-type>
-            <jdbc-type>VARCHAR</jdbc-type>
-            <sql-type>VARCHAR(255)</sql-type>
-         </mapping>
-         <mapping>
-            <java-type>java.sql.Date</java-type>
-            <jdbc-type>DATE</jdbc-type>
-            <sql-type>DATETIME</sql-type>
-         </mapping>
-         <mapping>
-            <java-type>java.sql.Time</java-type>
-            <jdbc-type>TIME</jdbc-type>
-            <sql-type>SMALLDATETIME</sql-type>
-         </mapping>
-         <mapping>
-            <java-type>java.sql.Timestamp</java-type>
-            <jdbc-type>TIMESTAMP</jdbc-type>
-            <sql-type>DATETIME</sql-type>
-         </mapping>
-         <mapping>
-            <java-type>java.lang.Object</java-type>
-            <jdbc-type>JAVA_OBJECT</jdbc-type>
-            <sql-type>IMAGE</sql-type>
-         </mapping>
-      </type-mapping>
-
-      <type-mapping>
-         <name>PostgreSQL</name>
-         <row-locking-template>SELECT ?1 FROM ?2 WHERE ?3 FOR UPDATE</row-locking-template>
-         <pk-constraint-template>CONSTRAINT ?1 PRIMARY KEY (?2)</pk-constraint-template>
-         <fk-constraint-template>ALTER TABLE ?1 ADD CONSTRAINT ?2 FOREIGN KEY (?3) REFERENCES ?4 (?5)</fk-constraint-template>
-         <alias-header-prefix>t</alias-header-prefix>
-         <alias-header-suffix>_</alias-header-suffix>
-         <alias-max-length>32</alias-max-length>
-         <subquery-supported>true</subquery-supported>
-         <true-mapping>TRUE</true-mapping>
-         <false-mapping>FALSE</false-mapping>
-
-         <function-mapping>
-            <function-name>concat</function-name>
-            <function-sql>(?1 || ?2)</function-sql>
-         </function-mapping>    
-         <function-mapping>
-            <function-name>substring</function-name>
-            <function-sql>substring(?1 FROM ?2 FOR ?3)</function-sql>
-         </function-mapping>    
-         <function-mapping>
-            <function-name>lcase</function-name>
-            <function-sql>lower(?1)</function-sql>
-         </function-mapping>    
-         <function-mapping>
-            <function-name>length</function-name>
-            <function-sql>length(?1)</function-sql>
-         </function-mapping>    
-         <function-mapping>
-            <function-name>locate</function-name>
-            <function-sql>(CASE position(?1 in substring(?2 from ?3)) WHEN 0 THEN 0 ELSE position(?1 in substring(?2 from ?3)) + ?3 - 1 END)</function-sql>
-         </function-mapping>    
-         <function-mapping>
-            <function-name>abs</function-name>
-            <function-sql>abs(?1)</function-sql>
-         </function-mapping>    
-         <function-mapping>
-            <function-name>sqrt</function-name>
-            <function-sql>sqrt(CAST(?1 AS double precision))</function-sql>
-         </function-mapping>    
-         <function-mapping>
-            <function-name>ucase</function-name>
-            <function-sql>upper(?1)</function-sql>
-         </function-mapping>    
-    
-         <mapping>
-            <java-type>java.lang.Boolean</java-type>
-            <jdbc-type>CHAR</jdbc-type>
-            <sql-type>BOOLEAN</sql-type>
-         </mapping>
-         <mapping>
-            <java-type>java.lang.Byte</java-type>
-            <jdbc-type>TINYINT</jdbc-type>
-            <sql-type>INT2</sql-type>
-         </mapping>
-         <mapping>
-            <java-type>java.lang.Short</java-type>
-            <jdbc-type>SMALLINT</jdbc-type>
-            <sql-type>INT2</sql-type>
-         </mapping>
-         <mapping>
-            <java-type>java.lang.Integer</java-type>
-            <jdbc-type>INTEGER</jdbc-type>
-            <sql-type>INT4</sql-type>
-         </mapping>
-         <mapping>
-            <java-type>java.lang.Long</java-type>
-            <jdbc-type>BIGINT</jdbc-type>
-            <sql-type>INT8</sql-type>
-         </mapping>
-         <mapping>
-            <java-type>java.lang.Float</java-type>
-            <jdbc-type>FLOAT</jdbc-type>
-            <sql-type>FLOAT(7)</sql-type>
-         </mapping>
-         <mapping>
-            <java-type>java.lang.Double</java-type>
-            <jdbc-type>DOUBLE</jdbc-type>
-            <sql-type>FLOAT8</sql-type>
-         </mapping>
-         <mapping>
-            <java-type>java.lang.Character</java-type>
-            <jdbc-type>CHAR</jdbc-type>
-            <sql-type>CHAR(1)</sql-type>
-         </mapping>
-         <mapping>
-            <java-type>java.lang.String</java-type>
-            <jdbc-type>VARCHAR</jdbc-type>
-            <sql-type>TEXT</sql-type>
-         </mapping>
-         <mapping>
-            <java-type>java.util.Date</java-type>
-            <jdbc-type>TIMESTAMP</jdbc-type>
-            <sql-type>TIMESTAMP</sql-type>
-         </mapping>
-         <mapping>
-            <java-type>java.sql.Date</java-type>
-            <jdbc-type>DATE</jdbc-type>
-            <sql-type>DATE</sql-type>
-         </mapping>
-         <mapping>
-            <java-type>java.sql.Time</java-type>
-            <jdbc-type>TIME</jdbc-type>
-            <sql-type>TIME</sql-type>
-         </mapping>
-         <mapping>
-            <java-type>java.sql.Timestamp</java-type>
-            <jdbc-type>TIMESTAMP</jdbc-type>
-            <sql-type>TIMESTAMP</sql-type>
-         </mapping>
-         <mapping>
-            <java-type>java.math.BigDecimal</java-type>
-            <jdbc-type>NUMERIC</jdbc-type>
-            <sql-type>NUMERIC</sql-type>
-         </mapping>
-         <mapping>
-            <java-type>java.lang.Object</java-type>
-            <jdbc-type>VARBINARY</jdbc-type>
-            <sql-type>BYTEA</sql-type>
-         </mapping>
-      </type-mapping>
-
-      <type-mapping>
-         <name>PostgreSQL 7.2</name>
-         <row-locking-template>SELECT ?1 FROM ?2 WHERE ?3 FOR UPDATE</row-locking-template>
-         <pk-constraint-template>CONSTRAINT ?1 PRIMARY KEY (?2)</pk-constraint-template>
-         <fk-constraint-template>ALTER TABLE ?1 ADD CONSTRAINT ?2 FOREIGN KEY (?3) REFERENCES ?4 (?5)</fk-constraint-template>
-         <alias-header-prefix>t</alias-header-prefix>
-         <alias-header-suffix>_</alias-header-suffix>
-         <alias-max-length>32</alias-max-length>
-         <subquery-supported>true</subquery-supported>
-         <true-mapping>TRUE</true-mapping>
-         <false-mapping>FALSE</false-mapping>
-
-         <function-mapping>
-            <function-name>concat</function-name>
-            <function-sql>(?1 || ?2)</function-sql>
-         </function-mapping>    
-         <function-mapping>
-            <function-name>substring</function-name>
-            <function-sql>substring(?1 FROM ?2 FOR ?3)</function-sql>
-         </function-mapping>    
-         <function-mapping>
-            <function-name>lcase</function-name>
-            <function-sql>lower(?1)</function-sql>
-         </function-mapping>    
-         <function-mapping>
-            <function-name>length</function-name>
-            <function-sql>length(?1)</function-sql>
-         </function-mapping>    
-         <function-mapping>
-            <function-name>locate</function-name>
-            <function-sql>(CASE position(?1 in substring(?2 from ?3)) WHEN 0 THEN 0 ELSE position(?1 in substring(?2 from ?3)) + ?3 - 1 END)</function-sql>
-         </function-mapping>    
-         <function-mapping>
-            <function-name>abs</function-name>
-            <function-sql>abs(?1)</function-sql>
-         </function-mapping>    
-         <function-mapping>
-            <function-name>sqrt</function-name>
-            <function-sql>sqrt(CAST(?1 AS double precision))</function-sql>
-         </function-mapping>    
-         <function-mapping>
-            <function-name>ucase</function-name>
-            <function-sql>upper(?1)</function-sql>
-         </function-mapping>    
-    
-         <mapping>
-            <java-type>java.lang.Boolean</java-type>
-            <jdbc-type>CHAR</jdbc-type>
-            <sql-type>BOOLEAN</sql-type>
-         </mapping>
-         <mapping>
-            <java-type>java.lang.Byte</java-type>
-            <jdbc-type>TINYINT</jdbc-type>
-            <sql-type>INT2</sql-type>
-         </mapping>
-         <mapping>
-            <java-type>java.lang.Short</java-type>
-            <jdbc-type>SMALLINT</jdbc-type>
-            <sql-type>INT2</sql-type>
-         </mapping>
-         <mapping>
-            <java-type>java.lang.Integer</java-type>
-            <jdbc-type>INTEGER</jdbc-type>
-            <sql-type>INT4</sql-type>
-         </mapping>
-         <mapping>
-            <java-type>java.lang.Long</java-type>
-            <jdbc-type>BIGINT</jdbc-type>
-            <sql-type>INT8</sql-type>
-         </mapping>
-         <mapping>
-            <java-type>java.lang.Float</java-type>
-            <jdbc-type>FLOAT</jdbc-type>
-            <sql-type>FLOAT(7)</sql-type>
-         </mapping>
-         <mapping>
-            <java-type>java.lang.Double</java-type>
-            <jdbc-type>DOUBLE</jdbc-type>
-            <sql-type>FLOAT8</sql-type>
-         </mapping>
-         <mapping>
-            <java-type>java.lang.Character</java-type>
-            <jdbc-type>CHAR</jdbc-type>
-            <sql-type>CHAR(1)</sql-type>
-         </mapping>
-         <mapping>
-            <java-type>java.lang.String</java-type>
-            <jdbc-type>VARCHAR</jdbc-type>
-            <sql-type>TEXT</sql-type>
-         </mapping>
-         <mapping>
-            <java-type>java.util.Date</java-type>
-            <jdbc-type>TIMESTAMP</jdbc-type>
-            <sql-type>TIMESTAMP</sql-type>
-         </mapping>
-         <mapping>
-            <java-type>java.sql.Date</java-type>
-            <jdbc-type>DATE</jdbc-type>
-            <sql-type>DATE</sql-type>
-         </mapping>
-         <mapping>
-            <java-type>java.sql.Time</java-type>
-            <jdbc-type>TIME</jdbc-type>
-            <sql-type>TIME</sql-type>
-         </mapping>
-         <mapping>
-            <java-type>java.sql.Timestamp</java-type>
-            <jdbc-type>TIMESTAMP</jdbc-type>
-            <sql-type>TIMESTAMP</sql-type>
-         </mapping>
-         <mapping>
-            <java-type>java.math.BigDecimal</java-type>
-            <jdbc-type>NUMERIC</jdbc-type>
-            <sql-type>NUMERIC</sql-type>
-         </mapping>
-         <mapping>
-            <java-type>java.lang.Object</java-type>
-            <jdbc-type>VARBINARY</jdbc-type>
-            <sql-type>BYTEA</sql-type>
-         </mapping>
-      </type-mapping>
-
-      <type-mapping>
-         <name>Hypersonic SQL</name>
-         <row-locking-template/>    
-         <pk-constraint-template>CONSTRAINT ?1 PRIMARY KEY (?2)</pk-constraint-template>
-         <fk-constraint-template/>
-         <alias-header-prefix>t</alias-header-prefix>
-         <alias-header-suffix>_</alias-header-suffix>
-         <alias-max-length>32</alias-max-length>
-         <subquery-supported>true</subquery-supported>
-         <true-mapping>(1=1)</true-mapping>
-         <false-mapping>(1=0)</false-mapping>
-
-         <function-mapping>
-            <function-name>concat</function-name>
-            <function-sql>(?1 || ?2)</function-sql>
-         </function-mapping>    
-         <function-mapping>
-            <function-name>substring</function-name>
-            <function-sql>SUBSTRING(?1, ?2, ?3)</function-sql>
-         </function-mapping>    
-         <function-mapping>
-            <function-name>lcase</function-name>
-            <function-sql>lcase(?1)</function-sql>
-         </function-mapping>    
-         <function-mapping>
-            <function-name>length</function-name>
-            <function-sql>LENGTH(?1)</function-sql>
-         </function-mapping>    
-         <function-mapping>
-            <function-name>locate</function-name>
-            <function-sql>LOCATE(?1, ?2, ?3)</function-sql>
-         </function-mapping>    
-         <function-mapping>
-            <function-name>abs</function-name>
-            <function-sql>ABS(?1)</function-sql>
-         </function-mapping>    
-         <function-mapping>
-            <function-name>sqrt</function-name>
-            <function-sql>SQRT(?1)</function-sql>
-         </function-mapping>    
-         <function-mapping>
-            <function-name>ucase</function-name>
-            <function-sql>ucase(?1)</function-sql>
-         </function-mapping>    
-
-         <mapping>
-            <java-type>java.lang.Byte</java-type>
-            <jdbc-type>SMALLINT</jdbc-type>
-            <sql-type>SMALLINT</sql-type>
-         </mapping>
-         <mapping>
-            <java-type>java.util.Date</java-type>
-            <jdbc-type>TIMESTAMP</jdbc-type>
-            <sql-type>TIMESTAMP</sql-type>
-         </mapping>
-         <mapping>
-            <java-type>java.lang.Boolean</java-type>
-            <jdbc-type>BIT</jdbc-type>
-            <sql-type>BIT</sql-type>
-         </mapping>
-         <mapping>
-            <java-type>java.lang.Integer</java-type>
-            <jdbc-type>INTEGER</jdbc-type>
-            <sql-type>INTEGER</sql-type>
-         </mapping>
-         <mapping>
-            <java-type>java.lang.Object</java-type>
-            <!-- hsqldb only supports directly serializable objects for sql type OBJECT -->
-            <jdbc-type>VARBINARY</jdbc-type>
-            <sql-type>VARBINARY</sql-type>
-         </mapping>
-         <mapping>
-            <java-type>java.lang.Short</java-type>
-            <jdbc-type>SMALLINT</jdbc-type>
-            <sql-type>SMALLINT</sql-type>
-         </mapping>
-         <mapping>
-            <java-type>java.lang.Character</java-type>
-            <jdbc-type>CHAR</jdbc-type>
-            <sql-type>CHAR</sql-type>
-         </mapping>
-         <mapping>
-            <java-type>java.lang.String</java-type>
-            <jdbc-type>VARCHAR</jdbc-type>
-            <sql-type>VARCHAR(256)</sql-type>
-         </mapping>
-         <mapping>
-            <java-type>java.sql.Date</java-type>
-            <jdbc-type>DATE</jdbc-type>
-            <sql-type>DATE</sql-type>
-         </mapping>
-         <mapping>
-            <java-type>java.sql.Time</java-type>
-            <jdbc-type>TIME</jdbc-type>
-            <sql-type>TIME</sql-type>
-         </mapping>
-         <mapping>
-            <java-type>java.sql.Timestamp</java-type>
-            <jdbc-type>TIMESTAMP</jdbc-type>
-            <sql-type>TIMESTAMP</sql-type>
-         </mapping>
-         <mapping>
-            <java-type>java.lang.Float</java-type>
-            <jdbc-type>REAL</jdbc-type>
-            <sql-type>REAL</sql-type>
-         </mapping>
-         <mapping>
-            <java-type>java.lang.Long</java-type>
-            <jdbc-type>BIGINT</jdbc-type>
-            <sql-type>BIGINT</sql-type>
-         </mapping>
-         <mapping>
-            <java-type>java.lang.Double</java-type>
-            <jdbc-type>DOUBLE</jdbc-type>
-            <sql-type>DOUBLE</sql-type>
-         </mapping>
-         <mapping>
-            <java-type>java.math.BigDecimal</java-type>
-            <jdbc-type>DECIMAL</jdbc-type>
-            <sql-type>DECIMAL</sql-type>
-         </mapping>
-      </type-mapping>
-
-      <type-mapping>
-         <name>PointBase</name>
-         <row-locking-template/>
-         <pk-constraint-template>CONSTRAINT ?1 PRIMARY KEY (?2)</pk-constraint-template>
-         <fk-constraint-template>ALTER TABLE ?1 ADD CONSTRAINT ?2 FOREIGN KEY (?3) REFERENCES ?4 (?5)</fk-constraint-template>
-         <alias-header-prefix>t</alias-header-prefix>
-         <alias-header-suffix>_</alias-header-suffix>
-         <alias-max-length>32</alias-max-length>
-         <subquery-supported>true</subquery-supported>
-         <true-mapping>1</true-mapping>
-         <false-mapping>0</false-mapping>
-
-         <mapping>
-            <java-type>java.lang.Character</java-type>
-            <jdbc-type>CHAR</jdbc-type>
-            <sql-type>CHAR</sql-type>
-         </mapping>
-         <mapping>
-            <java-type>java.lang.Short</java-type>
-            <jdbc-type>SMALLINT</jdbc-type>
-            <sql-type>SMALLINT</sql-type>
-         </mapping>
-         <mapping>
-            <java-type>java.lang.Long</java-type>
-            <jdbc-type>BIGINT</jdbc-type>
-            <sql-type>INTEGER</sql-type>
-         </mapping>
-         <mapping>
-            <java-type>java.lang.Double</java-type>
-            <jdbc-type>DOUBLE</jdbc-type>
-            <sql-type>FLOAT</sql-type>
-         </mapping>
-         <mapping>
-            <java-type>java.lang.Float</java-type>
-            <jdbc-type>FLOAT</jdbc-type>
-            <sql-type>FLOAT</sql-type>
-         </mapping>
-         <mapping>
-            <java-type>java.lang.Boolean</java-type>
-            <jdbc-type>BINARY</jdbc-type>
-            <sql-type>BOOLEAN</sql-type>
-         </mapping>
-         <mapping>
-            <java-type>java.lang.String</java-type>
-            <jdbc-type>VARCHAR</jdbc-type>
-            <sql-type>VARCHAR(256)</sql-type>
-         </mapping>
-         <mapping>
-            <java-type>java.lang.Byte</java-type>
-            <jdbc-type>SMALLINT</jdbc-type>
-            <sql-type>SMALLINT</sql-type>
-         </mapping>
-         <mapping>
-            <java-type>java.lang.Object</java-type>
-            <jdbc-type>BLOB</jdbc-type>
-            <sql-type>BLOB</sql-type>
-         </mapping>
-         <mapping>
-            <java-type>java.lang.Integer</java-type>
-            <jdbc-type>INTEGER</jdbc-type>
-            <sql-type>INTEGER</sql-type>
-         </mapping>
-      </type-mapping>
-
-      <type-mapping>
-         <name>SOLID</name>
-         <row-locking-template/>
-         <pk-constraint-template>PRIMARY KEY (?2)</pk-constraint-template>
-         <fk-constraint-template>ALTER TABLE ?1 ADD CONSTRAINT ?2 FOREIGN KEY (?3) REFERENCES ?4 (?5)</fk-constraint-template>
-         <alias-header-prefix>t</alias-header-prefix>
-         <alias-header-suffix>_</alias-header-suffix>
-         <alias-max-length>32</alias-max-length>
-         <subquery-supported>true</subquery-supported>
-         <true-mapping>1</true-mapping>
-         <false-mapping>0</false-mapping>
-
-         <mapping>
-            <java-type>java.lang.Character</java-type>
-            <jdbc-type>CHAR</jdbc-type>
-            <sql-type>CHAR</sql-type>
-         </mapping>
-         <mapping>
-            <java-type>java.lang.Byte</java-type>
-            <jdbc-type>TINYINT</jdbc-type>
-            <sql-type>TINYINT</sql-type>
-         </mapping>
-         <mapping>
-            <java-type>java.lang.Short</java-type>
-            <jdbc-type>INTEGER</jdbc-type>
-            <sql-type>INTEGER</sql-type>
-         </mapping>
-         <mapping>
-            <java-type>java.lang.Double</java-type>
-            <jdbc-type>DOUBLE</jdbc-type>
-            <sql-type>DOUBLE</sql-type>
-         </mapping>
-         <mapping>
-            <java-type>java.lang.Object</java-type>
-            <jdbc-type>BLOB</jdbc-type>
-            <sql-type>BLOB</sql-type>
-         </mapping>
-         <mapping>
-            <java-type>java.lang.String</java-type>
-            <jdbc-type>VARCHAR</jdbc-type>
-            <sql-type>VARCHAR(256)</sql-type>
-         </mapping>
-         <mapping>
-            <java-type>java.lang.Integer</java-type>
-            <jdbc-type>INTEGER</jdbc-type>
-            <sql-type>INTEGER</sql-type>
-         </mapping>
-         <mapping>
-            <java-type>java.sql.Timestamp</java-type>
-            <jdbc-type>TIMESTAMP</jdbc-type>
-            <sql-type>TIMESTAMP</sql-type>
-         </mapping>
-         <mapping>
-            <java-type>java.lang.Boolean</java-type>
-            <jdbc-type>BIT</jdbc-type>
-            <sql-type>BIT</sql-type>
-         </mapping>
-         <mapping>
-            <java-type>java.lang.Float</java-type>
-            <jdbc-type>FLOAT</jdbc-type>
-            <sql-type>FLOAT</sql-type>
-         </mapping>
-         <mapping>
-            <java-type>java.lang.Long</java-type>
-            <jdbc-type>BIGINT</jdbc-type>
-            <sql-type>BIGINT</sql-type>
-         </mapping>
-         <mapping>
-            <java-type>java.util.Date</java-type>
-            <jdbc-type>TIMESTAMP</jdbc-type>
-            <sql-type>TIMESTAMP</sql-type>
-         </mapping>
-      </type-mapping>
-
-      <type-mapping>
-         <name>mySQL</name>
-         <row-locking-template>SELECT ?1 FROM ?2 WHERE ?3 FOR UPDATE</row-locking-template>
-         <pk-constraint-template>CONSTRAINT ?1 PRIMARY KEY (?2)</pk-constraint-template>
-         <fk-constraint-template>ALTER TABLE ?1 ADD INDEX ind_?3 (?3), ADD CONSTRAINT ?2 FOREIGN KEY (?3) REFERENCES ?4 (?5)</fk-constraint-template>
-         <alias-header-prefix>t</alias-header-prefix>
-         <alias-header-suffix>_</alias-header-suffix>
-         <alias-max-length>32</alias-max-length>
-         <subquery-supported>false</subquery-supported>
-         <true-mapping>1</true-mapping>
-         <false-mapping>0</false-mapping>
-
-         <function-mapping>
-            <function-name>concat</function-name>
-            <function-sql>concat(?1, ?2)</function-sql>
-         </function-mapping>    
-         <function-mapping>
-            <function-name>substring</function-name>
-            <function-sql>substring(?1 FROM ?2 FOR ?3)</function-sql>
-         </function-mapping>    
-         <function-mapping>
-            <function-name>lcase</function-name>
-            <function-sql>lower(?1)</function-sql>
-         </function-mapping>    
-         <function-mapping>
-            <function-name>length</function-name>
-            <function-sql>length(?1)</function-sql>
-         </function-mapping>    
-         <function-mapping>
-            <function-name>locate</function-name>
-            <function-sql>locate(?1, ?2, ?3)</function-sql>
-         </function-mapping>    
-         <function-mapping>
-            <function-name>abs</function-name>
-            <function-sql>abs(?1)</function-sql>
-         </function-mapping>    
-         <function-mapping>
-            <function-name>sqrt</function-name>
-            <function-sql>sqrt(?1)</function-sql>
-         </function-mapping>    
-         <function-mapping>
-            <function-name>ucase</function-name>
-            <function-sql>upper(?1)</function-sql>
-         </function-mapping>    
-
-         <mapping>
-            <java-type>java.lang.Float</java-type>
-            <jdbc-type>FLOAT</jdbc-type>
-            <sql-type>FLOAT</sql-type>
-         </mapping>
-         <mapping>
-            <java-type>java.lang.Double</java-type>
-            <jdbc-type>DOUBLE</jdbc-type>
-            <sql-type>DOUBLE</sql-type>
-         </mapping>
-         <mapping>
-            <java-type>java.lang.Boolean</java-type>
-            <jdbc-type>TINYINT</jdbc-type>
-            <sql-type>TINYINT</sql-type>
-         </mapping>
-         <mapping>
-            <java-type>java.math.BigDecimal</java-type>
-            <jdbc-type>DOUBLE</jdbc-type>
-            <sql-type>DOUBLE</sql-type>
-         </mapping>
-         <mapping>
-            <java-type>java.lang.Object</java-type>
-            <jdbc-type>BLOB</jdbc-type>
-            <sql-type>LONGBLOB</sql-type>
-            <!--
-            | Change this from LONGBLOB to BLOB if you know your
-            | serialized object will be <= 2^16 bytes
-            -->
-         </mapping>
-         <mapping>
-            <java-type>java.lang.Integer</java-type>
-            <jdbc-type>INTEGER</jdbc-type>
-            <sql-type>INTEGER</sql-type>
-         </mapping>
-         <mapping>
-            <java-type>java.lang.Short</java-type>
-            <jdbc-type>SMALLINT</jdbc-type>
-            <sql-type>SMALLINT</sql-type>
-         </mapping>
-         <mapping>
-            <java-type>java.sql.Timestamp</java-type>
-            <jdbc-type>TIMESTAMP</jdbc-type>
-            <sql-type>TIMESTAMP</sql-type>
-            <!--
-            | This type is problematical because mysql does not have any 
-            | date/time types that store milliseconds. You should avoid it.
-            -->
-         </mapping>
-         <mapping>
-            <java-type>java.lang.Byte</java-type>
-            <jdbc-type>TINYINT</jdbc-type>
-            <sql-type>TINYINT</sql-type>
-         </mapping>
-         <mapping>
-            <java-type>java.lang.Character</java-type>
-            <jdbc-type>CHAR</jdbc-type>
-            <sql-type>CHAR</sql-type>
-         </mapping>
-         <mapping>
-            <java-type>java.lang.Long</java-type>
-            <jdbc-type>BIGINT</jdbc-type>
-            <sql-type>BIGINT</sql-type>
-         </mapping>
-         <mapping>
-            <java-type>java.lang.String</java-type>
-            <jdbc-type>VARCHAR</jdbc-type>
-            <sql-type>VARCHAR(250) BINARY</sql-type>
-         </mapping>
-         <mapping>
-            <java-type>java.util.Date</java-type>
-            <jdbc-type>TIMESTAMP</jdbc-type>
-            <sql-type>DATETIME</sql-type>
-            <!--
-            | Note that you lose granularity here
-            | Use a numeric type and store milliseconds if you really need it
-            -->
-         </mapping>
-         <mapping>
-            <java-type>java.sql.Date</java-type>
-            <jdbc-type>DATE</jdbc-type>
-            <sql-type>DATETIME</sql-type>
-         </mapping>
-         <mapping>
-            <java-type>java.sql.Time</java-type>
-            <jdbc-type>TIME</jdbc-type>
-            <sql-type>TIME</sql-type>
-         </mapping>
-      </type-mapping>
-
-      <type-mapping>
-         <name>MS SQLSERVER</name>
-         <row-locking-template>SELECT ?1 FROM ?2 with (rowlock) WHERE ?3</row-locking-template>
-         <pk-constraint-template>CONSTRAINT ?1 PRIMARY KEY (?2)</pk-constraint-template>
-         <fk-constraint-template>ALTER TABLE ?1 ADD CONSTRAINT ?2 FOREIGN KEY (?3) REFERENCES ?4 (?5)</fk-constraint-template>
-         <alias-header-prefix>t</alias-header-prefix>
-         <alias-header-suffix>_</alias-header-suffix>
-         <alias-max-length>32</alias-max-length>
-         <subquery-supported>true</subquery-supported>
-         <true-mapping>1</true-mapping>
-         <false-mapping>0</false-mapping>
-
-         <function-mapping>
-            <function-name>concat</function-name>
-            <function-sql>(?1 + ?2)</function-sql>
-         </function-mapping>    
-         <function-mapping>
-            <function-name>substring</function-name>
-            <function-sql>substring(?1, ?2, ?3)</function-sql>
-         </function-mapping>    
-         <function-mapping>
-            <function-name>lcase</function-name>
-            <function-sql>lower(?1)</function-sql>
-         </function-mapping>    
-         <function-mapping>
-            <function-name>length</function-name>
-            <function-sql>len(?1)</function-sql>
-         </function-mapping>    
-         <function-mapping>
-            <function-name>locate</function-name>
-            <function-sql>charindex(?1, ?2, ?3)</function-sql>
-         </function-mapping>    
-         <function-mapping>
-            <function-name>abs</function-name>
-            <function-sql>abs(?1)</function-sql>
-         </function-mapping>    
-         <function-mapping>
-            <function-name>sqrt</function-name>
-            <function-sql>sqrt(?1)</function-sql>
-         </function-mapping>    
-         <function-mapping>
-            <function-name>ucase</function-name>
-            <function-sql>upper(?1)</function-sql>
-         </function-mapping>    
-    
-         <mapping>
-            <java-type>java.lang.Integer</java-type>
-            <jdbc-type>INTEGER</jdbc-type>
-            <sql-type>INTEGER</sql-type>
-         </mapping>
-         <mapping>
-            <java-type>java.lang.Character</java-type>
-            <jdbc-type>CHAR</jdbc-type>
-            <sql-type>CHAR</sql-type>
-         </mapping>
-         <mapping>
-            <java-type>java.lang.Short</java-type>
-            <jdbc-type>SMALLINT</jdbc-type>
-            <sql-type>SMALLINT</sql-type>
-         </mapping>
-         <mapping>
-            <java-type>java.lang.Double</java-type>
-            <jdbc-type>DOUBLE</jdbc-type>
-            <sql-type>DOUBLE</sql-type>
-         </mapping>
-         <mapping>
-            <java-type>java.lang.Long</java-type>
-            <jdbc-type>DECIMAL</jdbc-type>
-            <sql-type>DECIMAL(20)</sql-type>
-         </mapping>
-         <mapping>
-            <java-type>java.math.BigDecimal</java-type>
-            <jdbc-type>VARCHAR</jdbc-type>
-            <sql-type>VARCHAR(256)</sql-type>
-         </mapping>
-         <mapping>
-            <java-type>java.lang.String</java-type>
-            <jdbc-type>VARCHAR</jdbc-type>
-            <sql-type>VARCHAR(256)</sql-type>
-         </mapping>
-         <mapping>
-            <java-type>java.lang.Object</java-type>
-            <jdbc-type>JAVA_OBJECT</jdbc-type>
-            <sql-type>IMAGE</sql-type>
-         </mapping>
-         <mapping>
-            <java-type>java.lang.Byte</java-type>
-            <jdbc-type>TINYINT</jdbc-type>
-            <sql-type>TINYINT</sql-type>
-         </mapping>
-         <mapping>
-            <!--
-            | Note that you lose granularity here
-            | Use a numeric type and store milliseconds if you really need it
-            -->
-            <java-type>java.sql.Timestamp</java-type>
-            <jdbc-type>TIMESTAMP</jdbc-type>
-            <sql-type>DATETIME</sql-type>
-         </mapping>
-         <mapping>
-            <java-type>java.sql.Date</java-type>
-            <jdbc-type>DATE</jdbc-type>
-            <sql-type>DATETIME</sql-type>
-         </mapping>
-         <mapping>
-            <java-type>java.sql.Time</java-type>
-            <jdbc-type>TIME</jdbc-type>
-            <sql-type>DATETIME</sql-type>
-         </mapping>
-         <mapping>
-            <java-type>java.util.Date</java-type>
-            <jdbc-type>TIMESTAMP</jdbc-type>
-            <sql-type>DATETIME</sql-type>
-         </mapping>
-         <mapping>
-            <java-type>java.lang.Boolean</java-type>
-            <jdbc-type>BIT</jdbc-type>
-            <sql-type>BIT</sql-type>
-         </mapping>
-         <mapping>
-            <java-type>java.lang.Float</java-type>
-            <jdbc-type>FLOAT</jdbc-type>
-            <sql-type>FLOAT</sql-type>
-         </mapping>
-      </type-mapping>
-
-      <type-mapping> 
-         <name>MS SQLSERVER2000</name> 
-         <row-locking-template>SELECT ?1 FROM ?2 with (rowlock) WHERE ?3</row-locking-template>
-         <pk-constraint-template>CONSTRAINT ?1 PRIMARY KEY (?2)</pk-constraint-template>
-         <fk-constraint-template>ALTER TABLE ?1 ADD CONSTRAINT ?2 FOREIGN KEY (?3) REFERENCES ?4 (?5)</fk-constraint-template>
-         <alias-header-prefix>t</alias-header-prefix>
-         <alias-header-suffix>_</alias-header-suffix>
-         <alias-max-length>32</alias-max-length>
-         <subquery-supported>true</subquery-supported>
-         <true-mapping>1</true-mapping>
-         <false-mapping>0</false-mapping>
-
-         <function-mapping>
-            <function-name>concat</function-name>
-            <function-sql>(?1 + ?2)</function-sql>
-         </function-mapping>    
-         <function-mapping>
-            <function-name>substring</function-name>
-            <function-sql>substring(?1, ?2, ?3)</function-sql>
-         </function-mapping>    
-         <function-mapping>
-            <function-name>lcase</function-name>
-            <function-sql>lower(?1)</function-sql>
-         </function-mapping>    
-         <function-mapping>
-            <function-name>length</function-name>
-            <function-sql>len(?1)</function-sql>
-         </function-mapping>    
-         <function-mapping>
-            <function-name>locate</function-name>
-            <function-sql>charindex(?1, ?2, ?3)</function-sql>
-         </function-mapping>    
-         <function-mapping>
-            <function-name>abs</function-name>
-            <function-sql>abs(?1)</function-sql>
-         </function-mapping>    
-         <function-mapping>
-            <function-name>sqrt</function-name>
-            <function-sql>sqrt(?1)</function-sql>
-         </function-mapping>    
-         <function-mapping>
-            <function-name>ucase</function-name>
-            <function-sql>upper(?1)</function-sql>
-         </function-mapping>    
-    
-         <mapping> 
-            <java-type>java.lang.Integer</java-type> 
-            <jdbc-type>INTEGER</jdbc-type> 
-            <sql-type>INTEGER</sql-type> 
-         </mapping> 
-    
-         <mapping> 
-            <java-type>java.lang.Character</java-type> 
-            <jdbc-type>CHAR</jdbc-type> 
-            <sql-type>CHAR</sql-type> 
-         </mapping> 
-    
-         <mapping> 
-            <java-type>java.lang.Short</java-type> 
-            <jdbc-type>SMALLINT</jdbc-type> 
-            <sql-type>SMALLINT</sql-type> 
-         </mapping> 
-    
-         <mapping> 
-            <java-type>java.lang.Long</java-type> 
-            <jdbc-type>BIGINT</jdbc-type> 
-            <sql-type>BIGINT</sql-type> 
-         </mapping> 
-    
-         <mapping> 
-            <java-type>java.math.BigDecimal</java-type> 
-            <jdbc-type>VARCHAR</jdbc-type> 
-            <sql-type>VARCHAR(256)</sql-type> 
-         </mapping> 
-    
-         <mapping> 
-            <java-type>java.lang.String</java-type> 
-            <jdbc-type>VARCHAR</jdbc-type> 
-            <sql-type>VARCHAR(256)</sql-type> 
-         </mapping> 
-    
-         <mapping> 
-            <java-type>java.lang.Object</java-type> 
-            <jdbc-type>JAVA_OBJECT</jdbc-type> 
-            <sql-type>IMAGE</sql-type> 
-         </mapping> 
-    
-         <mapping> 
-            <java-type>java.lang.Byte</java-type> 
-            <jdbc-type>TINYINT</jdbc-type> 
-            <sql-type>TINYINT</sql-type> 
-         </mapping> 
-    
-         <mapping> 
-            <!--
-            | Note that you lose granularity here
-            | Use a numeric type and store milliseconds if you really need it
-            -->
-            <java-type>java.sql.Timestamp</java-type> 
-            <jdbc-type>TIMESTAMP</jdbc-type> 
-            <sql-type>DATETIME</sql-type> 
-         </mapping> 
-    
-         <mapping> 
-            <java-type>java.sql.Date</java-type> 
-            <jdbc-type>DATE</jdbc-type> 
-            <sql-type>DATETIME</sql-type> 
-         </mapping> 
-    
-         <mapping> 
-            <java-type>java.sql.Time</java-type> 
-            <jdbc-type>TIME</jdbc-type> 
-            <sql-type>DATETIME</sql-type> 
-         </mapping> 
-    
-         <mapping> 
-            <java-type>java.util.Date</java-type> 
-            <jdbc-type>TIMESTAMP</jdbc-type> 
-            <sql-type>DATETIME</sql-type> 
-         </mapping> 
-    
-         <mapping> 
-            <java-type>java.lang.Boolean</java-type> 
-            <jdbc-type>BIT</jdbc-type> 
-            <sql-type>BIT</sql-type> 
-         </mapping> 
-    
-         <mapping> 
-            <java-type>java.lang.Float</java-type> 
-            <jdbc-type>REAL</jdbc-type> 
-            <sql-type>REAL</sql-type> 
-         </mapping> 
-    
-         <mapping> 
-            <java-type>java.lang.Double</java-type> 
-            <jdbc-type>DOUBLE</jdbc-type> 
-            <sql-type>FLOAT</sql-type> 
-         </mapping> 
-      </type-mapping>
-      
-      <type-mapping>
-         <name>DB2/400</name>
-         <row-locking-template/>
-         <pk-constraint-template>CONSTRAINT ?1 PRIMARY KEY (?2)</pk-constraint-template>
-         <fk-constraint-template>ALTER TABLE ?1 ADD CONSTRAINT ?2 FOREIGN KEY (?3) REFERENCES ?4 (?5)</fk-constraint-template>
-         <alias-header-prefix>t</alias-header-prefix>
-         <alias-header-suffix>_</alias-header-suffix>
-         <alias-max-length>32</alias-max-length>
-         <subquery-supported>true</subquery-supported>
-         <true-mapping>1</true-mapping>
-         <false-mapping>0</false-mapping>
-
-         <mapping>
-            <java-type>java.lang.Character</java-type>
-            <jdbc-type>CHAR</jdbc-type>
-            <sql-type>CHAR(1)</sql-type>
-         </mapping>
-         <mapping>
-            <java-type>java.lang.String</java-type>
-            <jdbc-type>VARCHAR</jdbc-type>
-            <sql-type>VARCHAR(256)</sql-type>
-         </mapping>
-    <!-- Apparent DB2/400 doesn't handle Byte type either
-         <mapping>
-            <java-type>java.lang.Byte</java-type>
-            <jdbc-type>CHAR</jdbc-type>
-            <sql-type>CHAR(1) FOR BIT DATA</sql-type>
-         </mapping>
-    -->
-         <mapping>
-            <java-type>java.util.Date</java-type>
-            <jdbc-type>TIMESTAMP</jdbc-type>
-            <sql-type>TIMESTAMP</sql-type>
-         </mapping>
-         <mapping>
-            <java-type>java.sql.Time</java-type>
-            <jdbc-type>TIME</jdbc-type>
-            <sql-type>TIME</sql-type>
-         </mapping>
-         <mapping>
-            <java-type>java.lang.Float</java-type>
-            <jdbc-type>FLOAT</jdbc-type>
-            <sql-type>FLOAT</sql-type>
-         </mapping>
-         <mapping>
-            <java-type>java.lang.Integer</java-type>
-            <jdbc-type>INTEGER</jdbc-type>
-            <sql-type>INTEGER</sql-type>
-         </mapping>
-         <mapping>
-            <java-type>java.lang.Double</java-type>
-            <jdbc-type>DOUBLE</jdbc-type>
-            <sql-type>DOUBLE</sql-type>
-         </mapping>
-         <mapping>
-            <java-type>java.lang.Long</java-type>
-            <jdbc-type>BIGINT</jdbc-type>
-            <sql-type>INTEGER</sql-type>
-         </mapping>
-         <mapping>
-            <java-type>java.lang.Boolean</java-type>
-            <jdbc-type>CHAR</jdbc-type>
-            <sql-type>CHAR(5)</sql-type>
-         </mapping>
-         <mapping>
-            <java-type>java.lang.Short</java-type>
-            <jdbc-type>SMALLINT</jdbc-type>
-            <sql-type>SMALLINT</sql-type>
-         </mapping>
-         <mapping>
-            <java-type>java.lang.Object</java-type>
-            <jdbc-type>JAVA_OBJECT</jdbc-type>
-            <sql-type>VARCHAR(4096) FOR BIT DATA</sql-type>
-         </mapping>
-         <mapping>
-            <java-type>java.sql.Timestamp</java-type>
-            <jdbc-type>TIMESTAMP</jdbc-type>
-            <sql-type>TIMESTAMP</sql-type>
-         </mapping>
-      </type-mapping>
-
-      <type-mapping>
-         <name>SapDB</name>
-         <row-locking-template>SELECT ?1 FROM ?2 WHERE ?3 FOR UPDATE</row-locking-template>
-         <pk-constraint-template>CONSTRAINT ?1 PRIMARY KEY (?2)</pk-constraint-template>
-         <fk-constraint-template>ALTER TABLE ?1 ADD CONSTRAINT ?2 FOREIGN KEY (?3) REFERENCES ?4 (?5)</fk-constraint-template>
-         <alias-header-prefix>t</alias-header-prefix>
-         <alias-header-suffix>_</alias-header-suffix>
-         <alias-max-length>32</alias-max-length>
-         <subquery-supported>true</subquery-supported>
-         <true-mapping>1</true-mapping>
-         <false-mapping>0</false-mapping>
-
-         <mapping>
-            <java-type>java.lang.Integer</java-type>
-            <jdbc-type>INTEGER</jdbc-type>
-            <sql-type>INTEGER</sql-type>
-         </mapping>
-         <mapping>
-            <java-type>java.lang.Character</java-type>
-            <jdbc-type>CHAR</jdbc-type>
-            <sql-type>CHAR</sql-type>
-         </mapping>
-         <mapping>
-            <java-type>java.lang.String</java-type>
-            <jdbc-type>VARCHAR</jdbc-type>
-            <sql-type>VARCHAR(256)</sql-type>
-         </mapping>
-         <mapping>
-            <java-type>java.lang.Object</java-type>
-            <jdbc-type>JAVA_OBJECT</jdbc-type>
-            <sql-type>LONG BYTE</sql-type>
-         </mapping>
-         <mapping>
-            <java-type>java.lang.Byte</java-type>
-            <jdbc-type>TINYINT</jdbc-type>
-            <sql-type>CHAR BYTE</sql-type>
-         </mapping>
-         <mapping>
-            <java-type>java.sql.Timestamp</java-type>
-            <jdbc-type>TIMESTAMP</jdbc-type>
-            <sql-type>TIMESTAMP</sql-type>
-         </mapping>
-         <mapping>
-            <java-type>java.util.Date</java-type>
-            <jdbc-type>TIMESTAMP</jdbc-type>
-            <sql-type>TIMESTAMP</sql-type>
-         </mapping>
-         <mapping>
-            <java-type>java.sql.Time</java-type>
-            <jdbc-type>TIME</jdbc-type>
-            <sql-type>TIME</sql-type>
-         </mapping>
-         <mapping>
-            <java-type>java.lang.Boolean</java-type>
-            <jdbc-type>BIT</jdbc-type>
-            <sql-type>BOOLEAN</sql-type>
-         </mapping>
-         <mapping>
-            <java-type>java.lang.Float</java-type>
-            <jdbc-type>FLOAT</jdbc-type>
-            <sql-type>FLOAT</sql-type>
-         </mapping>
-         <mapping>
-            <java-type>java.lang.Short</java-type>
-            <jdbc-type>SMALLINT</jdbc-type>
-            <sql-type>SMALLINT</sql-type>
-         </mapping>
-         <mapping>
-            <java-type>java.lang.Double</java-type>
-            <jdbc-type>DOUBLE</jdbc-type>
-            <sql-type>DOUBLE PRECISION</sql-type>
-         </mapping>
-         <mapping>
-            <java-type>java.lang.Long</java-type>
-            <jdbc-type>DECIMAL</jdbc-type>
-            <sql-type>DECIMAL(20)</sql-type>
-         </mapping>
-      </type-mapping>
-
-      <type-mapping>
-         <name>Cloudscape</name>
-         <row-locking-template/>
-         <pk-constraint-template>CONSTRAINT ?1 PRIMARY KEY (?2)</pk-constraint-template>
-         <fk-constraint-template>ALTER TABLE ?1 ADD CONSTRAINT ?2 FOREIGN KEY (?3) REFERENCES ?4 (?5)</fk-constraint-template>
-         <alias-header-prefix>t</alias-header-prefix>
-         <alias-header-suffix>_</alias-header-suffix>
-         <alias-max-length>32</alias-max-length>
-         <subquery-supported>true</subquery-supported>
-         <true-mapping>1</true-mapping>
-         <false-mapping>0</false-mapping>
-
-         <mapping>
-            <java-type>java.math.BigDecimal</java-type>
-            <jdbc-type>LONGVARCHAR</jdbc-type>
-            <sql-type>LONG VARCHAR</sql-type>
-         </mapping>
-         <mapping>
-            <java-type>java.lang.Boolean</java-type>
-            <jdbc-type>BIT</jdbc-type>
-            <sql-type>BOOLEAN</sql-type>
-         </mapping>
-         <mapping>
-            <java-type>java.lang.Byte</java-type>
-            <jdbc-type>TINYINT</jdbc-type>
-            <sql-type>TINYINT</sql-type>
-         </mapping>
-         <mapping>
-            <java-type>java.lang.Short</java-type>
-            <jdbc-type>SMALLINT</jdbc-type>
-            <sql-type>SMALLINT</sql-type>
-         </mapping>
-         <mapping>
-            <java-type>java.lang.Integer</java-type>
-            <jdbc-type>INTEGER</jdbc-type>
-            <sql-type>INTEGER</sql-type>
-         </mapping>
-         <mapping>
-            <java-type>java.lang.Long</java-type>
-            <jdbc-type>BIGINT</jdbc-type>
-            <sql-type>LONGINT</sql-type>
-         </mapping>
-         <mapping>
-            <java-type>java.lang.Float</java-type>
-            <jdbc-type>REAL</jdbc-type>
-            <sql-type>REAL</sql-type>
-         </mapping>
-         <mapping>
-            <java-type>java.lang.Double</java-type>
-            <jdbc-type>DOUBLE</jdbc-type>
-            <sql-type>DOUBLE PRECISION</sql-type>
-         </mapping>
-         <mapping>
-            <java-type>java.lang.Character</java-type>
-            <jdbc-type>CHAR</jdbc-type>
-            <sql-type>CHAR</sql-type>
-         </mapping>
-         <mapping>
-            <java-type>java.lang.String</java-type>
-            <jdbc-type>LONGVARCHAR</jdbc-type>
-            <sql-type>LONG VARCHAR</sql-type>
-         </mapping>
-         <mapping>
-            <java-type>java.sql.Date</java-type>
-            <jdbc-type>DATE</jdbc-type>
-            <sql-type>DATE</sql-type>
-         </mapping>
-         <mapping>
-            <java-type>java.sql.Time</java-type>
-            <jdbc-type>TIME</jdbc-type>
-            <sql-type>TIME</sql-type>
-         </mapping>
-         <mapping>
-            <java-type>java.sql.Timestamp</java-type>
-            <jdbc-type>TIMESTAMP</jdbc-type>
-            <sql-type>TIMESTAMP</sql-type>
-         </mapping>
-         <mapping>
-            <java-type>java.lang.Object</java-type>
-            <jdbc-type>JAVA_OBJECT</jdbc-type>
-            <sql-type>LONG VARBINARY</sql-type>
-         </mapping>
-      </type-mapping>
-
-      
-      <type-mapping> 
-         <name>InformixDB</name> 
-         <row-locking-template>select ?1 from ?2 where ?3 for update</row-locking-template>
-         <pk-constraint-template>PRIMARY KEY (?2) CONSTRAINT ?1</pk-constraint-template>
-         <fk-constraint-template>ALTER TABLE ?1 ADD CONSTRAINT FOREIGN KEY (?3) REFERENCES ?4 (?5) CONSTRAINT ?2</fk-constraint-template>
-         <alias-header-prefix>t</alias-header-prefix>
-         <alias-header-suffix>_</alias-header-suffix>
-         <alias-max-length>32</alias-max-length>
-         <subquery-supported>true</subquery-supported>
-         <true-mapping>1</true-mapping>
-         <false-mapping>0</false-mapping>
-
-         <mapping> 
-            <java-type>java.lang.Character</java-type> 
-            <jdbc-type>CHAR</jdbc-type> 
-            <sql-type>CHAR(1)</sql-type> 
-         </mapping> 
-    
-         <mapping> 
-            <java-type>java.lang.String</java-type> 
-            <jdbc-type>VARCHAR</jdbc-type> 
-            <sql-type>VARCHAR(255,0)</sql-type> 
-         </mapping> 
-    
-         <mapping> 
-            <java-type>java.math.BigDecimal</java-type> 
-            <jdbc-type>NUMERIC</jdbc-type> 
-            <sql-type>DECIMAL</sql-type> 
-         </mapping> 
-    
-         <mapping> 
-            <java-type>java.lang.Boolean</java-type> 
-            <jdbc-type>BIT</jdbc-type> 
-            <sql-type>SMALLINT</sql-type> 
-         </mapping> 
-    
-         <mapping> 
-            <java-type>java.lang.Integer</java-type> 
-            <jdbc-type>INTEGER</jdbc-type> 
-            <sql-type>INTEGER</sql-type> 
-         </mapping> 
-    
-         <mapping> 
-            <java-type>java.lang.Long</java-type> 
-            <jdbc-type>BIGINT</jdbc-type> 
-            <sql-type>NUMERIC(18,0)</sql-type> 
-         </mapping> 
-    
-         <mapping> 
-            <java-type>java.lang.Float</java-type> 
-            <jdbc-type>REAL</jdbc-type> 
-            <sql-type>FLOAT</sql-type> 
-         </mapping> 
-    
-         <mapping> 
-            <java-type>java.lang.Double</java-type> 
-            <jdbc-type>DOUBLE</jdbc-type> 
-            <sql-type>DOUBLE PRECISION</sql-type> 
-         </mapping> 
-    
-         <mapping> 
-            <java-type>java.lang.Byte</java-type> 
-            <jdbc-type>TINYINT</jdbc-type> 
-            <sql-type>SMALLINT</sql-type> 
-         </mapping> 
-    
-         <mapping> 
-            <java-type>java.lang.Short</java-type> 
-            <jdbc-type>SMALLINT</jdbc-type> 
-            <sql-type>SMALLINT</sql-type> 
-         </mapping> 
-    
-         <mapping> 
-            <java-type>java.util.Date</java-type> 
-            <jdbc-type>TIMESTAMP</jdbc-type> 
-            <sql-type>DATETIME YEAR TO FRACTION(3)</sql-type> 
-         </mapping> 
-    
-         <mapping> 
-            <java-type>java.sql.Date</java-type> 
-            <jdbc-type>DATE</jdbc-type> 
-            <sql-type>DATE</sql-type> 
-         </mapping> 
-    
-         <mapping> 
-            <java-type>java.sql.Time</java-type> 
-            <jdbc-type>TIME</jdbc-type> 
-            <sql-type>TIME</sql-type> 
-         </mapping> 
-    
-         <mapping> 
-            <java-type>java.sql.Timestamp</java-type> 
-            <jdbc-type>TIMESTAMP</jdbc-type> 
-            <sql-type>DATETIME YEAR TO FRACTION(3)</sql-type> 
-         </mapping> 
-    
-         <mapping> 
-            <java-type>java.lang.Object</java-type> 
-            <jdbc-type>JAVA_OBJECT</jdbc-type> 
-            <sql-type>BYTE</sql-type> 
-         </mapping> 
-      </type-mapping> 
-
-   </type-mappings>
-</jbosscmp-jdbc>
diff --git a/3.0.4/config/jboss/deploy/jbossweb.sar/META-INF/jboss-service.xml b/3.0.4/config/jboss/deploy/jbossweb.sar/META-INF/jboss-service.xml
deleted file mode 100644
index 61ad66c..0000000
--- a/3.0.4/config/jboss/deploy/jbossweb.sar/META-INF/jboss-service.xml
+++ /dev/null
@@ -1,227 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-
-<server>
-
-  <!-- ==================================================================== -->
-  <!-- Web Container                                                        -->
-  <!-- ==================================================================== -->
-
-  <!--
-     | Be sure to check that the configuration values are valid for your
-     | environment.
-   -->
-
-  <mbean code="org.jboss.jetty.JettyService" name="jboss.web:service=WebServer">
-
-    <!-- ================================================================= -->
-    <!-- Your webdefault.xml file - The default settings for every webapp  -->
-    <!-- deployed by Jetty. Make systemwide changes here to your webapps   -->
-    <!-- configurations.                                                   -->
-    <!-- ================================================================= -->
-
-    <attribute name="WebDefaultResource">webdefault.xml</attribute>
-
-    <!-- ================================================================== -->
-    <!-- If true, .war files are unpacked to a temporary directory. This    -->
-    <!-- is useful with JSPs.                                               -->
-    <!-- ================================================================== -->
-
-    <attribute name="UnpackWars">true</attribute>
-
-    <!-- ================================================================== -->
-    <!-- If true, Jetty first delegates loading a class to the webapp's     -->
-    <!-- parent class loader (a la Java 2). If false, Jetty follows the     -->
-    <!--  Servlet 2.3 specification, and tries the webapp's own loader      -->
-    <!-- first (for "non-system" classes)                                   -->
-    <!-- ================================================================== -->
-
-    <attribute name="Java2ClassLoadingCompliance">true</attribute>
-
-    <!-- ================================================================= -->
-    <!-- If you require JAAS authentication, configure the name of the     -->
-    <!-- attribute in which you expect to find the JAAS active subject:    -->
-    <!--                                                                   -->
-    <!-- Commenting out this configuration will disable JAAS support       -->
-    <!-- ================================================================= -->
-
-    <attribute name="SubjectAttributeName">j_subject</attribute>
-
-    <!-- ================================================================= -->
-    <!-- Configuring Jetty. The XML fragment contained in the              -->
-    <!-- name="ConfigurationElement" attribute is a Jetty-style            -->
-    <!-- configuration specification.  It is used to configure Jetty with  -->
-    <!-- a listener on port 8080, and a HTTP request log location.         -->
-    <!-- The placement here of other Jetty XML configuration statements    -->
-    <!-- for deploying webapps etc is not encouraged: if you REALLY NEED   -->
-    <!-- something extra, place it in WEB-INF/jetty-web.xml files          -->
-    <!-- ================================================================= -->
-
-    <attribute name="ConfigurationElement">
-      <Configure class="org.mortbay.jetty.Server">
-
-       <!-- =============================================================== -->
-       <!-- Configure the Request Listeners                                 -->
-       <!-- =============================================================== -->
-
-
-       <!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
-       <!-- Add and configure a HTTP listener to port 80                    -->
-       <!-- The default port can be changed using: java -Djetty.port=80     -->
-       <!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
-       <Call name="addListener">
-         <Arg>
-          <New class="org.mortbay.http.SocketListener">
-            <Set name="Port"><SystemProperty name="jetty.port" default="80"/></Set>
-            <Set name="MinThreads">5</Set>
-            <Set name="MaxThreads">100</Set>
-            <Set name="MaxIdleTimeMs">30000</Set>
-            <Set name="LowResourcePersistTimeMs">5000</Set>
-          </New>
-         </Arg>
-       </Call>
-
-
-       <!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
-       <!-- Add a HTTPS SSL listener on port 8843                           -->
-       <!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
-       <!-- UNCOMMENT TO ACTIVATE
-       <Call name="addListener">
-         <Arg>
-           <New class="org.mortbay.http.SunJsseListener">
-            <Set name="Port">8443</Set>
-            <Set name="MinThreads">5</Set>
-            <Set name="MaxThreads">100</Set>
-            <Set name="MaxIdleTimeMs">30000</Set>
-            <Set name="LowResourcePersistTimeMs">2000</Set>
-            <Set name="Keystore"><SystemProperty name="jetty.home" default="."/>/etc/demokeystore</Set>
-            <Set name="Password">OBF:1vny1zlo1x8e1vnw1vn61x8g1zlu1vn4</Set>
-            <Set name="KeyPassword">OBF:1u2u1wml1z7s1z7a1wnl1u2g</Set>
-           </New>
-         </Arg>
-       </Call>
-       -->
-
-
-       <!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
-       <!-- Add a AJP13 listener on port 8009                               -->
-       <!-- This protocol can be used with mod_jk in apache, IIS etc.       -->
-       <!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
-       <Call name="addListener">
-         <Arg>
-           <New class="org.mortbay.http.ajp.AJP13Listener">
-            <Set name="Port">8009</Set>
-            <Set name="MinThreads">5</Set>
-            <Set name="MaxThreads">255</Set>
-            <Set name="MaxIdleTimeMs">30000</Set>
-            <Set name="confidentialPort">443</Set>
-           </New>
-         </Arg>
-       </Call>
-
-		 <!-- Private assets are exposed by copying them to the
-		      specifyed directory and building a URI to the
-		      specified virtual folder. -->
-		      
-   <Call name="addContext">
-    <Arg>/private/*</Arg>
-    <Set name="ResourceBase">../server/tapestry/tmp/private</Set>
-    
-    <Call name="addHandler">
-      <Arg><New class="org.mortbay.http.handler.ResourceHandler"/></Arg>
-    </Call>
-    
-    <Call name="addHandler">
-    	<Arg><New class="org.mortbay.http.handler.NotFoundHandler"/></Arg>
-    </Call>
-  </Call>
-
-
-       <!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
-       <!-- Add and configure a NIO HTTP listener to port 8888              -->
-       <!-- This listener should be used to replace the standard HTTP       -->
-       <!-- listener when deployed on LARGE systems using jdk 1.4           -->
-       <!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
-       <!-- UNCOMMENT TO ACTIVATE
-       <Call name="addListener">
-         <Arg>
-           <New class="org.mortbay.http.SocketChannelListener">
-            <Set name="Port"><SystemProperty name="jetty.port" default="8888"/></Set>
-            <Set name="MinThreads">5</Set>
-            <Set name="MaxThreads">500</Set>
-            <Set name="MaxIdleTimeMs">30000</Set>
-           </New>
-         </Arg>
-       </Call>
-       -->
-       <!-- =============================================================== -->
-       <!-- Configure the Request Log                                       -->
-       <!-- =============================================================== -->
-       <Set name="RequestLog">
-         <New class="org.mortbay.http.NCSARequestLog">
-           <Arg><SystemProperty name="jboss.server.home.dir"/><SystemProperty name="jetty.log" default="/log"/>/yyyy_mm_dd.request.log
-           </Arg>
-           <Set name="retainDays">90</Set>
-           <Set name="append">true</Set>
-           <Set name="extended">true</Set>
-           <Set name="LogTimeZone">GMT</Set>
-         </New>
-       </Set>
-
-       <!-- ======================================================= -->
-       <!-- New Distributed Session Manager                         -->
-       <!-- ======================================================= -->
-
-       <!--
-       These can be set on a per webapp basis in WEB-INF/jetty-web.xml
-       -->
-
-      <Set name="DistributableSessionManagerPrototype">
-       <New class="org.mortbay.j2ee.session.Manager">
-        <Set name="scavengerPeriod">600</Set>
-        <!-- NYI
-        <Set name="workerName">node1</Set>
-        -->
-        <Set name="interceptorStack">
-         <Array type="org.mortbay.j2ee.session.StateInterceptor">
-<!--
-          <Item><New class="org.mortbay.j2ee.session.DebugInterceptor"/></Item>
--->
-          <Item><New class="org.mortbay.j2ee.session.ValidatingInterceptor"/></Item>
-          <Item><New class="org.mortbay.j2ee.session.TypeCheckingInterceptor"/></Item>
-          <Item><New class="org.mortbay.j2ee.session.BindingInterceptor"/></Item>
-          <Item><New class="org.mortbay.j2ee.session.PublishingInterceptor"/></Item>
-          <Item><New class="org.mortbay.j2ee.session.SubscribingInterceptor"/></Item>
-          <Item><New class="org.mortbay.j2ee.session.SynchronizingInterceptor"/></Item>
-         </Array>
-        </Set>
-        <!-- Put this back in for distributable support under 'all' configuration
-        <Set name="store">
-         <New class="org.mortbay.j2ee.session.JGStore">
-          <Set name="actualMaxInactiveInterval">604800</Set>
-          <Set name="scavengerPeriod">3600</Set>
-          <Set name="scavengerExtraTime">900</Set>
-          <Set name="protocolStack">UDP(mcast_addr=228.8.8.8;mcast_port=45566;ip_ttl=32;ucast_recv_buf_size=16000;ucast_send_buf_size=16000;mcast_send_buf_size=32000;mcast_recv_buf_size=64000;loopback=true):PING(timeout=2000;num_initial_members=3):MERGE2(min_interval=5000;max_interval=10000):FD_SOCK:VERIFY_SUSPECT(timeout=1500):pbcast.STABLE(desired_avg_gossip=20000):pbcast.NAKACK(gc_lag=50;retransmit_timeout=300,600,1200,2400,4800;max_xmit_size=8192):UNICAST(timeout=2000):FRAG(frag_size=8192;down_thread=false;up_thread=false):pbcast.GMS(join_timeout=5000;join_retry_timeout=2000;shun=false;print_local_addr=true):pbcast.STATE_TRANSFER</Set>
-          <Set name="subClusterName">DefaultSubCluster</Set>
-          <Set name="retrievalTimeOut">20000</Set>
-          <Set name="distributionTimeOut">5000</Set>
-          <Set name="distributionMode">GET_ALL</Set>
-         </New>
-        </Set>
-        -->
-       </New>
-      </Set>
-
-      <!-- For testing the Distributable SessionManager with e.g. Watchdog -->
-      <!--
-      <Set name="forceDistributable">true</Set>
-      -->
-
-      </Configure>
-     </attribute>
-
-  </mbean>
-
-  <!-- ==================================================================== -->
-  <!-- ==================================================================== -->
-
-</server>
diff --git a/3.0.4/config/jboss/deploy/mckoi-service.xml b/3.0.4/config/jboss/deploy/mckoi-service.xml
deleted file mode 100644
index 52797b2..0000000
--- a/3.0.4/config/jboss/deploy/mckoi-service.xml
+++ /dev/null
@@ -1,104 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-
-<!-- $Id$ -->
-
-<!-- ===================================================================== -->
-<!--                                                                       -->
-<!--  McKoi Database 1.00 configuration                                    -->
-<!--                                                                       -->
-<!-- ===================================================================== -->
-
-<!-- This is basically a cut-and-paste of the Solid example service, modified
-     for McKoi DB.  This required McKoi release 1.00, which includes
-     the MBean implementation that allow it to operate within JBoss
-     (previously, a seperate MBean JAR file was needed). -->
-      
-
-<server>
-
-	<!-- The current working directory is the JBoss/bin directory, so this
-		 relative path works. -->
-		 
-	<mbean code="net.sf.tapestry.contrib.mckoi.McKoiDB" name="jboss:service=McKoiDB">
-  		<attribute name="ConfigPath">../server/tapestry/db/tapestry.conf</attribute>
-	</mbean>
-	  		
-
-  <mbean
-  	code="org.jboss.resource.connectionmanager.LocalTxConnectionManager" 
-  	name="jboss.jca:service=LocalTxCM,name=McKoiDB">
-
-    <depends>jboss:service=McKoiDB</depends>
-      
-    <depends optional-attribute-name="ManagedConnectionFactoryName">
-      
-      <!--embedded mbean-->
-      <mbean
-      	code="org.jboss.resource.connectionmanager.RARDeployment" 
-      	name="jboss.jca:service=LocalTxDS,name=McKoiDB">
-
-        <attribute name="JndiName">McKoiDB</attribute>
-        
-        <!--NOTE: Solid wants the username/password in the URL, it will 
-            ignore the specific arguments.-->
-        <attribute name="ManagedConnectionFactoryProperties">
-          <properties>
-            <config-property name="ConnectionURL" type="java.lang.String">jdbc:mckoi://localhost/</config-property>
-            <config-property name="DriverClass" type="java.lang.String">com.mckoi.JDBCDriver</config-property>
-            <config-property name="UserName" type="java.lang.String">admin</config-property>
-            <config-property name="Password" type="java.lang.String">secret</config-property>
-          </properties>
-
-            <!--These properties are ignored by the Solid driver.
-            <config-property name="UserName" type="java.lang.String"></config-property>
-            <config-property name="Password" type="java.lang.String"></config-property>
-             -->
-        </attribute>
-        <!--hack-->
-        <depends optional-attribute-name="OldRarDeployment">jboss.jca:service=RARDeployment,name=JBoss LocalTransaction JDBC Wrapper</depends>
-      </mbean>
-    </depends>
-
-    <depends optional-attribute-name="ManagedConnectionPool">
-      <!--embedded mbean-->
-      <mbean code="org.jboss.resource.connectionmanager.JBossManagedConnectionPool"
-      	name="jboss.jca:service=LocalTxPool,name=McKoiDB">
-
-        <attribute name="MinSize">0</attribute>
-        <attribute name="MaxSize">50</attribute>
-        <attribute name="BlockingTimeoutMillis">5000</attribute>
-        <attribute name="IdleTimeoutMinutes">15</attribute>
-        <!--criteria indicates if Subject (from security domain) or app supplied
-            parameters (such as from getConnection(user, pw)) are used to distinguish
-            connections in the pool. Choices are 
-            ByContainerAndApplication (use both), 
-            ByContainer (use Subject),
-            ByApplication (use app supplied params only),
-            ByNothing (all connections are equivalent, usually if adapter supports
-              reauthentication)-->
-        <!-- Since at present only a single user specified in the URL is supported, 
-          ByNothing is mosst appropriate.  If a URL construction scheme is implemented, 
-          this could be one of the other values -->
-        <attribute name="Criteria">ByNothing</attribute>
-      </mbean>
-
-    </depends>
-    <depends optional-attribute-name="CachedConnectionManager">jboss.jca:service=CachedConnectionManager</depends>
-   <!-- Since the username/password needs to be in the url, there is no way at 
-     present for a generic wrapper to supply user/pw to the driver.  A custom 
-     wrapper could be used to consruct the url dynamically from a base and the 
-     user/pw.  In case someone does that, I'm leaving the container-managed-security 
-     attribute in.  -->
-    <!-- <attribute name="SecurityDomainJndiName">SolidDbRealm</attribute>-->
-    
-    <depends optional-attribute-name="JaasSecurityManagerService">jboss.security:service=JaasSecurityManager</depends>
-    
-
-    <attribute name="TransactionManager">java:/TransactionManager</attribute>
-    <!--make the rar deploy! hack till better deployment-->
-    <depends>jboss.jca:service=RARDeployer</depends>
-  </mbean>
-
-</server>
-
-
diff --git a/3.0.4/config/jboss/tapestry-db.zip b/3.0.4/config/jboss/tapestry-db.zip
deleted file mode 100644
index d2a4f2a..0000000
--- a/3.0.4/config/jboss/tapestry-db.zip
+++ /dev/null
Binary files differ
diff --git a/3.0.4/config/jetty-workbench.xml b/3.0.4/config/jetty-workbench.xml
deleted file mode 100644
index 7b75ceb..0000000
--- a/3.0.4/config/jetty-workbench.xml
+++ /dev/null
@@ -1,57 +0,0 @@
-<?xml version="1.0" encoding="ISO-8859-1"?>
-<!-- $Id$ -->
-<!DOCTYPE Configure PUBLIC
-	"-//Mort Bay Consulting//DTD Configure 1.2//EN"
-	"http://jetty.mortbay.org/configure_1_2.dtd">
-<!--
-  This configuration file is used to allow the Tutorial to be run directly from
-  the main distribution directory (i.e., without having to build the frameworks).
-  -->
-<Configure class="org.mortbay.jetty.Server">
-  <Call name="addListener">
-    <Arg>
-      <New class="org.mortbay.http.SocketListener">
-        <Set name="Port">8080</Set>
-        <Set name="MinThreads">1</Set>
-        <Set name="MaxThreads">10</Set>
-        <Set name="MaxIdleTimeMs">50000</Set>
-      </New>
-    </Arg>
-  </Call>
-  
-  <Call name="addWebApplication">
-    <Arg>/workbench</Arg>
-    <Arg>lib/examples/workbench.war</Arg>
-    <Set name="DefaultsDescriptor">config/webdefault.xml</Set>
-  </Call>
-  
-   <Call name="addContext">
-    <Arg>/private/*</Arg>
-    <Set name="ResourceBase">private</Set>
-    
-    <Call name="addHandler">
-      <Arg><New class="org.mortbay.http.handler.ResourceHandler"/></Arg>
-    </Call>
-    
-    <Call name="addHandler">
-    	<Arg><New class="org.mortbay.http.handler.NotFoundHandler"/></Arg>
-    </Call>
-  </Call>
-  
-  <Call name="addContext">
-    <Arg>/</Arg>   
-    <Set name="realmName">Jetty Demo Realm</Set>
-   
-    <Call name="addServlet">
-      <Arg>Admin</Arg>
-      <Arg>/</Arg>
-      <Arg>org.mortbay.servlet.AdminServlet</Arg>
-    </Call>
-    
-    <Call name="setAttribute">
-      <Arg>org.mortbay.http.HttpServer</Arg>
-      <Arg><Call name="getHttpServer"/></Arg>
-    </Call>
-  </Call> 
-   
-</Configure>
diff --git a/3.0.4/config/log4j.properties b/3.0.4/config/log4j.properties
deleted file mode 100644
index ee019a8..0000000
--- a/3.0.4/config/log4j.properties
+++ /dev/null
@@ -1,12 +0,0 @@
-# $Id$
-# Set root category priority to INFO and its only appender to A1.
-log4j.rootCategory=WARN, A1
-
-# A1 is set to be a ConsoleAppender. 
-log4j.appender.A1=org.apache.log4j.ConsoleAppender
-
-# A1 uses PatternLayout.
-log4j.appender.A1.layout=org.apache.log4j.PatternLayout
-log4j.appender.A1.layout.ConversionPattern=%r %c{1} [%p] %m%n
-
-log4j.category.org.apache.commons.digester.Digester=FATAL
\ No newline at end of file
diff --git a/3.0.4/config/webdefault.xml b/3.0.4/config/webdefault.xml
deleted file mode 100644
index 2f1fe3c..0000000
--- a/3.0.4/config/webdefault.xml
+++ /dev/null
@@ -1,116 +0,0 @@
-<!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" "http://java.sun.com/dtd/web-app_2_3.dtd">   
-<!-- $Id$ -->
-
-<web-app>
-  <description>
-    Default web.xml file.  
-    This file is applied to a Web application before it's own WEB_INF/web.xml file
-  </description>
- 
-
-  <!-- ==================================================================== -->
-  <!-- JSP Servlet                                                          -->
-  <!-- This is the jasper JSP servlet from the jakarta project              -->
-  <!-- The following initParameters are supported:                          -->
-  <!--                                                                      -->
-  <!--   classpath           What class path should I use while compiling   -->
-  <!--                       generated servlets?  [Created dynamically      -->
-  <!--                       based on the current web application]          -->
-  <!--                                                                      -->
-  <!--   classdebuginfo      Should the class file be compiled with         -->
-  <!--                       debugging information?  [false]                -->
-  <!--                                                                      -->
-  <!--   ieClassId           The class-id value to be sent to Internet      -->
-  <!--                       Explorer when using <jsp:plugin> tags.         -->
-  <!--                       [clsid:8AD9C840-044E-11D1-B3E9-00805F499D93]   -->
-  <!--                                                                      -->
-  <!--   jspCompilerPlugin   The fully qualified class name of the JSP      -->
-  <!--                       compiler plug-in to be used.  See below for    -->
-  <!--                       more information.                              -->
-  <!--                       [Use internal JDK compiler]                    -->
-  <!--                                                                      -->
-  <!--   keepgenerated       Should we keep the generated Java source code  -->
-  <!--                       for each page instead of deleting it? [true]   -->
-  <!--                                                                      -->
-  <!--   largefile           Should we store the static content of JSP      -->
-  <!--                       pages in external data files, to reduce the    -->
-  <!--                       size of the generated servlets?  [false]       -->
-  <!--                                                                      -->
-  <!--   logVerbosityLevel   The level of detailed messages to be produced  -->
-  <!--                       by this servlet.  Increasing levels cause the  -->
-  <!--                       generation of more messages.  Valid values are -->
-  <!--                       FATAL, ERROR, WARNING, INFORMATION, and DEBUG. -->
-  <!--                       [WARNING]                                      -->
-  <!--                                                                      -->
-  <!--   mappedfile          Should we generate static content with one     -->
-  <!--                       print statement per input line, to ease        -->
-  <!--                       debugging?  [false]                            -->
-  <!--                                                                      -->
-  <!--   scratchdir          What scratch directory should we use when      -->
-  <!--                       compiling JSP pages?  [default work directory  -->
-  <!--                       for the current web application]               -->
-  <!--                                                                      -->
-  <!-- If you wish to use Jikes to compile JSP pages:                       -->
-  <!-- * Set the "classpath" initialization parameter appropriately         -->
-  <!--   for this web application.                                          -->
-  <!-- * Set the "jspCompilerPlugin" initialization parameter to            -->
-  <!--   "org.apache.jasper.compiler.JikesJavaCompiler".                    -->
-  <!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -  -->
-  
-  <servlet>
-    <servlet-name>jsp</servlet-name>
-    <servlet-class>org.apache.jasper.servlet.JspServlet</servlet-class>
-    <load-on-startup>0</load-on-startup>
-  </servlet>
-
-  <servlet>
-    <servlet-name>Default</servlet-name>
-    <servlet-class>org.mortbay.jetty.servlet.Default</servlet-class>
-    <init-param>
-      <param-name>acceptRanges</param-name>
-      <param-value>true</param-value>
-    </init-param>
-    <init-param>
-      <param-name>dirAllowed</param-name>
-      <param-value>true</param-value>
-    </init-param>
-    <init-param>
-      <param-name>putAllowed</param-name>
-      <param-value>false</param-value>
-    </init-param>
-    <init-param>
-      <param-name>delAllowed</param-name>
-      <param-value>false</param-value>
-    </init-param>
-    <init-param>
-      <param-name>redirectWelcome</param-name>
-      <param-value>true</param-value>
-    </init-param>
-    <load-on-startup>1</load-on-startup>
-  </servlet>
-  
-
-  <!-- ==================================================================== -->
-  <servlet-mapping>
-    <servlet-name>Default</servlet-name>
-    <url-pattern>/</url-pattern>
-  </servlet-mapping>
-
-  <servlet-mapping>
-    <servlet-name>jsp</servlet-name>
-    <url-pattern>*.jsp</url-pattern>
-  </servlet-mapping>
-
-  <!-- ==================================================================== -->
-  <session-config>
-    <session-timeout>60</session-timeout>
-  </session-config>
-
-  <!-- ==================================================================== -->
-  <welcome-file-list>
-    <welcome-file>index.html</welcome-file>
-    <welcome-file>index.htm</welcome-file>
-  </welcome-file-list>
-
-</web-app>
-
diff --git a/3.0.4/contrib/.cvsignore b/3.0.4/contrib/.cvsignore
deleted file mode 100644
index 602053d..0000000
--- a/3.0.4/contrib/.cvsignore
+++ /dev/null
@@ -1,3 +0,0 @@
-classes

-*.log

-target

diff --git a/3.0.4/contrib/build.xml b/3.0.4/contrib/build.xml
deleted file mode 100644
index 35337d7..0000000
--- a/3.0.4/contrib/build.xml
+++ /dev/null
@@ -1,46 +0,0 @@
-<?xml version="1.0"?>
-<!-- $Id$ -->
-<project name="Tapestry Contrib Framework" default="install">
-	<property name="root.dir" value=".."/>
-	<property file="${root.dir}/config/Version.properties"/>
-	<property file="${root.dir}/config/build.properties"/>
-	<property file="${root.dir}/config/common.properties"/>
-	<path id="jetty.classpath">
-		<fileset dir="${jetty.dir}">
-			<include name="**/javax.*.jar"/>
-		</fileset>
-	</path>
-	<path id="project.classpath">
-		<fileset dir="${root.lib.dir}">
-			<include name="${framework.jar}"/>
-			<include name="${ext.dir}/*.jar"/>
-			<include name="${j2ee.dir}/*.jar"/>
-		</fileset>
-	</path>
-	<target name="init">
-		<mkdir dir="${classes.dir}"/>
-	</target>
-	<target name="clean">
-		<delete dir="${classes.dir}"/>
-	</target>
-
-	<target name="compile" depends="init"
-		description="Compile all classes in the framework.">
-		<javac srcdir="${src.dir}" destdir="${classes.dir}" debug="on"
-			target="1.1" source="1.3">
-			<classpath refid="project.classpath"/>
-		</javac>
-	</target>
-
-	<target name="install" depends="compile"
-		description="Compile all classes and build the installed JAR including all package resources."
-		>
-		<jar jarfile="${root.lib.dir}/${contrib.jar}">
-			<fileset dir="${classes.dir}"/>
-			<fileset dir="${src.dir}">
-				<exclude name="**/*.java"/>
-				<exclude name="**/package.html"/>
-			</fileset>
-		</jar>
-	</target>
-</project>
diff --git a/3.0.4/contrib/src/org/apache/tapestry/contrib/Contrib.library b/3.0.4/contrib/src/org/apache/tapestry/contrib/Contrib.library
deleted file mode 100644
index fb5b813..0000000
--- a/3.0.4/contrib/src/org/apache/tapestry/contrib/Contrib.library
+++ /dev/null
@@ -1,76 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
-    Copyright 2004 The Apache Software Foundation
-  
-   Licensed under the Apache License, Version 2.0 (the "License");
-   you may not use this file except in compliance with the License.
-   You may obtain a copy of the License at
-  
-       http://www.apache.org/licenses/LICENSE-2.0
-  
-   Unless required by applicable law or agreed to in writing, software
-   distributed under the License is distributed on an "AS IS" BASIS,
-   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-   See the License for the specific language governing permissions and
-   limitations under the License.
--->
-<!-- $Id$ -->
-<!DOCTYPE library-specification PUBLIC 
-  "-//Apache Software Foundation//Tapestry Specification 3.0//EN" 
-  "http://jakarta.apache.org/tapestry/dtd/Tapestry_3_0.dtd">
-	
-<library-specification>
-
-  <component-type type="InspectorButton" specification-path="inspector/InspectorButton.jwc"/>
-  <page name="Inspector" specification-path="inspector/Inspector.page"/>
-
-  <library id="inspector" specification-path="inspector/Inspector.library"/>
-
-  <component-type type="Choose" specification-path="components/Choose.jwc"/>
-  <component-type type="When" specification-path="components/When.jwc"/>
-  <component-type type="Otherwise" specification-path="components/Otherwise.jwc"/>
-
-  <component-type type="Palette" specification-path="palette/Palette.jwc"/>
-  <component-type type="MultiplePropertySelection" specification-path="form/MultiplePropertySelection.jwc"/>
-  <component-type type="DateField" specification-path="valid/DateField.jwc"/>
-  <component-type type="MaskEdit" specification-path="form/MaskEdit.jwc"/>
-  <component-type type="NumericField" specification-path="valid/NumericField.jwc"/>
-  <component-type type="ValidatingTextField" specification-path="valid/ValidatingTextField.jwc"/>
-  <component-type type="FormConditional" specification-path="form/FormConditional.jwc"/>
-
-  <component-type type="InheritInformalAny" specification-path="informal/InheritInformalAny.jwc"/>
-
-  <component-type type="Table" specification-path="table/components/Table.jwc"/>
-  <component-type type="TableColumns" specification-path="table/components/TableColumns.jwc"/>
-  <component-type type="TablePages" specification-path="table/components/TablePages.jwc"/>
-  <component-type type="TableRows" specification-path="table/components/TableRows.jwc"/>
-  <component-type type="TableValues" specification-path="table/components/TableValues.jwc"/>
-  <component-type type="TableView" specification-path="table/components/TableView.jwc"/>
-  <component-type type="FormTable" specification-path="table/components/FormTable.jwc"/>
-  <component-type type="TableFormRows" specification-path="table/components/TableFormRows.jwc"/>
-  <component-type type="TableFormPages" specification-path="table/components/TableFormPages.jwc"/>
-
-  <page name="SimpleTableColumnPage" specification-path="table/components/inserted/SimpleTableColumnPage.page"/>
-  <component-type type="SimpleTableColumnComponent" specification-path="table/components/inserted/SimpleTableColumnComponent.jwc"/>
-  <component-type type="SimpleTableColumnFormComponent" specification-path="table/components/inserted/SimpleTableColumnFormComponent.jwc"/>
-
-  <component-type type="PopupLink" specification-path="popup/PopupLink.jwc"/>
-
-    <component-type type="Tree"
-        specification-path="/org/apache/tapestry/contrib/tree/components/Tree.jwc"/>
-    <component-type type="TreeDataView"
-        specification-path="/org/apache/tapestry/contrib/tree/components/TreeDataView.jwc"/>
-    <component-type type="TreeNodeView"
-        specification-path="/org/apache/tapestry/contrib/tree/components/TreeNodeView.jwc"/>
-    <component-type type="TreeView"
-        specification-path="/org/apache/tapestry/contrib/tree/components/TreeView.jwc"/>
-    <component-type type="TreeTableDataView"
-        specification-path="/org/apache/tapestry/contrib/tree/components/table/TreeTableDataView.jwc"/>
-    <component-type type="TreeTable"
-        specification-path="/org/apache/tapestry/contrib/tree/components/table/TreeTable.jwc"/>
-    <component-type type="TreeTableNodeViewDelegator"
-        specification-path="/org/apache/tapestry/contrib/tree/components/table/TreeTableNodeViewDelegator.jwc"/>
-    <page name="TreeNodeViewPage" specification-path="/org/apache/tapestry/contrib/tree/components/TreeNodeViewPage.page"/>
-
-    <page name="TreeTableNodeViewPage" specification-path="/org/apache/tapestry/contrib/tree/components/table/TreeTableNodeViewPage.page"/>
-</library-specification>
\ No newline at end of file
diff --git a/3.0.4/contrib/src/org/apache/tapestry/contrib/components/Choose.java b/3.0.4/contrib/src/org/apache/tapestry/contrib/components/Choose.java
deleted file mode 100644
index 20c41f4..0000000
--- a/3.0.4/contrib/src/org/apache/tapestry/contrib/components/Choose.java
+++ /dev/null
@@ -1,62 +0,0 @@
-//  Copyright 2004 The Apache Software Foundation
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-package org.apache.tapestry.contrib.components;
-
-import org.apache.tapestry.IRender;
-import org.apache.tapestry.IRequestCycle;
-import org.apache.tapestry.components.Conditional;
-
-/**
- *  This component is a container for {@link When} or Otherwise components;
- *  it provides the context for mutually exclusive conditional evaluation.
- *
- *  [<a href="../../../../../../ComponentReference/contrib.Choose.html">Component Reference</a>]
- *
- *  @author David Solis
- *  @version $Id$
- * 
- **/
-public abstract class Choose extends Conditional {
-
-
-	public void addBody(IRender element)
-	{
-		super.addBody(element);
-		if (element instanceof When)
-			((When) element).setChoose(this);	
-	}
-	
-	protected void cleanupAfterRender(IRequestCycle cycle)
-	{
-		setConditionMet(false);
-		super.cleanupAfterRender(cycle);
-	}
-	
-	protected boolean evaluateCondition()
-	{
-		return getCondition();
-	}
-
-	public boolean getInvert()
-	{
-		// This component doesn't require invert parameter.
-		return false;
-	}
-
-	public abstract boolean getCondition();
-	
-	public abstract boolean isConditionMet();
-	public abstract void setConditionMet(boolean value);
-}
diff --git a/3.0.4/contrib/src/org/apache/tapestry/contrib/components/Choose.jwc b/3.0.4/contrib/src/org/apache/tapestry/contrib/components/Choose.jwc
deleted file mode 100644
index e3a522c..0000000
--- a/3.0.4/contrib/src/org/apache/tapestry/contrib/components/Choose.jwc
+++ /dev/null
@@ -1,44 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
-   Copyright 2004 The Apache Software Foundation
-  
-   Licensed under the Apache License, Version 2.0 (the "License");
-   you may not use this file except in compliance with the License.
-   You may obtain a copy of the License at
-  
-       http://www.apache.org/licenses/LICENSE-2.0
-  
-   Unless required by applicable law or agreed to in writing, software
-   distributed under the License is distributed on an "AS IS" BASIS,
-   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-   See the License for the specific language governing permissions and
-   limitations under the License.
--->
-<!-- $Id$ -->
-<!DOCTYPE component-specification PUBLIC 
-  "-//Apache Software Foundation//Tapestry Specification 3.0//EN" 
-  "http://jakarta.apache.org/tapestry/dtd/Tapestry_3_0.dtd">
-  
-<component-specification class="org.apache.tapestry.contrib.components.Choose">
-
-  <description>
-  Provides the context for mutually exclusive conditional evaluation.
-  </description>
-
-  <parameter name="condition" type="boolean" direction="in" default-value="true">
-    <description>
-    The condition to evaluate.
-    </description>
-  </parameter>
-
-  <parameter name="element" type="java.lang.String" direction="in">
-  	<description>
-  	The element to emulate.
-  	</description>
-  </parameter>
-
-  <reserved-parameter name="invert"/>
-  
-  <property-specification name="conditionMet" type="boolean" initial-value="false"/>
-  
-</component-specification>
diff --git a/3.0.4/contrib/src/org/apache/tapestry/contrib/components/Otherwise.jwc b/3.0.4/contrib/src/org/apache/tapestry/contrib/components/Otherwise.jwc
deleted file mode 100644
index 3beb4f9..0000000
--- a/3.0.4/contrib/src/org/apache/tapestry/contrib/components/Otherwise.jwc
+++ /dev/null
@@ -1,40 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
-   Copyright 2004 The Apache Software Foundation
-  
-   Licensed under the Apache License, Version 2.0 (the "License");
-   you may not use this file except in compliance with the License.
-   You may obtain a copy of the License at
-  
-       http://www.apache.org/licenses/LICENSE-2.0
-  
-   Unless required by applicable law or agreed to in writing, software
-   distributed under the License is distributed on an "AS IS" BASIS,
-   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-   See the License for the specific language governing permissions and
-   limitations under the License.
--->
-<!-- $Id$ -->
-<!DOCTYPE component-specification PUBLIC 
-  "-//Apache Software Foundation//Tapestry Specification 3.0//EN" 
-  "http://jakarta.apache.org/tapestry/dtd/Tapestry_3_0.dtd">
-  
-<component-specification class="org.apache.tapestry.contrib.components.When">
-  <description>
-  Otherwise is just a When component that always tries to render its body and/or emulate an element 
-  and its attributes (if element is specified) .
-  </description>
-  
-  <parameter name="element" type="java.lang.String" direction="in">
-  	<description>
-  	The element to emulate.
-  	</description>
-  </parameter>
-
-  <reserved-parameter name="condition"/>
-
-  <reserved-parameter name="invert"/>
-
-  <property-specification name="condition" type="boolean" initial-value="true"/>
-  
-</component-specification>
diff --git a/3.0.4/contrib/src/org/apache/tapestry/contrib/components/When.java b/3.0.4/contrib/src/org/apache/tapestry/contrib/components/When.java
deleted file mode 100644
index 9bcc3fa..0000000
--- a/3.0.4/contrib/src/org/apache/tapestry/contrib/components/When.java
+++ /dev/null
@@ -1,91 +0,0 @@
-//  Copyright 2004 The Apache Software Foundation
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-package org.apache.tapestry.contrib.components;
-
-import org.apache.tapestry.ApplicationRuntimeException;
-import org.apache.tapestry.IMarkupWriter;
-import org.apache.tapestry.IRequestCycle;
-import org.apache.tapestry.Tapestry;
-import org.apache.tapestry.components.Conditional;
-
-/**
- *  Represents an alternative whithin a {@link Choose} component. 
- *  The default alternative is described by the Otherwise component.
- *
- *  [<a href="../../../../../../ComponentReference/contrib.When.html">Component Reference</a>]
- *
- *  @author David Solis
- *  @version $Id$
- * 
- **/
-public abstract class When extends Conditional
-{
-    /** Parent of this component. */
-
-    private Choose _choose;
-
-    /**
-     *  Renders its wrapped components only if the condition is true and its parent {@link Choose}
-     *  allows it. In addition, if element is specified, can emulate that HTML element.
-     *
-     **/
-
-    protected void renderComponent(IMarkupWriter writer, IRequestCycle cycle)
-    {
-        Choose choose = getChoose();
-
-        if (choose == null)
-            throw new ApplicationRuntimeException(
-                Tapestry.getMessage("When.must-be-contained-by-choose"),
-                this,
-                null,
-                null);
-
-        if (!choose.isConditionMet() && getCondition())
-        {
-            choose.setConditionMet(true);
-            super.renderComponent(writer, cycle);
-        }
-    }
-
-    protected boolean evaluateCondition()
-    {
-        return true;
-    }
-
-    public boolean getInvert()
-    {
-        // This component doesn't require invert parameter.
-        return false;
-    }
-
-    /**
-     *  @return Choose
-     */
-    public Choose getChoose()
-    {
-        return _choose;
-    }
-
-    /**
-     *  Sets the choose.
-     *  @param value The choose to set
-     */
-    public void setChoose(Choose value)
-    {
-        _choose = value;
-    }
-
-}
diff --git a/3.0.4/contrib/src/org/apache/tapestry/contrib/components/When.jwc b/3.0.4/contrib/src/org/apache/tapestry/contrib/components/When.jwc
deleted file mode 100644
index be9b7a8..0000000
--- a/3.0.4/contrib/src/org/apache/tapestry/contrib/components/When.jwc
+++ /dev/null
@@ -1,42 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
-   Copyright 2004 The Apache Software Foundation
-  
-   Licensed under the Apache License, Version 2.0 (the "License");
-   you may not use this file except in compliance with the License.
-   You may obtain a copy of the License at
-  
-       http://www.apache.org/licenses/LICENSE-2.0
-  
-   Unless required by applicable law or agreed to in writing, software
-   distributed under the License is distributed on an "AS IS" BASIS,
-   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-   See the License for the specific language governing permissions and
-   limitations under the License.
--->
-<!-- $Id$ -->
-<!DOCTYPE component-specification PUBLIC 
-  "-//Apache Software Foundation//Tapestry Specification 3.0//EN" 
-  "http://jakarta.apache.org/tapestry/dtd/Tapestry_3_0.dtd">
-  
-<component-specification class="org.apache.tapestry.contrib.components.When">
-  <description>
-  If this is the first When component to evaluate to true within Choose then emulates an element 
-  and its attributes (if element is specified) and/or includes a block of content.
-  </description>
-  
-  <parameter name="condition" type="boolean" direction="in">
-    <description>
-    The condition to evaluate.
-    </description>
-  </parameter>
-  
-  <parameter name="element" type="java.lang.String" direction="in">
-  	<description>
-  	The element to emulate.
-  	</description>
-  </parameter>
-
-  <reserved-parameter name="invert"/>
-  
-</component-specification>
diff --git a/3.0.4/contrib/src/org/apache/tapestry/contrib/components/package.html b/3.0.4/contrib/src/org/apache/tapestry/contrib/components/package.html
deleted file mode 100644
index 14e9648..0000000
--- a/3.0.4/contrib/src/org/apache/tapestry/contrib/components/package.html
+++ /dev/null
@@ -1,14 +0,0 @@
-<!doctype html public "-//W3C//DTD HTML 4.0 Transitional//EN">
-<!-- $Id$ -->
-<html>
-<head>
-<title>Tapestry: Web Application Framework</title>
-</head>
-<body>
-
-<p>Contribution of foundational components.
-
-@author David Solis <a href="mailto:dsolis@apache.org">dsolis@apache.org</a>
-
-</body>
-</html>
diff --git a/3.0.4/contrib/src/org/apache/tapestry/contrib/ejb/XCreateException.java b/3.0.4/contrib/src/org/apache/tapestry/contrib/ejb/XCreateException.java
deleted file mode 100644
index 1e8bb86..0000000
--- a/3.0.4/contrib/src/org/apache/tapestry/contrib/ejb/XCreateException.java
+++ /dev/null
@@ -1,54 +0,0 @@
-//  Copyright 2004 The Apache Software Foundation
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-package org.apache.tapestry.contrib.ejb;
-
-import javax.ejb.CreateException;
-
-/**
- *  Extended version of {@link CreateException} that includes a root cause.
- *
- *  @version $Id$
- *  @author Howard Lewis Ship
- *
- **/
-
-public class XCreateException extends CreateException
-{
-    private Throwable rootCause;
-
-    public XCreateException(String message)
-    {
-        super(message);
-    }
-
-    public XCreateException(String message, Throwable rootCause)
-    {
-        super(message);
-
-        this.rootCause = rootCause;
-    }
-
-    public XCreateException(Throwable rootCause)
-    {
-        super(rootCause.getMessage());
-
-        this.rootCause = rootCause;
-    }
-
-    public Throwable getRootCause()
-    {
-        return rootCause;
-    }
-}
\ No newline at end of file
diff --git a/3.0.4/contrib/src/org/apache/tapestry/contrib/ejb/XEJBException.java b/3.0.4/contrib/src/org/apache/tapestry/contrib/ejb/XEJBException.java
deleted file mode 100644
index bd92f4c..0000000
--- a/3.0.4/contrib/src/org/apache/tapestry/contrib/ejb/XEJBException.java
+++ /dev/null
@@ -1,57 +0,0 @@
-//  Copyright 2004 The Apache Software Foundation
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-package org.apache.tapestry.contrib.ejb;
-
-import javax.ejb.EJBException;
-
-/**
- *  Extended version of {@link EJBException} that includes a root cause.
- *  {@link EJBException} doesn't have quite the right constructor for this ...
- *  it has an equivalent to the rootCause property, (causedByException), but
- *  doesn't have a constructor that allows us to set a custom message.
- *
- *  @version $Id$
- *  @author Howard Lewis Ship
- *
- **/
-
-public class XEJBException extends EJBException
-{
-    private Throwable rootCause;
-
-    public XEJBException(String message)
-    {
-        super(message);
-    }
-
-    public XEJBException(String message, Throwable rootCause)
-    {
-        super(message);
-
-        this.rootCause = rootCause;
-    }
-
-    public XEJBException(Throwable rootCause)
-    {
-        super(rootCause.getMessage());
-
-        this.rootCause = rootCause;
-    }
-
-    public Throwable getRootCause()
-    {
-        return rootCause;
-    }
-}
\ No newline at end of file
diff --git a/3.0.4/contrib/src/org/apache/tapestry/contrib/ejb/XFinderException.java b/3.0.4/contrib/src/org/apache/tapestry/contrib/ejb/XFinderException.java
deleted file mode 100644
index a340ee8..0000000
--- a/3.0.4/contrib/src/org/apache/tapestry/contrib/ejb/XFinderException.java
+++ /dev/null
@@ -1,54 +0,0 @@
-//  Copyright 2004 The Apache Software Foundation
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-package org.apache.tapestry.contrib.ejb;
-
-import javax.ejb.FinderException;
-
-/**
- *  Extended version of {@link FinderException} that includes a root cause.
- *
- *  @version $Id$
- *  @author Howard Lewis Ship
- *
- **/
-
-public class XFinderException extends FinderException
-{
-    private Throwable rootCause;
-
-    public XFinderException(String message)
-    {
-        super(message);
-    }
-
-    public XFinderException(String message, Throwable rootCause)
-    {
-        super(message);
-
-        this.rootCause = rootCause;
-    }
-
-    public XFinderException(Throwable rootCause)
-    {
-        super(rootCause.getMessage());
-
-        this.rootCause = rootCause;
-    }
-
-    public Throwable getRootCause()
-    {
-        return rootCause;
-    }
-}
\ No newline at end of file
diff --git a/3.0.4/contrib/src/org/apache/tapestry/contrib/ejb/XRemoveException.java b/3.0.4/contrib/src/org/apache/tapestry/contrib/ejb/XRemoveException.java
deleted file mode 100644
index 92b0132..0000000
--- a/3.0.4/contrib/src/org/apache/tapestry/contrib/ejb/XRemoveException.java
+++ /dev/null
@@ -1,54 +0,0 @@
-//  Copyright 2004 The Apache Software Foundation
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-package org.apache.tapestry.contrib.ejb;
-
-import javax.ejb.RemoveException;
-
-/**
- *  Extended version of {@link RemoveException} that includes a root cause.
- *
- *  @version $Id$
- *  @author Howard Lewis Ship
- *
- **/
-
-public class XRemoveException extends RemoveException
-{
-    private Throwable rootCause;
-
-    public XRemoveException(String message)
-    {
-        super(message);
-    }
-
-    public XRemoveException(String message, Throwable rootCause)
-    {
-        super(message);
-
-        this.rootCause = rootCause;
-    }
-
-    public XRemoveException(Throwable rootCause)
-    {
-        super(rootCause.getMessage());
-
-        this.rootCause = rootCause;
-    }
-
-    public Throwable getRootCause()
-    {
-        return rootCause;
-    }
-}
\ No newline at end of file
diff --git a/3.0.4/contrib/src/org/apache/tapestry/contrib/ejb/package.html b/3.0.4/contrib/src/org/apache/tapestry/contrib/ejb/package.html
deleted file mode 100644
index 1e0fbfb..0000000
--- a/3.0.4/contrib/src/org/apache/tapestry/contrib/ejb/package.html
+++ /dev/null
@@ -1,16 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
-<!-- $Id$ -->
-<html>
-<head>
-<title>Tapestry: Web Application Framework</title>
-</head>
-<body>
-
-<p>Subclasses of the EJB exceptions that take an optional, additional, root cause Throwable
-to identify the underlying reason for the exception.  This is less necessary in JDK 1.4, which
-support root cause for all exceptions.
-
-@author Howard Lewis Ship <a href="mailto:hlship@apache.org">hlship@apache.org</a>
-
-</body>
-</html>
diff --git a/3.0.4/contrib/src/org/apache/tapestry/contrib/form/CheckBoxMultiplePropertySelectionRenderer.java b/3.0.4/contrib/src/org/apache/tapestry/contrib/form/CheckBoxMultiplePropertySelectionRenderer.java
deleted file mode 100644
index 3661094..0000000
--- a/3.0.4/contrib/src/org/apache/tapestry/contrib/form/CheckBoxMultiplePropertySelectionRenderer.java
+++ /dev/null
@@ -1,103 +0,0 @@
-//  Copyright 2004 The Apache Software Foundation
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-package org.apache.tapestry.contrib.form;
-
-import org.apache.tapestry.IMarkupWriter;
-import org.apache.tapestry.IRequestCycle;
-import org.apache.tapestry.form.IPropertySelectionModel;
-
-/**
- *  Implementation of {@link IMultiplePropertySelectionRenderer} that
- *  produces a table of checkbox (&lt;input type=checkbox&gt;) elements.
- *
- *  @version $Id$
- *  @author Sanjay Munjal
- *
- **/
-
-public class CheckBoxMultiplePropertySelectionRenderer
-    implements IMultiplePropertySelectionRenderer
-{
-
-    /**
-     *  Writes the &lt;table&gt; element.
-     *
-     **/
-
-    public void beginRender(
-        MultiplePropertySelection component,
-        IMarkupWriter writer,
-        IRequestCycle cycle)
-    {
-        writer.begin("table");
-        writer.attribute("border", 0);
-        writer.attribute("cellpadding", 0);
-        writer.attribute("cellspacing", 2);
-    }
-
-    /**
-     *  Closes the &lt;table&gt; element.
-     *
-     **/
-
-    public void endRender(
-        MultiplePropertySelection component,
-        IMarkupWriter writer,
-        IRequestCycle cycle)
-    {
-        writer.end(); // <table>
-    }
-
-    /**
-     *  Writes a row of the table.  The table contains two cells; the first is the checkbox,
-     *  the second is the label for the checkbox.
-     *
-     **/
-
-    public void renderOption(
-        MultiplePropertySelection component,
-        IMarkupWriter writer,
-        IRequestCycle cycle,
-        IPropertySelectionModel model,
-        Object option,
-        int index,
-        boolean selected)
-    {
-        writer.begin("tr");
-        writer.begin("td");
-
-        writer.beginEmpty("input");
-        writer.attribute("type", "checkbox");
-        writer.attribute("name", component.getName());
-        writer.attribute("value", model.getValue(index));
-
-        if (component.isDisabled())
-            writer.attribute("disabled", "disabled");
-
-        if (selected)
-            writer.attribute("checked", "checked");
-
-        writer.end(); // <td>
-
-        writer.println();
-
-        writer.begin("td");
-        writer.print(model.getLabel(index));
-        writer.end(); // <td>
-        writer.end(); // <tr>
-
-        writer.println();
-    }
-}
\ No newline at end of file
diff --git a/3.0.4/contrib/src/org/apache/tapestry/contrib/form/FormConditional.java b/3.0.4/contrib/src/org/apache/tapestry/contrib/form/FormConditional.java
deleted file mode 100644
index c76fad0..0000000
--- a/3.0.4/contrib/src/org/apache/tapestry/contrib/form/FormConditional.java
+++ /dev/null
@@ -1,168 +0,0 @@
-//  Copyright 2004 The Apache Software Foundation
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-package org.apache.tapestry.contrib.form;
-
-import java.io.IOException;
-
-import org.apache.tapestry.ApplicationRuntimeException;
-import org.apache.tapestry.IActionListener;
-import org.apache.tapestry.IBinding;
-import org.apache.tapestry.IForm;
-import org.apache.tapestry.IMarkupWriter;
-import org.apache.tapestry.IRequestCycle;
-import org.apache.tapestry.Tapestry;
-import org.apache.tapestry.form.AbstractFormComponent;
-import org.apache.tapestry.request.RequestContext;
-import org.apache.tapestry.util.io.DataSqueezer;
-
-/**
- *  A conditional element on a page which will render its wrapped elements
- *  zero or one times.
- * 
- * This component is a variant of {@link org.apache.tapestry.components.Conditional}, 
- * but is designed for operation in a form. The component parameters are stored in 
- * hidden fields during rendering and are taken from those fields during the rewind, 
- * thus no StaleLink exceptions occur. 
- *
- *  [<a href="../../../../../ComponentReference/contrib.FormConditional.html">Component Reference</a>]
- *
- *  @author Mindbridge
- *  @version $Id$
- *  @since 3.0
- * 
- **/
-
-public abstract class FormConditional extends AbstractFormComponent
-{
-
-    protected void renderComponent(IMarkupWriter writer, IRequestCycle cycle)
-    {
-        IForm form = getForm(cycle);
-
-        boolean cycleRewinding = cycle.isRewinding();
-
-        // If the cycle is rewinding, but not this particular form,
-        // then do nothing (don't even render the body).
-
-        if (cycleRewinding && !form.isRewinding())
-            return;
-
-        String name = form.getElementId(this);
-
-        boolean condition = getCondition(cycle, form, name);
-
-        // call listener
-        IActionListener listener = getListener();
-        if (listener != null)
-            listener.actionTriggered(this, cycle);
-
-        // render the component body only if the condition is true
-        if (condition) {
-            String element = getElement();
-            
-            boolean render = !cycleRewinding && Tapestry.isNonBlank(element);
-            
-            if (render)
-            {
-                writer.begin(element);
-                renderInformalParameters(writer, cycle);
-            }
-
-            renderBody(writer, cycle);
-            
-            if (render)
-                writer.end(element);
-        }
-    }
-
-    private boolean getCondition(IRequestCycle cycle, IForm form, String name)
-    {
-        boolean condition;
-        
-        if (!cycle.isRewinding())
-        {
-            condition = getCondition();
-            writeValue(form, name, condition);
-        }
-        else
-        {
-            RequestContext context = cycle.getRequestContext();
-            String submittedConditions[] = context.getParameters(name);
-            condition = convertValue(submittedConditions[0]);
-        }
-
-        IBinding conditionValueBinding = getConditionValueBinding();
-        if  (conditionValueBinding != null) 
-            conditionValueBinding.setBoolean(condition);
-        
-        return condition;
-    }
-
-    private void writeValue(IForm form, String name, boolean value)
-    {
-        String externalValue;
-
-        Object booleanValue = new Boolean(value);
-        try
-        {
-            externalValue = getDataSqueezer().squeeze(booleanValue);
-        }
-        catch (IOException ex)
-        {
-            throw new ApplicationRuntimeException(
-                Tapestry.format("FormConditional.unable-to-convert-value", booleanValue),
-                this,
-                null,
-                ex);
-        }
-
-        form.addHiddenValue(name, externalValue);
-    }
-
-    private boolean convertValue(String value)
-    {
-        try
-        {
-            Object booleanValue = getDataSqueezer().unsqueeze(value);
-            return Tapestry.evaluateBoolean(booleanValue);
-        }
-        catch (IOException ex)
-        {
-            throw new ApplicationRuntimeException(
-                Tapestry.format("FormConditional.unable-to-convert-string", value),
-                this,
-                null,
-                ex);
-        }
-    }
-
-    private DataSqueezer getDataSqueezer()
-    {
-        return getPage().getEngine().getDataSqueezer();
-    }
-
-    public boolean isDisabled()
-    {
-        return false;
-    }
-
-    public abstract boolean getCondition();
-    public abstract String getElement();
-
-    public abstract IBinding getConditionValueBinding();
-
-    public abstract IActionListener getListener();
-
-}
diff --git a/3.0.4/contrib/src/org/apache/tapestry/contrib/form/FormConditional.jwc b/3.0.4/contrib/src/org/apache/tapestry/contrib/form/FormConditional.jwc
deleted file mode 100644
index c2ba3d3..0000000
--- a/3.0.4/contrib/src/org/apache/tapestry/contrib/form/FormConditional.jwc
+++ /dev/null
@@ -1,53 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
-   Copyright 2004 The Apache Software Foundation
-  
-   Licensed under the Apache License, Version 2.0 (the "License");
-   you may not use this file except in compliance with the License.
-   You may obtain a copy of the License at
-  
-       http://www.apache.org/licenses/LICENSE-2.0
-  
-   Unless required by applicable law or agreed to in writing, software
-   distributed under the License is distributed on an "AS IS" BASIS,
-   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-   See the License for the specific language governing permissions and
-   limitations under the License.
--->
-<!-- $Id$ -->
-<!DOCTYPE component-specification PUBLIC 
-  "-//Apache Software Foundation//Tapestry Specification 3.0//EN" 
-  "http://jakarta.apache.org/tapestry/dtd/Tapestry_3_0.dtd">
-  
-<component-specification class="org.apache.tapestry.contrib.form.FormConditional">
-  <description>
-  Conditionally emulates an element and its attributes (if element is specified) and/or includes a block of content if a condition is met.
-  </description>
-  
-  <parameter name="condition" type="boolean" direction="in" required="yes">
-    <description>
-    The condition to evaluate.
-    </description>
-  </parameter>
-  
-  <parameter name="element" type="java.lang.String" direction="in" required="no">
-  	<description>
-  	The element to emulate.
-  	</description>
-  </parameter>
-
-  <parameter name="listener" type="org.apache.tapestry.IActionListener" direction="in"/>
-
-  <parameter name="conditionValue" type="boolean">
-    <description>
-    The value of the condition. During render this is obtained from
-    the condition parameter. During rewind it is the submitted condition.
-    </description>
-  </parameter>
-
-  <reserved-parameter name="invert"/>
-  
-  <property-specification name="name" type="java.lang.String"/>
-  <property-specification name="form" type="org.apache.tapestry.IForm"/>
-  
-</component-specification>
diff --git a/3.0.4/contrib/src/org/apache/tapestry/contrib/form/IMultiplePropertySelectionRenderer.java b/3.0.4/contrib/src/org/apache/tapestry/contrib/form/IMultiplePropertySelectionRenderer.java
deleted file mode 100644
index a70af59..0000000
--- a/3.0.4/contrib/src/org/apache/tapestry/contrib/form/IMultiplePropertySelectionRenderer.java
+++ /dev/null
@@ -1,65 +0,0 @@
-//  Copyright 2004 The Apache Software Foundation
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-package org.apache.tapestry.contrib.form;
-
-import org.apache.tapestry.IMarkupWriter;
-import org.apache.tapestry.IRequestCycle;
-import org.apache.tapestry.form.IPropertySelectionModel;
-
-/**
- *  Defines an object that works with a {@link MultiplePropertySelection} component
- *  to render the individual elements obtained from the {@link IPropertySelectionModel model}.
- *
- *  @version $Id$
- *  @author Sanjay Munjal
- *
- **/
-
-public interface IMultiplePropertySelectionRenderer
-{
-    /**
-     *  Begins the rendering of the {@link MultiplePropertySelection}.
-     *
-     **/
-
-    public void beginRender(
-        MultiplePropertySelection component,
-        IMarkupWriter writer,
-        IRequestCycle cycle);
-
-    /**
-     *  Invoked for each element obtained from the {@link IPropertySelectionModel model}.
-     *
-     **/
-
-    public void renderOption(
-        MultiplePropertySelection component,
-        IMarkupWriter writer,
-        IRequestCycle cycle,
-        IPropertySelectionModel model,
-        Object option,
-        int index,
-        boolean selected);
-
-    /**
-     *  Ends the rendering of the {@link MultiplePropertySelection}.
-     *
-     **/
-
-    public void endRender(
-        MultiplePropertySelection component,
-        IMarkupWriter writer,
-        IRequestCycle cycle);
-}
\ No newline at end of file
diff --git a/3.0.4/contrib/src/org/apache/tapestry/contrib/form/MaskEdit.html b/3.0.4/contrib/src/org/apache/tapestry/contrib/form/MaskEdit.html
deleted file mode 100644
index 3e4b0a5..0000000
--- a/3.0.4/contrib/src/org/apache/tapestry/contrib/form/MaskEdit.html
+++ /dev/null
@@ -1,5 +0,0 @@
-<input jwcid="maskEdit" type="text"/>
-<input jwcid="maskValue" type="hidden"/>
-<span jwcid="maskEditScript"/>
-
-
diff --git a/3.0.4/contrib/src/org/apache/tapestry/contrib/form/MaskEdit.java b/3.0.4/contrib/src/org/apache/tapestry/contrib/form/MaskEdit.java
deleted file mode 100644
index 7d596b4..0000000
--- a/3.0.4/contrib/src/org/apache/tapestry/contrib/form/MaskEdit.java
+++ /dev/null
@@ -1,113 +0,0 @@
-//  Copyright 2004 The Apache Software Foundation
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-package org.apache.tapestry.contrib.form;
-
-import org.apache.tapestry.BaseComponent;
-import org.apache.tapestry.IBinding;
-
-/**
- * Provides a mask edit HTML &lt;input type="text"&gt; form element.
- * <p>
- * Mask edit field validates the text the user enters against a 
- * mask that encodes the valid forms the text can take. The mask can 
- * also format text that is displayed to the user.
- * <p>
- * <table border="1" cellpadding="2">
- *  <tr>
- *   <th>Mask character</th><th>Meaning in mask</th>
- *  </tr>
- *  <tr>
- *   <td>&nbsp;l</td><td>&nbsp;Mixed case letter character [a..z, A..Z]</td>
- *  </tr>
- *  <tr>
- *   <td>&nbsp;L</td><td>&nbsp;Upper case letter character [A..Z]</td>
- *  </tr>
- *  <tr>
- *   <td>&nbsp;a</td><td>&nbsp;Mixed case alpha numeric character [a..z, A..Z, 0..1]</td>
- *  </tr>
- *  <tr>
- *   <td>&nbsp;A</td><td>&nbsp;Upper case alpha numeric character [A..Z, 0..9]</td>
- *  </tr>
- *  <tr>
- *   <td>&nbsp;#</td><td>&nbsp;Numeric character [0..9]</td>
- *  </tr>
- *  <tr>
- *   <td>&nbsp;_</td><td>&nbsp;Reserved character for display, do not use.</td>
- *  </tr>
- *  <tr>
- *   <td>&nbsp;others</td><td>&nbsp;Non editable character for display.</td>
- *  </tr>
- * </table> 
- * <p>
- * This component requires JavaScript to be enabled in the client browser.
- * <p>
- * [<a href="../../../../../ComponentReference/MaskEdit.html">Component Reference</a>]
- *
- * @author Malcolm Edgar
- * @version $Id$
- * @since 2.3
- *
- **/
-
-public class MaskEdit extends BaseComponent
-{
-    private String _mask;
-    private IBinding _valueBinding;
-    private boolean _disabled;
-
-    public String getMask()
-    {
-        return _mask;
-    }
-
-    public void setMask(String mask)
-    {
-        _mask = mask;
-    }
-    
-    public String getValue()
-    {
-        if (_valueBinding != null) {
-            return _valueBinding.getString();
-        } else {
-            return null;
-        }
-    }
-
-    public void setValue(String value)
-    {
-        _valueBinding.setString(value);
-    }
-
-    public IBinding getValueBinding()
-    {
-        return _valueBinding;
-    }
-
-    public void setValueBinding(IBinding valueBinding)
-    {
-        _valueBinding = valueBinding;
-    }
-
-    public boolean isDisabled()
-    {
-        return _disabled;
-    }
-
-    public void setDisabled(boolean disabled)
-    {
-        _disabled = disabled;
-    }        
-}
diff --git a/3.0.4/contrib/src/org/apache/tapestry/contrib/form/MaskEdit.js b/3.0.4/contrib/src/org/apache/tapestry/contrib/form/MaskEdit.js
deleted file mode 100644
index 9db04c8..0000000
--- a/3.0.4/contrib/src/org/apache/tapestry/contrib/form/MaskEdit.js
+++ /dev/null
@@ -1,420 +0,0 @@
-/**

- *  JavaScript Mask Edit control

- *  Paul Geerts

- *  Oct 2002

- * 

- *  Note:  This probably only works for English

- *  Other languages have been deprecated and will be removed in the 

- *  next version of Speech (TM)

- **/

-

-var dontDoIt;  // hack for Moz because it won't cancel events properly

-var isTab;     // another Moz hack

-

-

-// Init the mask edit field by creating a lookalike DIV

-// and hiding the real one

-function initMask(field, maskField) {

-

-	if (field.disabled == true) {

-	   return;

-	}

-

-    var mask = maskField.value;

-    var val = field.value;

-    

-    if (!val) {  // if there's no val, init it with empty mask

-        val = displayMask(mask);

-        field.value = displayMask(mask);

-    }

-    // create a div and add a bunch of spans

-    // and edits to it.

-    div = document.createElement("div");

-   	div.style.backgroundColor = "white";

-    for (var i = 0 ; i < mask.length ; i++) {

-        var ds = document.createElement("SPAN");

-        var v = val.substr(i,1);

-        var m = mask.substr(i,1);

-        if (v==" ") {

-            v="&nbsp;";

-        }

-        ds.innerHTML = v;

-        ds.index = i;

-        ds.mask = m;

-        ds.div = div;

-        // if we can edit this char

-        // make a little tiny edit field

-        if (isEditChar(m)) {

-            var es = document.createElement("INPUT");

-            es.style.width = "1px";

-            es.style.border="0px";

-            es.index = i;

-            es.field = field;

-            es.mask = m;

-            es.display = ds;

-            ds.editField = es;

-            es.div = div;

-            div.appendChild(es);  // set up some events

-            if (navigator.appName == "Microsoft Internet Explorer") {

-                addEvent("keypress", es, changeBitIE);

-            } else {

-                addEvent("keypress", es, changeBitNS);

-            }

-            addEvent("keydown", es, specialKey); // keydown handles stuff like home, end etc

-            addEvent("click", ds, click);

-        } 

-

-        div.appendChild(ds);

-

-    }

-    

-    // the final edit field on the end

-    var es =document.createElement("INPUT");

-    es.style.width = "1px";

-    es.style.border="0px";

-    es.div = div;

-    div.appendChild(es);

-    if (navigator.appName == "Microsoft Internet Explorer") {

-        addEvent("keypress", es, changeBitIE);

-    } else {

-        addEvent("keypress", es, changeBitNS);

-    }

-    addEvent("keydown", es, specialKey);

-

-    div.noWrap = true; // force single line display

-

-    formatDiv(div, field); // format the DIV to look like an edit box

-    field.style.display = 'none'; 

-    field.parentNode.insertBefore(div, field);

-    addEvent("click", div, divClick);

-}

-

-function formatDiv(div, field) {

-    // make it look like an IE edit

-    if (navigator.appName == "Microsoft Internet Explorer") {

-        div.style.fontFamily="courier"; 

-        div.style.fontSize="10pt";      

-        div.style.width = field.offsetWidth;

-        div.style.height = field.offsetHeight;

-        if (navigator.appVersion.match(/6.0/)) { // IE 6 is different

-            div.style.border = "1px solid #7F9DB9";

-        } else {

-            div.style.borderLeft = "2px solid #606060";

-            div.style.borderTop = "2px solid #606060";

-            div.style.borderRight = "1px solid #aaaaaa";

-            div.style.borderBottom = "1px solid #aaaaaa";

-        }

-

-    } else {

-        // Mozilla edit look-a-like

-        div.style.fontFamily="courier";

-        div.style.fontSize="10pt";

-        div.style.border="2px inset #cccccc";

-        if (field.size) {

-            div.style.widh = 13 * field.size;

-        } else {

-            div.style.width = "130px";

-        }

-    }

-}

-

-

-function isEditChar(c) {  // is this char a meaningful mask char

-    switch (c) {

-    case "_":

-    case "#":

-    case "a":

-    case "A":

-    case "l":

-    case "L":

-        return true;

-    default:

-        return false;

-    }

-    return false;

-}

-

-function displayMaskChar(c) {  // display mask chars as _ 

-    if (isEditChar(c)) {       // otherwise just show normal char

-        return "_";

-    } else {

-        return c;

-    }

-}

-

-function displayMask(mask) {  // display entire mask using about subroutine

-    var d = "";

-    for (var i = 0 ; i < mask.length ; i++) {

-        d+=displayMaskChar(mask.substr(i,1));

-    }

-    return d;

-}

-

-function divClick(e) {     // when the main DIV is clicked, focus the end of the edit

-    var d = getEventObject(e);

-    if (d && d.lastChild) {

-        try {

-           d.lastChild.focus();

-        } catch (e) {

-           // nuffin

-        }

-    }

-}

-

-function specialKey(e) { // deal with special keys like backspace, delete etc

-    var s = getEventObject(e);

-    var code = e.keyCode;

-    dontDoIt = true;  // Moz needs these, as I can't seem to cancel events properly

-    isTab = false;    // Moz can't handle tabs well either

-    switch (code) {

-    case 8:   // backspace

-        var b = getPrevEdit(s);

-        if (b) {

-            b.display.innerHTML = displayMaskChar(b.mask);

-            var i = b.index;

-            b.field.value = b.field.value.substr(0, i) + 

-                displayMaskChar(b.mask) + b.field.value.substr(i+1, b.field.value.length - i);

-            b.focus();

-        }

-        cancelEvent(e);

-        return false;

-    case 46:  // delete

-        if (s.display) {

-            s.display.innerHTML = displayMaskChar(s.mask);

-            var i = s.index;

-            s.field.value = s.field.value.substr(0, i) + displayMaskChar(s.mask) + 

-                s.field.value.substr(i+1, s.field.value.length - i);

-        }

-        cancelEvent(e);

-        return false;

-        break;

-    case 37: // left

-        var p = getPrevEdit(s);

-        if (p) {

-            p.focus();

-        }

-        cancelEvent(e);

-        return false;

-    case 39: // right

-        var n = getNextEdit(s);

-        if (n) {

-            n.focus();

-        }

-        cancelEvent(e);

-        return false;

-    case 36: // home

-        s.div.firstChild.focus();

-        cancelEvent(e);

-        return false;

-    case 35: // end

-        s.div.lastChild.focus();

-        cancelEvent(e);

-        return false;

-    case 9: // tab

-        if (navigator.appName == "Microsoft Internet Explorer") {

-            if (!e.shiftKey) {

-                s.div.lastChild.focus();

-            } else {

-                s.div.firstChild.focus();

-            }

-            return;

-        } else {  // is mozilla/netscape

-            isTab = true;  // best i can do really

-        }

-        break;

-    }

-       

-    dontDoIt = false;

-}

-

-function moveForward(s) { // focus next edit

-    var b = getNextEdit(s);

-    if (b) {

-        b.focus();

-    }

-}

-

-function moveBackward(s) { // focus previous edit

-    var b = getPrevEdit(s);

-    if (b) {

-        b.focus();

-    }

-}

-

-function isInsertOK(code, s) {  // check if you're good to insert a char

-    var mchar = s.mask;

-    switch (mchar) {

-    case "_":

-        return true;

-        break;

-    case "#":

-        return checkDigit(code);

-        break;

-    case "a":

-        return checkAlphaNumeric(code);

-        break;

-    case "A":

-        return checkUpCaseAlphaNumeric(code);

-        break;

-    case "l":

-        return checkAlpha(code);

-        break;

-    case "L":

-        return checkUpCaseAlpha(code);

-        break;

-    }

-    return false;

-}

-

-// functions to check the key code, good ol ASCII

-// fairly straightforward

-

-function checkDigit(code) {

-    if ((code>=48) && (code<=57)) {

-        return code;

-    } else {

-        return null;

-    }

-}

-

-function checkAlpha(code) {

-    if (((code>=65) && (code<=90)) || ((code>=97) && (code<=122))) {

-        return code;

-    } else {

-        return null;

-    }

-}

-

-function checkUpCaseAlpha(code) {

-    if ((code>=65) && (code<=90)) {

-        return code;

-    } else if ((code>=97) && (code<=122)) {

-        return code - 32;

-    } else {

-        return null;

-    }

-}

-

-function checkAlphaNumeric(code) {

-    if (((code>=65) && (code<=90)) || ((code>=97) && (code<=122)) || ((code>=48) && (code<=57))) {

-        return code;

-    } else {

-        return null;

-    }

-}

-

-function checkUpCaseAlphaNumeric(code) {

-    if ((code>=65) && (code<=90)) {

-        return code;

-    } else if ((code>=97) && (code<=122)) {

-        return code - 32;

-    } else if ((code>=48) && (code<=57)) {

-        return code;

-    } else {

-        return null;

-    }

-}

-

-

-function changeBitNS(e) {  // handle key events in NS

-    var es = getEventObject(e);

-    if (!isTab) {

-        if (es.display) {

-            if (!dontDoIt) {

-                var code = e.charCode;

-                if (code = isInsertOK(code, es)) {

-                    var  c = String.fromCharCode(code);

-                    es.display.innerHTML = c

-                        var i = es.index;

-                    es.field.value = es.field.value.substr(0, i) + c + es.field.value.substr(i+1, es.field.value.length - i);

-                    moveForward(es);

-                }

-            }

-            es.value = "";

-            cancelEvent(e);

-        }        

-        return false;

-    }  

-}

-

-function changeBitIE(e) { // handle key events in IE

-    var es = getEventObject(e);

-    if (es.display) {

-        var code = e.keyCode;

-        if (code = isInsertOK(code, es)) {

-            var  c = String.fromCharCode(code);

-            es.display.innerHTML = c;

-            var i = es.index;

-            es.field.value = es.field.value.substr(0, i) + c + es.field.value.substr(i+1, es.field.value.length - i);

-            moveForward(es);

-            es.value = "";

-        }

-    }

-    cancelEvent(e);

-    return false;

-}

-

-function click(e) {  // clicking on a display span focuses the edit

-    var s = getEventObject(e);

-    s.editField.focus();

-    cancelEvent(e);

-    return false;

-}

-

-function getPrevEdit(s) {    // get previous input field 

-    var b = s.previousSibling;

-    while (b && (b.tagName!="INPUT")) {

-        b = b.previousSibling;

-    }

-    return b;

-}

-

-function getNextEdit(s) { // get previous next field 

-    var b = s.nextSibling;

-    while (b && (b.tagName!="INPUT")) {

-        b = b.nextSibling;

-    }

-    return b;

-}

-

-function cancelEvent(e) {   // kill event propagation

-    e.cancelBubble = true;

-    e.cancel = true;

-    if (navigator.appName != "Microsoft Internet Explorer") {

-        e.stopPropagation();  // doesn't seem to work for key events

-        e.preventDefault();

-    }

-}

-

-

-function getEventObject(e) {  // utility function to retrieve object from event

-    if (navigator.appName == "Microsoft Internet Explorer") {

-        return e.srcElement;

-    } else {  // is mozilla/netscape

-        // need to crawl up the tree to get the first "real" element

-        // i.e. a tag, not raw text

-        var o = e.target;

-        while (!o.tagName) {

-            o = o.parentNode;

-        }

-        return o;

-    }

-}

-

-function addEvent(name, obj, funct) { // utility function to add event handlers

-

-    if (navigator.appName == "Microsoft Internet Explorer") {

-        obj.attachEvent("on"+name, funct);

-    } else {  // is mozilla/netscape

-        obj.addEventListener(name, funct, false);

-    }

-}

-

-function deleteEvent(name, obj, funct) { // utility function to delete event handlers

-

-    if (navigator.appName == "Microsoft Internet Explorer") {

-        obj.detachEvent("on"+name, funct);

-    } else {  // is mozilla/netscape

-        obj.removeEventListener(name, funct, false);

-    }

-}

diff --git a/3.0.4/contrib/src/org/apache/tapestry/contrib/form/MaskEdit.jwc b/3.0.4/contrib/src/org/apache/tapestry/contrib/form/MaskEdit.jwc
deleted file mode 100644
index a796fcb..0000000
--- a/3.0.4/contrib/src/org/apache/tapestry/contrib/form/MaskEdit.jwc
+++ /dev/null
@@ -1,46 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
-   Copyright 2004 The Apache Software Foundation
-  
-   Licensed under the Apache License, Version 2.0 (the "License");
-   you may not use this file except in compliance with the License.
-   You may obtain a copy of the License at
-  
-       http://www.apache.org/licenses/LICENSE-2.0
-  
-   Unless required by applicable law or agreed to in writing, software
-   distributed under the License is distributed on an "AS IS" BASIS,
-   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-   See the License for the specific language governing permissions and
-   limitations under the License.
--->
-<!-- $Id$ -->
-<!DOCTYPE component-specification PUBLIC 
-  "-//Apache Software Foundation//Tapestry Specification 3.0//EN" 
-  "http://jakarta.apache.org/tapestry/dtd/Tapestry_3_0.dtd">
-
-<component-specification class="org.apache.tapestry.contrib.form.MaskEdit" allow-informal-parameters="no">
-
-  <parameter name="mask" direction="in" type="java.lang.String" required="yes"/>
-  <parameter name="value" direction="custom" type="java.lang.String" required="yes"/>
-  <parameter name="disabled" direction="in" type="boolean" required="no"/>
-  
-  <component id="maskEdit" type="TextField">
-    <binding name="value" expression="value"/>
-    <binding name="maxlength" expression="mask.length()"/>
-    <binding name="size" expression="mask.length()"/>        
-    <binding name="disabled" expression="disabled"/>
-  </component>
-
-  <component id="maskValue" type="Hidden">
-    <binding name="value" expression="mask"/>
-    <binding name="encode" expression="false"/>
-  </component>
-
-  <component id="maskEditScript" type="Script">
-    <binding name="maskEdit" expression="components.maskEdit"/>
-    <binding name="maskValue" expression="components.maskValue"/>
-    <binding name="script" expression='"MaskEdit.script"'/>
-  </component>
-        
-</component-specification>
diff --git a/3.0.4/contrib/src/org/apache/tapestry/contrib/form/MaskEdit.script b/3.0.4/contrib/src/org/apache/tapestry/contrib/form/MaskEdit.script
deleted file mode 100644
index e6c7756..0000000
--- a/3.0.4/contrib/src/org/apache/tapestry/contrib/form/MaskEdit.script
+++ /dev/null
@@ -1,35 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!-- $Id$ -->
-<!DOCTYPE script PUBLIC
-	"-//Howard Lewis Ship//Tapestry Script 1.2//EN"
-	"http://tapestry.sf.net/dtd/Script_1_2.dtd">
-  
-<script>
-
-<include-script resource-path="/org/apache/tapestry/contrib/form/MaskEdit.js"/>
-
-<input-symbol key="maskEdit" class="org.apache.tapestry.form.TextField" required="yes"/>
-<input-symbol key="maskValue" class="org.apache.tapestry.form.Hidden" required="yes"/>
-
-<let key="formName">
-  ${maskEdit.form.name}
-</let>
-
-<let key="functionName">
-  ${maskEdit.name}_init
-</let>
-
-
-<body>
-function ${functionName}() {
-  initMask(document.${formName}.${maskEdit.name},
-           document.${formName}.${maskValue.name});
-}
-</body>
-
-<initialization>
-  ${functionName}();
-</initialization>
-
-</script>
-
diff --git a/3.0.4/contrib/src/org/apache/tapestry/contrib/form/MultiplePropertySelection.java b/3.0.4/contrib/src/org/apache/tapestry/contrib/form/MultiplePropertySelection.java
deleted file mode 100644
index 3a412d3..0000000
--- a/3.0.4/contrib/src/org/apache/tapestry/contrib/form/MultiplePropertySelection.java
+++ /dev/null
@@ -1,216 +0,0 @@
-//  Copyright 2004 The Apache Software Foundation
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-package org.apache.tapestry.contrib.form;
-
-import java.util.List;
-
-import org.apache.tapestry.IBinding;
-import org.apache.tapestry.IForm;
-import org.apache.tapestry.IMarkupWriter;
-import org.apache.tapestry.IRequestCycle;
-import org.apache.tapestry.Tapestry;
-import org.apache.tapestry.form.AbstractFormComponent;
-import org.apache.tapestry.form.IPropertySelectionModel;
-
-/**
- *  A component which uses &lt;input type=checkbox&gt; to
- *  set a property of some object.  Typically, the values for the object
- *  are defined using an {@link org.apache.commons.lang.enum.Enum}.  A MultiplePropertySelection is dependent on
- *  an {link IPropertySelectionModel} to provide the list of possible values.
- *
- *  <p>Often, this is used to select one or more {@link org.apache.commons.lang.enum.Enum} to assign to a property; the
- * {@link org.apache.tapestry.form.EnumPropertySelectionModel} class simplifies this.
- * 
- *  <p>The {@link org.apache.tapestry.contrib.palette.Palette} component
- *  is more powerful, but requires client-side JavaScript and 
- *  is not fully cross-browser compatible.
- *
- *  <p>
- *
- * <table border=1>
- * <tr>
- *    <td>Parameter</td>
- *    <td>Type</td>
- *	  <td>Direction</td>
- *    <td>Required</td>
- *    <td>Default</td>
- *    <td>Description</td>
- * </tr>
- *
- * <tr>
- *		<td>selectedList</td>
- *		<td>java.util.List</td>
- *		<td>in-out</td>
- *		<td>yes</td>
- *		<td>&nbsp;</td>
- *		<td>The property to set.  During rendering, this property is read, and sets
- * the default value of the options in the select.
- * When the form is submitted, list is cleared, then has each
- * selected option added to it. </td> </tr>
- *
- * <tr>
- *		<td>renderer</td>
- *		<td>{@link IMultiplePropertySelectionRenderer}</td>
- *		<td>in</td>
- *		<td>no</td>
- *		<td>shared instance of {@link CheckBoxMultiplePropertySelectionRenderer}</td>
- *		<td>Defines the object used to render this component.  The default
- *  renders a table of checkboxes.</td></tr>
- *
- *  <tr>
- *		<td>model</td>
- *		<td>{@link IPropertySelectionModel}</td>
- *		<td>in</td>
- *		<td>yes</td>
- *		<td>&nbsp;</td>
- *		<td>The model provides a list of possible labels, and matches those labels
- *  against possible values that can be assigned back to the property.</td> </tr>
- *
- *  <tr>
- * 		<td>disabled</td>
- *		<td>boolean</td>
- *		<td>in</td>
- *		<td>no</td>
- *		<td>false</td>
- *		<td>Controls whether the &lt;select&gt; is active or not. A disabled PropertySelection
- * does not update its value parameter.
- *
- *			<p>Corresponds to the <code>disabled</code> HTML attribute.</td>
- *	</tr>
- *
- *	</table>
- *
- * <p>Informal parameters are not allowed.
- *
- *
- *  @version $Id$
- *  @author Sanjay Munjal
- *
- **/
-
-public abstract class MultiplePropertySelection extends AbstractFormComponent
-{
-
-    /**
-     *  A shared instance of {@link CheckBoxMultiplePropertySelectionRenderer}.
-     *
-     **/
-
-    public static final IMultiplePropertySelectionRenderer DEFAULT_CHECKBOX_RENDERER =
-        new CheckBoxMultiplePropertySelectionRenderer();
-
-    public abstract IBinding getSelectedListBinding();
-
-    protected void finishLoad()
-    {
-        setRenderer(DEFAULT_CHECKBOX_RENDERER);
-    }
-
-    /**
-     *  Returns true if the component is disabled (this is relevant to the
-     *  renderer).
-     *
-     **/
-
-    public abstract boolean isDisabled();
-
-    /**
-     *  Renders the component, much of which is the responsiblity
-     *  of the {@link IMultiplePropertySelectionRenderer renderer}.  The possible options,
-     *  their labels, and the values to be encoded in the form are provided
-     *  by the {@link IPropertySelectionModel model}.
-     *
-     **/
-
-    protected void renderComponent(IMarkupWriter writer, IRequestCycle cycle)
-    {
-        IForm form = getForm(cycle);
-
-        boolean rewinding = form.isRewinding();
-
-        String name = form.getElementId(this);
-
-        List selectedList = (List) getSelectedListBinding().getObject("selectedList", List.class);
-
-        if (selectedList == null)
-            throw Tapestry.createRequiredParameterException(this, "selectedList");
-
-        IPropertySelectionModel model = getModel();
-
-        if (model == null)
-            throw Tapestry.createRequiredParameterException(this, "model");
-
-        // Handle the form processing first.
-        if (rewinding)
-        {
-            // If disabled, ignore anything that comes up from the client.
-
-            if (isDisabled())
-                return;
-
-            // get all the values
-            String[] optionValues = cycle.getRequestContext().getParameters(name);
-
-            // Clear the list
-
-            selectedList.clear();
-
-            // Nothing was selected
-            if (optionValues != null)
-            {
-
-                // Go through the array and translate and put back in the list
-                for (int i = 0; i < optionValues.length; i++)
-                {
-                    // Translate the new value
-                    Object selectedValue = model.translateValue(optionValues[i]);
-
-                    // Add this element in the list back
-                    selectedList.add(selectedValue);
-                }
-            }
-
-            return;
-        }
-
-        IMultiplePropertySelectionRenderer renderer = getRenderer();
-
-        // Start rendering
-        renderer.beginRender(this, writer, cycle);
-
-        int count = model.getOptionCount();
-
-        for (int i = 0; i < count; i++)
-        {
-            Object option = model.getOption(i);
-
-            // Try to find the option in the list and if yes, then it is checked.
-            boolean optionSelected = selectedList.contains(option);
-
-            renderer.renderOption(this, writer, cycle, model, option, i, optionSelected);
-        }
-
-        // A PropertySelection doesn't allow a body, so no need to worry about
-        // wrapped components.
-        renderer.endRender(this, writer, cycle);
-    }
-
-    public abstract IPropertySelectionModel getModel();
-
-    public abstract IMultiplePropertySelectionRenderer getRenderer();
-
-    public abstract void setRenderer(IMultiplePropertySelectionRenderer renderer);
-
-}
\ No newline at end of file
diff --git a/3.0.4/contrib/src/org/apache/tapestry/contrib/form/MultiplePropertySelection.jwc b/3.0.4/contrib/src/org/apache/tapestry/contrib/form/MultiplePropertySelection.jwc
deleted file mode 100644
index ae91cb2..0000000
--- a/3.0.4/contrib/src/org/apache/tapestry/contrib/form/MultiplePropertySelection.jwc
+++ /dev/null
@@ -1,39 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
-   Copyright 2004 The Apache Software Foundation
-  
-   Licensed under the Apache License, Version 2.0 (the "License");
-   you may not use this file except in compliance with the License.
-   You may obtain a copy of the License at
-  
-       http://www.apache.org/licenses/LICENSE-2.0
-  
-   Unless required by applicable law or agreed to in writing, software
-   distributed under the License is distributed on an "AS IS" BASIS,
-   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-   See the License for the specific language governing permissions and
-   limitations under the License.
--->
-<!-- $Id$ -->
-<!DOCTYPE component-specification PUBLIC 
-  "-//Apache Software Foundation//Tapestry Specification 3.0//EN" 
-  "http://jakarta.apache.org/tapestry/dtd/Tapestry_3_0.dtd">
-	
-<component-specification class="org.apache.tapestry.contrib.form.MultiplePropertySelection" 
-	allow-body="no" allow-informal-parameters="no">
-	
-  <parameter name="model" 
-  	type="org.apache.tapestry.form.IPropertySelectionModel" required="yes" direction="in"/>
-  	
-  <parameter name="selectedList" type="java.util.List" required="yes"/>
-  
-  <parameter name="disabled" type="boolean" direction="in"/>
-  
-  <parameter name="renderer" 
-  	type="org.apache.tapestry.contrib.form.IMultiplePropertySelectionRenderer"
-  	direction="in"/>
-  	
-  <property-specification name="name" type="java.lang.String"/>
-  <property-specification name="form" type="org.apache.tapestry.IForm"/>
-  
-</component-specification>
diff --git a/3.0.4/contrib/src/org/apache/tapestry/contrib/informal/InheritInformalAny.java b/3.0.4/contrib/src/org/apache/tapestry/contrib/informal/InheritInformalAny.java
deleted file mode 100644
index f50d4b9..0000000
--- a/3.0.4/contrib/src/org/apache/tapestry/contrib/informal/InheritInformalAny.java
+++ /dev/null
@@ -1,117 +0,0 @@
-//  Copyright 2004 The Apache Software Foundation
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-package org.apache.tapestry.contrib.informal;
-
-import java.util.Iterator;
-import java.util.Map;
-
-import org.apache.tapestry.AbstractComponent;
-import org.apache.tapestry.IAsset;
-import org.apache.tapestry.IBinding;
-import org.apache.tapestry.IComponent;
-import org.apache.tapestry.IMarkupWriter;
-import org.apache.tapestry.IRequestCycle;
-import org.apache.tapestry.spec.IComponentSpecification;
-
-/**
- * 
- *  A version of the Any component that inherits the informal attributes of its parent.
- *  This component has been deprecated in favour of the 'inherit-informal-parameters' 
- *  tag that indicates that a particular component must inherit the informal parameters
- *  of its parent. This tag is available in the page or component specification file.
- * 
- *  @deprecated
- *  @version $Id$
- *  @author mindbridge
- *  @since 2.2
- * 
- **/
-
-public class InheritInformalAny extends AbstractComponent
-{
-    // Bindings
-    private IBinding m_objElementBinding;
-
-    public IBinding getElementBinding()
-    {
-        return m_objElementBinding;
-    }
-
-    public void setElementBinding(IBinding objElementBinding)
-    {
-        m_objElementBinding = objElementBinding;
-    }
-
-    protected void generateParentAttributes(IMarkupWriter writer, IRequestCycle cycle)
-    {
-        String attribute;
-
-        IComponent objParent = getContainer();
-        if (objParent == null)
-            return;
-
-        IComponentSpecification specification = objParent.getSpecification();
-        Map bindings = objParent.getBindings();
-        if (bindings == null)
-            return;
-
-        Iterator i = bindings.entrySet().iterator();
-
-        while (i.hasNext())
-        {
-            Map.Entry entry = (Map.Entry) i.next();
-            String name = (String) entry.getKey();
-
-            // Skip over formal parameters stored in the bindings
-            // Map.  We're just interested in informal parameters.
-
-            if (specification.getParameter(name) != null)
-                continue;
-
-            IBinding binding = (IBinding) entry.getValue();
-
-            Object value = binding.getObject();
-            if (value == null)
-                continue;
-
-            if (value instanceof IAsset)
-            {
-                IAsset asset = (IAsset) value;
-
-                // Get the URL of the asset and insert that.
-                attribute = asset.buildURL(cycle);
-            }
-            else
-                attribute = value.toString();
-
-            writer.attribute(name, attribute);
-        }
-
-    }
-
-    public void renderComponent(IMarkupWriter writer, IRequestCycle cycle)
-    {
-        String strElement = m_objElementBinding.getObject().toString();
-
-        writer.begin(strElement);
-        generateParentAttributes(writer, cycle);
-        renderInformalParameters(writer, cycle);
-
-        renderBody(writer, cycle);
-
-        writer.end();
-    }
-
-}
diff --git a/3.0.4/contrib/src/org/apache/tapestry/contrib/informal/InheritInformalAny.jwc b/3.0.4/contrib/src/org/apache/tapestry/contrib/informal/InheritInformalAny.jwc
deleted file mode 100644
index e9d9eb1..0000000
--- a/3.0.4/contrib/src/org/apache/tapestry/contrib/informal/InheritInformalAny.jwc
+++ /dev/null
@@ -1,24 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
-   Copyright 2004 The Apache Software Foundation
-  
-   Licensed under the Apache License, Version 2.0 (the "License");
-   you may not use this file except in compliance with the License.
-   You may obtain a copy of the License at
-  
-       http://www.apache.org/licenses/LICENSE-2.0
-  
-   Unless required by applicable law or agreed to in writing, software
-   distributed under the License is distributed on an "AS IS" BASIS,
-   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-   See the License for the specific language governing permissions and
-   limitations under the License.
--->
-<!--  $Id$ -->
-<!DOCTYPE component-specification PUBLIC 
-  "-//Apache Software Foundation//Tapestry Specification 3.0//EN" 
-  "http://jakarta.apache.org/tapestry/dtd/Tapestry_3_0.dtd">
-
-<component-specification class="org.apache.tapestry.contrib.informal.InheritInformalAny" allow-body="yes" allow-informal-parameters="yes">
-    <parameter name="element" type="java.lang.String" required="yes" direction="custom"/>
-</component-specification>
\ No newline at end of file
diff --git a/3.0.4/contrib/src/org/apache/tapestry/contrib/inspector/Engine_HRp4.gif b/3.0.4/contrib/src/org/apache/tapestry/contrib/inspector/Engine_HRp4.gif
deleted file mode 100644
index 42ff5ec..0000000
--- a/3.0.4/contrib/src/org/apache/tapestry/contrib/inspector/Engine_HRp4.gif
+++ /dev/null
Binary files differ
diff --git a/3.0.4/contrib/src/org/apache/tapestry/contrib/inspector/Engine_Hp3.gif b/3.0.4/contrib/src/org/apache/tapestry/contrib/inspector/Engine_Hp3.gif
deleted file mode 100644
index 5f2860d..0000000
--- a/3.0.4/contrib/src/org/apache/tapestry/contrib/inspector/Engine_Hp3.gif
+++ /dev/null
Binary files differ
diff --git a/3.0.4/contrib/src/org/apache/tapestry/contrib/inspector/Engine_NBanner.gif b/3.0.4/contrib/src/org/apache/tapestry/contrib/inspector/Engine_NBanner.gif
deleted file mode 100644
index 0105a1b..0000000
--- a/3.0.4/contrib/src/org/apache/tapestry/contrib/inspector/Engine_NBanner.gif
+++ /dev/null
Binary files differ
diff --git a/3.0.4/contrib/src/org/apache/tapestry/contrib/inspector/Engine_NRp2.gif b/3.0.4/contrib/src/org/apache/tapestry/contrib/inspector/Engine_NRp2.gif
deleted file mode 100644
index 8590996..0000000
--- a/3.0.4/contrib/src/org/apache/tapestry/contrib/inspector/Engine_NRp2.gif
+++ /dev/null
Binary files differ
diff --git a/3.0.4/contrib/src/org/apache/tapestry/contrib/inspector/Engine_Np1.gif b/3.0.4/contrib/src/org/apache/tapestry/contrib/inspector/Engine_Np1.gif
deleted file mode 100644
index 78ee58c..0000000
--- a/3.0.4/contrib/src/org/apache/tapestry/contrib/inspector/Engine_Np1.gif
+++ /dev/null
Binary files differ
diff --git a/3.0.4/contrib/src/org/apache/tapestry/contrib/inspector/Inspector.css b/3.0.4/contrib/src/org/apache/tapestry/contrib/inspector/Inspector.css
deleted file mode 100644
index c8852b0..0000000
--- a/3.0.4/contrib/src/org/apache/tapestry/contrib/inspector/Inspector.css
+++ /dev/null
@@ -1,201 +0,0 @@
-H1  {

-	font-size: 12pt;

-	font-weight: bold;

-

-}

-

-H2  {}

-

-H3  {}

-

-A  {

-	color:#ffffff;

-}

-

-A:Visited  {}

-

-A:Active  {}

-

-A:Hover  {}

-

-SPAN.error

-{

-		color: Red;

-		font-weight: bold;

-	background-color : "#330066"		

-}

-

-BODY  {

-	font-family: "Trebuchet MS", sans-serif;

-	 background-color: #839cd1;

-}

-

-

-TABLE.inspector-data TR.odd TD  {

-	text-align : left;

-	color : Black;

-	background-color : Silver;

-}

-

-

-TABLE.inspector-data TR.even TH

-{

-	text-align : right;

-	font-weight: bold;

-}

-

-TABLE.inspector-data TR.odd TH

-{

-	text-align: right;

-	color : Black;

-	background-color : Silver;

-	font-weight: bold;

-}

-

-TABLE.inspector-data TR.even TD  {

-	text-align : left;

-}

-

-TABLE.inspector-data,

-TABLE.selector

-{

-	font-size: 9pt;

-}

-

-TABLE.selector TD.page-link

-{

-	font-style: italic;

-}

-

-TABLE.selector TD

-{

-	verticle-align: center;

-}

-

-TABLE.inspector-data TR.heading TH,

-TABLE.template TH

-{

-	text-align: center;

-	color : White;

-	background-color : "#330066";

-	font-weight: bold;

-}

-

-TABLE.template TD

-{

-	background-color: Silver;

-	font-size: small;

-}

-

-SPAN.message

-{

-	color : Silver

-	font-size: large;

-}

-

-SPAN.jwc-tag

-{

-	font-weight: bold;

-}

-

-SPAN.jwc-id, SPAN.localized-string

-{

-	font-style: italic;

-}

-

-

-

-TABLE.request-context-border  {

-	border-width : 1;

-	border-color : Black;

-	font-size: 9pt;

-}

-

-SPAN.request-context-object  {

-	font-weight : bold;

-	text-align : left;

-	font-size: 12pt;

-}

-

-TR.request-context-section TH  {

-	text-align : center;

-	color : White;

-	background-color : Blue;

-}

-

-TR.request-context-header TH  {

-	text-align : center;

-	color : White;

-	background-color : Blue;

-}

-

-TABLE.request-context-object TR.odd TD  {

-	text-align : left;

-	color : Black;

-	background-color : Silver;

-}

-

-TABLE.request-context-object TR.odd TH  {

-	color : Black;

-	background-color : Silver;

-	text-align : right;

-}

-

-TABLE.request-context-object TR.even TD  {

-	text-align : left;

-}

-

-TABLE.request-context-object TR.even TH  {

-	text-align : right;

-}

-

-TABLE.request-context-object  {

-	width : 100%;

-	font-size: 9pt;

-}

-

-TABLE.request-context-object TR  {

-	vertical-align : text-top;

-}

-

-TABLE.exception-display TR.even  {

-	top : auto;

-}

-

-TABLE.exception-displaY TD

-{

-	width: 100%;

-}

-

-TABLE.exception-display TR.even TH  {

-	text-align : right;

-	font-weight : bold;

-}

-

-TABLE.exception-display TR.odd TD  {

-	text-align : left;

-	background-color : Silver;

-}

-

-TABLE.exception-display TR.odd TH  {

-	text-align : right;

-	font-weight : bold;

-	background-color : Silver;	

-}

-

-TABLE.exception-display TR.even TD  {

-	text-align : left;

-}

-

-TABLE.exception-display TR.stack-trace  {

-	font-size : small;

-	font-family : sans-serif;

-	text-align : left;

-}

-

-UL 

-{

-	margin-top: 0px;

-	margin-bottom: 0px;

-	margin-left: 20px;

-}
\ No newline at end of file
diff --git a/3.0.4/contrib/src/org/apache/tapestry/contrib/inspector/Inspector.html b/3.0.4/contrib/src/org/apache/tapestry/contrib/inspector/Inspector.html
deleted file mode 100644
index 42d16d6..0000000
--- a/3.0.4/contrib/src/org/apache/tapestry/contrib/inspector/Inspector.html
+++ /dev/null
@@ -1,31 +0,0 @@
-<!-- $Id$ -->
-<span jwcid="@Shell" title="ognl:inspectorTitle" stylesheet="ognl:assets.stylesheet">
-<body jwcid="@Body">
-
-<span jwcid="@inspector:Selector">
-
-<span jwcid="@inspector:ViewTabs">
-
-<span jwcid="@RenderBlock" block="ognl:blockForView"/>
-
-</span>
-</span>
-
-<span jwcid="specificationBlock@Block">
-<span jwcid="@inspector:ShowSpecification"/>
-</span>
-
-<span jwcid="templateBlock@Block">
-<span jwcid="@inspector:ShowTemplate"/>
-</span>
-
-<span jwcid="propertiesBlock@Block">
-<span jwcid="@inspector:ShowProperties"/>
-</span>
-
-<span jwcid="engineBlock@Block">
-<span jwcid="@inspector:ShowEngine"/>
-</span>
-
-</body>
-</span>
diff --git a/3.0.4/contrib/src/org/apache/tapestry/contrib/inspector/Inspector.java b/3.0.4/contrib/src/org/apache/tapestry/contrib/inspector/Inspector.java
deleted file mode 100644
index 631e893..0000000
--- a/3.0.4/contrib/src/org/apache/tapestry/contrib/inspector/Inspector.java
+++ /dev/null
@@ -1,145 +0,0 @@
-//  Copyright 2004 The Apache Software Foundation
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-package org.apache.tapestry.contrib.inspector;
-
-import java.util.HashMap;
-import java.util.Map;
-
-import org.apache.tapestry.IComponent;
-import org.apache.tapestry.IPage;
-import org.apache.tapestry.IRequestCycle;
-import org.apache.tapestry.components.Block;
-import org.apache.tapestry.html.BasePage;
-
-/**
- *  The Tapestry Inspector page.
- *
- *  @author Howard Lewis Ship
- *  @version $Id$
- **/
-
-public abstract class Inspector extends BasePage
-{
-    private Map _blocks = new HashMap();
-
-    protected void finishLoad()
-    {
-        _blocks.put(View.TEMPLATE, getComponent("templateBlock"));
-        _blocks.put(View.SPECIFICATION, getComponent("specificationBlock"));
-        _blocks.put(View.ENGINE, getComponent("engineBlock"));
-        _blocks.put(View.PROPERTIES, getComponent("propertiesBlock"));
-    }
-
-    public abstract View getView();
-
-    public abstract void setView(View value);
-
-    public abstract String getInspectedPageName();
-    
-    public abstract void setInspectedPageName(String value);
-
-    public abstract String getInspectedIdPath();
-
-    public abstract void setInspectedIdPath(String value);
-
-    /** 
-     *  Invoked to change the component being inspected within the current
-     *  page.
-     *
-     *  @since 1.0.6
-     **/
-
-    public void selectComponent(String idPath)
-    {
-        setInspectedIdPath(idPath);
-    }
-
-    /**
-     *  Method invoked by the {@link InspectorButton} component, 
-     *  to begin inspecting a page.
-     *
-     **/
-
-    public void inspect(String pageName, IRequestCycle cycle)
-    {
-        setInspectedPageName(pageName);
-        selectComponent((String) null);
-
-        cycle.activate(this);
-    }
-
-    /**
-     *  Listener for the component selection, which allows a particular component.  
-     *  
-     *  <p>The context is a single string,
-     *  the id path of the component to be selected (or null to inspect
-     *  the page itself).  This invokes
-     *  {@link #selectComponent(String)}.
-     *
-     **/
-
-    public void selectComponent(IRequestCycle cycle)
-    {
-        Object[] parameters = cycle.getServiceParameters();
-
-        String newIdPath;
-
-        // The up button may generate a null context.
-
-        if (parameters == null)
-            newIdPath = null;
-        else
-            newIdPath = (String) parameters[0];
-
-        selectComponent(newIdPath);
-    }
-
-    /**
-     *  Returns the {@link IPage} currently inspected by the Inspector, as determined
-     *  from the inspectedPageName property.
-     *
-     **/
-
-    public IPage getInspectedPage()
-    {
-        return getRequestCycle().getPage(getInspectedPageName());
-    }
-
-    /**
-     *  Returns the {@link IComponent} current inspected; this is determined
-     *  from the inspectedPageName and inspectedIdPath properties.
-     *
-     **/
-
-    public IComponent getInspectedComponent()
-    {
-        return getInspectedPage().getNestedComponent(getInspectedIdPath());
-    }
-
-    public String getInspectorTitle()
-    {
-        return "Tapestry Inspector: " + getEngine().getSpecification().getName();
-    }
-
-    /**
-     *  Returns the {@link Block} for the currently selected view.
-     *
-     **/
-
-    public Block getBlockForView()
-    {
-        return (Block) _blocks.get(getView());
-    }
-}
\ No newline at end of file
diff --git a/3.0.4/contrib/src/org/apache/tapestry/contrib/inspector/Inspector.library b/3.0.4/contrib/src/org/apache/tapestry/contrib/inspector/Inspector.library
deleted file mode 100644
index 17e172a..0000000
--- a/3.0.4/contrib/src/org/apache/tapestry/contrib/inspector/Inspector.library
+++ /dev/null
@@ -1,22 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
-    Copyright 2004 The Apache Software Foundation
-  
-   Licensed under the Apache License, Version 2.0 (the "License");
-   you may not use this file except in compliance with the License.
-   You may obtain a copy of the License at
-  
-       http://www.apache.org/licenses/LICENSE-2.0
-  
-   Unless required by applicable law or agreed to in writing, software
-   distributed under the License is distributed on an "AS IS" BASIS,
-   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-   See the License for the specific language governing permissions and
-   limitations under the License.
--->
-<!-- Inspector.library,v 1.1 2002/08/24 16:07:50 hship Exp -->
-<!DOCTYPE library-specification PUBLIC 
-  "-//Apache Software Foundation//Tapestry Specification 3.0//EN" 
-  "http://jakarta.apache.org/tapestry/dtd/Tapestry_3_0.dtd">
-	
-<library-specification/>
\ No newline at end of file
diff --git a/3.0.4/contrib/src/org/apache/tapestry/contrib/inspector/Inspector.page b/3.0.4/contrib/src/org/apache/tapestry/contrib/inspector/Inspector.page
deleted file mode 100644
index 03b88a4..0000000
--- a/3.0.4/contrib/src/org/apache/tapestry/contrib/inspector/Inspector.page
+++ /dev/null
@@ -1,32 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
-   Copyright 2004 The Apache Software Foundation
-  
-   Licensed under the Apache License, Version 2.0 (the "License");
-   you may not use this file except in compliance with the License.
-   You may obtain a copy of the License at
-  
-       http://www.apache.org/licenses/LICENSE-2.0
-  
-   Unless required by applicable law or agreed to in writing, software
-   distributed under the License is distributed on an "AS IS" BASIS,
-   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-   See the License for the specific language governing permissions and
-   limitations under the License.
--->
-<!-- $Id$ -->
-<!DOCTYPE page-specification PUBLIC 
-  "-//Apache Software Foundation//Tapestry Specification 3.0//EN" 
-  "http://jakarta.apache.org/tapestry/dtd/Tapestry_3_0.dtd">
-	
-<page-specification class="org.apache.tapestry.contrib.inspector.Inspector">
-
-  <property-specification name="view" type="org.apache.tapestry.contrib.inspector.View"
-  		persistent="yes"
-  		initial-value="@org.apache.tapestry.contrib.inspector.View@SPECIFICATION"/>
-  <property-specification name="inspectedPageName" type="java.lang.String" persistent="yes"/>
-  <property-specification name="inspectedIdPath" type="java.lang.String" persistent="yes"/>
-  
-  <private-asset name="stylesheet" resource-path="Inspector.css"/>
-
-</page-specification>
diff --git a/3.0.4/contrib/src/org/apache/tapestry/contrib/inspector/InspectorButton.html b/3.0.4/contrib/src/org/apache/tapestry/contrib/inspector/InspectorButton.html
deleted file mode 100644
index aa38e55..0000000
--- a/3.0.4/contrib/src/org/apache/tapestry/contrib/inspector/InspectorButton.html
+++ /dev/null
@@ -1,10 +0,0 @@
-<!-- $Id$ -->
-
-<span jwcid="$content$">
-
-<div id="tapestryInspector" style="position:absolute; border-color:black; border-width:2px; border-style:solid; padding:3px; background-color:#839cd1;">
-<a jwcid="link"><img jwcid="rollover"/></a>
-</div>
-
-</span>
-
diff --git a/3.0.4/contrib/src/org/apache/tapestry/contrib/inspector/InspectorButton.java b/3.0.4/contrib/src/org/apache/tapestry/contrib/inspector/InspectorButton.java
deleted file mode 100644
index 9fd512d..0000000
--- a/3.0.4/contrib/src/org/apache/tapestry/contrib/inspector/InspectorButton.java
+++ /dev/null
@@ -1,133 +0,0 @@
-//  Copyright 2004 The Apache Software Foundation
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-package org.apache.tapestry.contrib.inspector;
-
-import java.util.HashMap;
-import java.util.Map;
-
-import org.apache.tapestry.ApplicationRuntimeException;
-import org.apache.tapestry.BaseComponent;
-import org.apache.tapestry.IDirect;
-import org.apache.tapestry.IEngine;
-import org.apache.tapestry.IMarkupWriter;
-import org.apache.tapestry.IRequestCycle;
-import org.apache.tapestry.IResourceLocation;
-import org.apache.tapestry.IScript;
-import org.apache.tapestry.Tapestry;
-import org.apache.tapestry.engine.IEngineService;
-import org.apache.tapestry.engine.ILink;
-import org.apache.tapestry.engine.IScriptSource;
-import org.apache.tapestry.html.Body;
-
-/**
- *  Component that can be placed into application pages that will launch
- *  the inspector in a new window.
- * 
- *  [<a href="../../../../../../ComponentReference/InspectorButton.html">Component Reference</a>]
- *
- *  <p>Because the InspectorButton component is implemented using a {@link org.apache.tapestry.html.Rollover},
- *  the containing page must use a {@link Body} component instead of
- *  a &lt;body&gt; tag.
- *
- *  @version $Id$
- *  @author Howard Lewis Ship
- *
- **/
-
-public class InspectorButton extends BaseComponent implements IDirect
-{
-    private boolean _disabled = false;
-
-    /**
-     *  Gets the listener for the link component.
-     *
-     *  @since 1.0.5
-     **/
-
-    public void trigger(IRequestCycle cycle)
-    {
-        String name = getNamespace().constructQualifiedName("Inspector");
-
-        Inspector inspector = (Inspector) cycle.getPage(name);
-
-        inspector.inspect(getPage().getPageName(), cycle);
-    }
-
-    /**
-     *  Renders the script, then invokes the normal implementation.
-     *
-     *  @since 1.0.5
-     **/
-
-    protected void renderComponent(IMarkupWriter writer, IRequestCycle cycle)
-    {
-        if (_disabled || cycle.isRewinding())
-            return;
-
-        IEngine engine = getPage().getEngine();
-        IScriptSource source = engine.getScriptSource();
-
-        IResourceLocation scriptLocation =
-            getSpecification().getSpecificationLocation().getRelativeLocation(
-                "InspectorButton.script");
-
-        IScript script = source.getScript(scriptLocation);
-
-        Map symbols = new HashMap();
-
-        IEngineService service = engine.getService(Tapestry.DIRECT_SERVICE);
-        ILink link = service.getLink(cycle, this, null);
-
-        symbols.put("URL", link.getURL());
-
-        Body body = Body.get(cycle);
-
-        if (body == null)
-            throw new ApplicationRuntimeException(
-                Tapestry.getMessage("InspectorButton.must-be-contained-by-body"),
-                this,
-                null,
-                null);
-
-        script.execute(cycle, body, symbols);
-
-        // Now, go render the rest from the template.
-
-        super.renderComponent(writer, cycle);
-    }
-
-    public boolean isDisabled()
-    {
-        return _disabled;
-    }
-
-    public void setDisabled(boolean disabled)
-    {
-        _disabled = disabled;
-    }
-
-    /**
-     *  Always returns false.
-     * 
-     *  @since 2.3
-     * 
-     **/
-
-    public boolean isStateful()
-    {
-        return false;
-    }
-
-}
\ No newline at end of file
diff --git a/3.0.4/contrib/src/org/apache/tapestry/contrib/inspector/InspectorButton.jwc b/3.0.4/contrib/src/org/apache/tapestry/contrib/inspector/InspectorButton.jwc
deleted file mode 100644
index cccf00d..0000000
--- a/3.0.4/contrib/src/org/apache/tapestry/contrib/inspector/InspectorButton.jwc
+++ /dev/null
@@ -1,47 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
-   Copyright 2004 The Apache Software Foundation
-  
-   Licensed under the Apache License, Version 2.0 (the "License");
-   you may not use this file except in compliance with the License.
-   You may obtain a copy of the License at
-  
-       http://www.apache.org/licenses/LICENSE-2.0
-  
-   Unless required by applicable law or agreed to in writing, software
-   distributed under the License is distributed on an "AS IS" BASIS,
-   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-   See the License for the specific language governing permissions and
-   limitations under the License.
--->
-<!-- $Id$ -->
-<!DOCTYPE component-specification PUBLIC
-  "-//Apache Software Foundation//Tapestry Specification 3.0//EN" 
-  "http://jakarta.apache.org/tapestry/dtd/Tapestry_3_0.dtd">
-
-<component-specification class="org.apache.tapestry.contrib.inspector.InspectorButton" 
-	allow-body="no" 
-	allow-informal-parameters="no">
-
-    <description>
-<![CDATA[
-Includes the Inspector button on the page (which dynamically positions itself in the
-lower right corner).  Clicking the button raises the Tapestry Inspector in a pop-up
-window.
-]]>
-    </description>
-
-  <parameter name="disabled" type="boolean" direction="in"/>
-
-    <component id="link" type="GenericLink">
-        <static-binding name="href">javascript:ti_raiseInspector();</static-binding>
-    </component>
-
-    <component id="rollover" type="Rollover">
-    	<binding name="image" expression="assets.logo"/>
-    	<binding name="focus" expression="assets.inspector"/>
-    </component>
-
-    <private-asset name="logo" resource-path="tapestry-logo.gif"/>
-    <private-asset name="inspector" resource-path="inspector-rollover.gif"/>
-</component-specification>
diff --git a/3.0.4/contrib/src/org/apache/tapestry/contrib/inspector/InspectorButton.script b/3.0.4/contrib/src/org/apache/tapestry/contrib/inspector/InspectorButton.script
deleted file mode 100644
index a0e1f31..0000000
--- a/3.0.4/contrib/src/org/apache/tapestry/contrib/inspector/InspectorButton.script
+++ /dev/null
@@ -1,118 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!-- $Id$ -->
-<!DOCTYPE script PUBLIC 
-	"-//Howard Lewis Ship//Tapestry Script 1.2//EN"
-	"http://tapestry.sf.net/dtd/Script_1_2.dtd">
-<!--
-
-Adds scripting support for the ShowInspector component.
-
-Prefixes all variables and functions with "ti_" (for Tapestry Inspector).
-
-Expects that the Inspector is inside a <div> named "tapestryInspector".
-
-Input symbols:
- URL - The complete URL needed for to raise the Inspector
- 
--->
-<script>
-
-<include-script resource-path="/org/apache/tapestry/html/PracticalBrowserSniffer.js"/>
-
-<input-symbol key="URL" class="java.lang.String" required="yes"/>
-
-<body>
-var ti = new Object();
-
-ti.oldX = 0;
-ti.oldY = 0;
-
-function ti_positionInspector()
-{
-  var object;
-  var width;
-  var height;
-
-  if (navigator.family == "nn4")
-  {
-    object = document.tapestryInspector;
-    width = innerWidth + pageXOffset;  <!-- Doesn't properly account for scrollbars! -->
-    height = innerHeight + pageYOffset;
-  }
-  else
-  {
-    object = document.getElementById("tapestryInspector");
-    
-	if (navigator.OS == "mac")
-	{
-	  width = document.body.offsetWidth;
-	  height = document.body.offsetWidth;
-	}
-	else if (navigator.family == "gecko")
-	{
-      width = innerWidth + pageXOffset; 
-      height = innerHeight + pageYOffset;
-	}
-	else
-	{
-	  // IE 5, 6? on PC
-	  width = document.body.clientWidth  + document.body.scrollLeft;
-	  height = document.body.clientHeight + document.body.scrollTop;
-	}
-  }
-   	
-  // The width/height of the animation, plus
-  // a couple of pixels of border.
-  
-  var indent = 65;
-  
-  var x = width - indent;
-  var y = height - indent;
-
-  if (navigator.family == "nn4")
-  {
-    if (x != ti.oldX || y != ti.oldY)
-    {
-      object.moveTo(x, y);
-      object.visibility = "visible";
-    }
-  }
-  else
-  {
-    if (x != ti.oldX)
-    {
-       object.style.left = x + "px";
-       ti.oldX = x;
-    }
-    if (y != ti.oldY)
-    {
-    	object.style.top = y + "px";
-    	ti.oldY = y;
-    }
-
- 	object.style.visibility = "visible";  
-  }
-
-
-    
-  // Reposition it every quarter second.
-  
-  window.setTimeout("ti_positionInspector()", 250);
-}
-
-function ti_raiseInspector()
-{
-  var newWindow = window.open(
-  	"${URL}",
-  	"TapestryInspector",
-  	"titlebar,resizable,scrollbars,width=700,height=600");
-  	
-  newWindow.focus();
-}
-</body>
-
-<initialization>
-ti_positionInspector();
-</initialization>
-
-</script>
diff --git a/3.0.4/contrib/src/org/apache/tapestry/contrib/inspector/Properties_HRp4.gif b/3.0.4/contrib/src/org/apache/tapestry/contrib/inspector/Properties_HRp4.gif
deleted file mode 100644
index e2fe821..0000000
--- a/3.0.4/contrib/src/org/apache/tapestry/contrib/inspector/Properties_HRp4.gif
+++ /dev/null
Binary files differ
diff --git a/3.0.4/contrib/src/org/apache/tapestry/contrib/inspector/Properties_Hp3.gif b/3.0.4/contrib/src/org/apache/tapestry/contrib/inspector/Properties_Hp3.gif
deleted file mode 100644
index 8aa25cb..0000000
--- a/3.0.4/contrib/src/org/apache/tapestry/contrib/inspector/Properties_Hp3.gif
+++ /dev/null
Binary files differ
diff --git a/3.0.4/contrib/src/org/apache/tapestry/contrib/inspector/Properties_NBanner.gif b/3.0.4/contrib/src/org/apache/tapestry/contrib/inspector/Properties_NBanner.gif
deleted file mode 100644
index 5fa7f5b..0000000
--- a/3.0.4/contrib/src/org/apache/tapestry/contrib/inspector/Properties_NBanner.gif
+++ /dev/null
Binary files differ
diff --git a/3.0.4/contrib/src/org/apache/tapestry/contrib/inspector/Properties_NRp2.gif b/3.0.4/contrib/src/org/apache/tapestry/contrib/inspector/Properties_NRp2.gif
deleted file mode 100644
index 12b13a1..0000000
--- a/3.0.4/contrib/src/org/apache/tapestry/contrib/inspector/Properties_NRp2.gif
+++ /dev/null
Binary files differ
diff --git a/3.0.4/contrib/src/org/apache/tapestry/contrib/inspector/Properties_Np1.gif b/3.0.4/contrib/src/org/apache/tapestry/contrib/inspector/Properties_Np1.gif
deleted file mode 100644
index 917436a..0000000
--- a/3.0.4/contrib/src/org/apache/tapestry/contrib/inspector/Properties_Np1.gif
+++ /dev/null
Binary files differ
diff --git a/3.0.4/contrib/src/org/apache/tapestry/contrib/inspector/Reset_NRp2.gif b/3.0.4/contrib/src/org/apache/tapestry/contrib/inspector/Reset_NRp2.gif
deleted file mode 100644
index 371cba0..0000000
--- a/3.0.4/contrib/src/org/apache/tapestry/contrib/inspector/Reset_NRp2.gif
+++ /dev/null
Binary files differ
diff --git a/3.0.4/contrib/src/org/apache/tapestry/contrib/inspector/Reset_Np1.gif b/3.0.4/contrib/src/org/apache/tapestry/contrib/inspector/Reset_Np1.gif
deleted file mode 100644
index eb87bf4..0000000
--- a/3.0.4/contrib/src/org/apache/tapestry/contrib/inspector/Reset_Np1.gif
+++ /dev/null
Binary files differ
diff --git a/3.0.4/contrib/src/org/apache/tapestry/contrib/inspector/Reset_Np1_disabled.gif b/3.0.4/contrib/src/org/apache/tapestry/contrib/inspector/Reset_Np1_disabled.gif
deleted file mode 100644
index 0cfdd51..0000000
--- a/3.0.4/contrib/src/org/apache/tapestry/contrib/inspector/Reset_Np1_disabled.gif
+++ /dev/null
Binary files differ
diff --git a/3.0.4/contrib/src/org/apache/tapestry/contrib/inspector/Restart_NRp2.gif b/3.0.4/contrib/src/org/apache/tapestry/contrib/inspector/Restart_NRp2.gif
deleted file mode 100644
index 8fed715..0000000
--- a/3.0.4/contrib/src/org/apache/tapestry/contrib/inspector/Restart_NRp2.gif
+++ /dev/null
Binary files differ
diff --git a/3.0.4/contrib/src/org/apache/tapestry/contrib/inspector/Restart_Np1.gif b/3.0.4/contrib/src/org/apache/tapestry/contrib/inspector/Restart_Np1.gif
deleted file mode 100644
index dda92b0..0000000
--- a/3.0.4/contrib/src/org/apache/tapestry/contrib/inspector/Restart_Np1.gif
+++ /dev/null
Binary files differ
diff --git a/3.0.4/contrib/src/org/apache/tapestry/contrib/inspector/Selector.html b/3.0.4/contrib/src/org/apache/tapestry/contrib/inspector/Selector.html
deleted file mode 100644
index 15ecbf7..0000000
--- a/3.0.4/contrib/src/org/apache/tapestry/contrib/inspector/Selector.html
+++ /dev/null
@@ -1,23 +0,0 @@
-<!-- $Id$ -->
-
-<table class="selector">
-	<tr valign=center>
-		<td>
-			<form jwcid="form">
-				<select jwcid="selectPage"/>
-			</form>
-		</td>
-		<td class="page-link">
-			<a jwcid="page">page</a>
-		</td>
-<span jwcid="e">
-		<td>&gt;&gt;</td>
-		<td>
-		<a jwcid="component"><span jwcid="insertId"/></a>
-		</td>
-</span>
-	</tr>
-</table>
-
-<span jwcid="renderBody"/>
-
diff --git a/3.0.4/contrib/src/org/apache/tapestry/contrib/inspector/Selector.java b/3.0.4/contrib/src/org/apache/tapestry/contrib/inspector/Selector.java
deleted file mode 100644
index 158025d..0000000
--- a/3.0.4/contrib/src/org/apache/tapestry/contrib/inspector/Selector.java
+++ /dev/null
@@ -1,150 +0,0 @@
-//  Copyright 2004 The Apache Software Foundation
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-package org.apache.tapestry.contrib.inspector;
-
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.HashSet;
-import java.util.List;
-import java.util.Set;
-
-import org.apache.tapestry.BaseComponent;
-import org.apache.tapestry.IComponent;
-import org.apache.tapestry.INamespace;
-import org.apache.tapestry.IRequestCycle;
-import org.apache.tapestry.engine.ISpecificationSource;
-import org.apache.tapestry.form.IPropertySelectionModel;
-import org.apache.tapestry.form.StringPropertySelectionModel;
-
-/**
- *  Component of the {@link Inspector} page used to select the page and "crumb trail"
- *  of the inspected component.
- *
- *
- *  @version $Id$
- *  @author Howard Lewis Ship
- *
- **/
-
-public class Selector extends BaseComponent
-{
-    /**
-     *  When the form is submitted,
-     *  the inspectedPageName of the {@link Inspector} page will be updated,
-     *  but we need to reset the inspectedIdPath as well.
-     *
-     **/
-
-    public void formSubmit(IRequestCycle cycle)
-    {
-        Inspector inspector = (Inspector) getPage();
-
-        inspector.selectComponent((String) null);
-    }
-
-    /**
-     *  Returns an {IPropertySelectionModel} used to select the name of the page
-     *  to inspect.  The page names are sorted.
-     *
-     **/
-
-    public IPropertySelectionModel getPageModel()
-    {
-        return new StringPropertySelectionModel(getPageNames());
-    }
-
-    /**
-     *  The crumb trail is all the components from the inspected component up to
-     *  (but not including) the page.
-     *
-     **/
-
-    public List getCrumbTrail()
-    {
-        List result = null;
-
-        Inspector inspector = (Inspector) getPage();
-        IComponent component = inspector.getInspectedComponent();
-        IComponent container = null;
-
-        while (true)
-        {
-            container = component.getContainer();
-            if (container == null)
-                break;
-
-            if (result == null)
-                result = new ArrayList();
-
-            result.add(component);
-
-            component = container;
-        }
-
-        if (result == null)
-            return null;
-
-        // Reverse the list, such that the inspected component is last, and the
-        // top-most container is first.
-
-        Collections.reverse(result);
-
-        return result;
-    }
-
-    private String[] getPageNames()
-    {
-        Set names = new HashSet();
-
-        ISpecificationSource source = getPage().getEngine().getSpecificationSource();
-
-        addPageNames(names, source.getFrameworkNamespace());
-        addPageNames(names, source.getApplicationNamespace());
-
-        List l = new ArrayList(names);
-        Collections.sort(l);
-
-        return (String[]) l.toArray(new String[l.size()]);
-    }
-
-    private void addPageNames(Set names, INamespace namespace)
-    {
-        String idPrefix = namespace.getExtendedId();
-
-        List pageNames = namespace.getPageNames();
-        int count = pageNames.size();
-
-        for (int i = 0; i < count; i++)
-        {
-            String name = (String) pageNames.get(i);
-
-            if (idPrefix == null)
-                names.add(name);
-            else
-                names.add(idPrefix + ":" + name);
-        }
-
-        List ids = namespace.getChildIds();
-        count = ids.size();
-
-        for (int i = 0; i < count; i++)
-        {
-            String id = (String) ids.get(i);
-
-            addPageNames(names, namespace.getChildNamespace(id));
-        }
-    }
-
-}
\ No newline at end of file
diff --git a/3.0.4/contrib/src/org/apache/tapestry/contrib/inspector/Selector.jwc b/3.0.4/contrib/src/org/apache/tapestry/contrib/inspector/Selector.jwc
deleted file mode 100644
index dee4b40..0000000
--- a/3.0.4/contrib/src/org/apache/tapestry/contrib/inspector/Selector.jwc
+++ /dev/null
@@ -1,53 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
-   Copyright 2004 The Apache Software Foundation
-  
-   Licensed under the Apache License, Version 2.0 (the "License");
-   you may not use this file except in compliance with the License.
-   You may obtain a copy of the License at
-  
-       http://www.apache.org/licenses/LICENSE-2.0
-  
-   Unless required by applicable law or agreed to in writing, software
-   distributed under the License is distributed on an "AS IS" BASIS,
-   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-   See the License for the specific language governing permissions and
-   limitations under the License.
--->
-<!-- $Id$ -->
-<!DOCTYPE component-specification PUBLIC 
-  "-//Apache Software Foundation//Tapestry Specification 3.0//EN" 
-  "http://jakarta.apache.org/tapestry/dtd/Tapestry_3_0.dtd">
-	
-<component-specification class="org.apache.tapestry.contrib.inspector.Selector">
-
-  <component id="form" type="Form">
-    <binding name="listener" expression="listeners.formSubmit"/>
-  </component>
-
-  <component id="selectPage" type="PropertySelection">
-    <binding name="value" expression="page.inspectedPageName"/>
-    <binding name="model" expression="pageModel"/>
-    <binding name="submitOnChange" expression="true"/>
-  </component>
-
-  <component id="page" type="DirectLink">
-    <binding name="listener" expression="page.listeners.selectComponent"/>
-  </component>
-
-  <component id="e" type="Foreach">
-    <binding name="source" expression="crumbTrail"/>
-  </component>
-
-  <component id="component" type="DirectLink">
-    <binding name="parameters" expression="components.e.value.idPath"/>
-    <binding name="listener" expression="page.listeners.selectComponent"/>
-  </component>
-
-  <component id="insertId" type="Insert">
-    <binding name="value" expression="components.e.value.id"/>
-  </component>
-
-  <component id="renderBody" type="RenderBody"/>
-
-</component-specification>
diff --git a/3.0.4/contrib/src/org/apache/tapestry/contrib/inspector/ShowDescription.html b/3.0.4/contrib/src/org/apache/tapestry/contrib/inspector/ShowDescription.html
deleted file mode 100644
index 917e59c..0000000
--- a/3.0.4/contrib/src/org/apache/tapestry/contrib/inspector/ShowDescription.html
+++ /dev/null
@@ -1,5 +0,0 @@
-<!-- $Id$ -->
-
-<span jwcid="$content$">
-<span jwcid="ifDescription"><img jwcid="descriptionImage"/></span>
-</span>
\ No newline at end of file
diff --git a/3.0.4/contrib/src/org/apache/tapestry/contrib/inspector/ShowDescription.jwc b/3.0.4/contrib/src/org/apache/tapestry/contrib/inspector/ShowDescription.jwc
deleted file mode 100644
index 28466ca..0000000
--- a/3.0.4/contrib/src/org/apache/tapestry/contrib/inspector/ShowDescription.jwc
+++ /dev/null
@@ -1,40 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
-   Copyright 2004 The Apache Software Foundation
-  
-   Licensed under the Apache License, Version 2.0 (the "License");
-   you may not use this file except in compliance with the License.
-   You may obtain a copy of the License at
-  
-       http://www.apache.org/licenses/LICENSE-2.0
-  
-   Unless required by applicable law or agreed to in writing, software
-   distributed under the License is distributed on an "AS IS" BASIS,
-   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-   See the License for the specific language governing permissions and
-   limitations under the License.
--->
-<!-- $Id$ -->
-
-<!DOCTYPE component-specification PUBLIC 
-  "-//Apache Software Foundation//Tapestry Specification 3.0//EN" 
-  "http://jakarta.apache.org/tapestry/dtd/Tapestry_3_0.dtd">
-
-<component-specification class="org.apache.tapestry.BaseComponent" 
-	allow-body="no" 
-	allow-informal-parameters="no">
-	
-	<parameter name="description" required="yes"/>
-	
-	<component id="ifDescription" type="Conditional">
-	  <inherited-binding name="condition" parameter-name="description"/>
-	</component>
-	
-	<component id="descriptionImage" type="Image">
-	  <binding name="image" expression="assets.info"/>
-	  <inherited-binding name="alt" parameter-name="description"/>
-	</component>
-	
-	<private-asset name="info" resource-path="info.gif"/>
-	
-</component-specification>
diff --git a/3.0.4/contrib/src/org/apache/tapestry/contrib/inspector/ShowEngine.html b/3.0.4/contrib/src/org/apache/tapestry/contrib/inspector/ShowEngine.html
deleted file mode 100644
index 797c8ff..0000000
--- a/3.0.4/contrib/src/org/apache/tapestry/contrib/inspector/ShowEngine.html
+++ /dev/null
@@ -1,90 +0,0 @@
-<!-- $Id$ -->
-
-<table class="inspector-data">
-
-	<tr class="heading">
-		<th colspan=2>Engine/Application Properties</th>
-	</tr>
-	
-	<tr class="heading">
-		<th>Name</th> <th>Property</th>
-	</tr>
-	
-	<tr class="even">
-		<th>Tapestry Framework Version</th>
-		<td><span jwcid="insertFrameworkVersion"/></td>
-	</tr>
-	
-	<tr class="odd">
-		<th>Application Name</th>
-		<td><span jwcid="insertApplicationName"/></td>
-	</tr>
-
-	<tr class="even">
-		<th>Context Path</th>
-		<td><span jwcid="insertContextPath"/></td>
-	</tr>
-
-	<tr class="odd">
-		<th>Servlet Path</th>
-		<td><span jwcid="insertServletPath"/></td>
-	</tr>
-
-	<tr class="even">
-		<th>Engine Class</th>
-		<td><span jwcid="insertEngineClass"/></td>
-	</tr>
-	
-	<tr class="odd">
-		<th>Locale</th>
-		<td><span jwcid="insertLocale"/></td>
-	</tr>
-
-	<tr class="even">
-		<th>Visit</th>
-		<td>
-<span jwcid="ifNoVisit">
-<em>none</em>
-</span>
-
-<span jwcid="ifVisit">
-<span jwcid="insertVisit"/>
-</span>
-		</td>
-	</tr>
-
-</table>
-
-<h1>Operations</h1>
-
-<table class="inspector-data">
-
-	<tr class="even">
-		<td><a jwcid="restart" target="_new"><img jwcid="restartButton"/></a>
-		</td>
-		<td>Restart the application (in a new window).
-		</td>
-	</tr>
-
-	<tr class="even">
-		<td><a jwcid="reset"><img jwcid="resetButton"/></a>
-		</td>
-		<td>
-		Reset the application, discarding all cached specifications, assets
-		and templates.
-		</td>
-	</tr>
-</table>
-
-<h1>Serialized Engine</h1>
-
-<p>The serialized state of the application engine (the size of this is relevant
-for application servers which support clustering).
-
-<p><span jwcid="insertByteCount"/> bytes:
-<pre><span jwcid="insertSerializedEngine"/></pre>
-
-<h1>Request Context</h1>
-
-<span jwcid="insertRequest"/>
-
diff --git a/3.0.4/contrib/src/org/apache/tapestry/contrib/inspector/ShowEngine.java b/3.0.4/contrib/src/org/apache/tapestry/contrib/inspector/ShowEngine.java
deleted file mode 100644
index 0b9dc71..0000000
--- a/3.0.4/contrib/src/org/apache/tapestry/contrib/inspector/ShowEngine.java
+++ /dev/null
@@ -1,186 +0,0 @@
-//  Copyright 2004 The Apache Software Foundation
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-package org.apache.tapestry.contrib.inspector;
-
-import java.io.ByteArrayOutputStream;
-import java.io.CharArrayWriter;
-import java.io.IOException;
-import java.io.ObjectOutputStream;
-import java.io.OutputStream;
-
-import org.apache.tapestry.ApplicationRuntimeException;
-import org.apache.tapestry.BaseComponent;
-import org.apache.tapestry.IMarkupWriter;
-import org.apache.tapestry.IRender;
-import org.apache.tapestry.IRequestCycle;
-import org.apache.tapestry.Tapestry;
-import org.apache.tapestry.event.PageDetachListener;
-import org.apache.tapestry.event.PageEvent;
-import org.apache.tapestry.util.io.BinaryDumpOutputStream;
-
-/**
- *  Component of the {@link Inspector} page used to display
- *  the properties of the {@link org.apache.tapestry.IEngine} as well as a serialized view of it.
- *  Also, the {@link org.apache.tapestry.request.RequestContext} is dumped out.
- *
- *
- *  @version $Id$
- *  @author Howard Lewis Ship
- *
- **/
-
-public class ShowEngine extends BaseComponent implements PageDetachListener
-{
-    private byte[] serializedEngine;
-
-    public void pageDetached(PageEvent event)
-    {
-        serializedEngine = null;
-    }
-
-    /**
-     *  Workaround for OGNL limitation --- OGNL can't dereference
-     *  past class instances.
-     * 
-     *  @since 2.2
-     * 
-     **/
-
-    public String getEngineClassName()
-    {
-        return getPage().getEngine().getClass().getName();
-    }
-
-    private byte[] getSerializedEngine()
-    {
-        if (serializedEngine == null)
-            buildSerializedEngine();
-
-        return serializedEngine;
-    }
-
-    private void buildSerializedEngine()
-    {
-        ByteArrayOutputStream bos = null;
-        ObjectOutputStream oos = null;
-
-        try
-        {
-            bos = new ByteArrayOutputStream();
-            oos = new ObjectOutputStream(bos);
-
-            // Write the application object to the stream.
-
-            oos.writeObject(getPage().getEngine());
-
-            // Extract the application as an array of bytes.
-
-            serializedEngine = bos.toByteArray();
-        }
-        catch (IOException ex)
-        {
-            throw new ApplicationRuntimeException(
-                Tapestry.getMessage("ShowEngine.could-not-serialize"),
-                ex);
-        }
-        finally
-        {
-            close(oos);
-            close(bos);
-        }
-
-        // It would be nice to deserialize the application object now, but in
-        // practice, that fails due to class loader problems.
-    }
-
-    private void close(OutputStream stream)
-    {
-        if (stream == null)
-            return;
-
-        try
-        {
-            stream.close();
-        }
-        catch (IOException ex)
-        {
-            // Ignore.
-        }
-    }
-
-    public int getEngineByteCount()
-    {
-        return getSerializedEngine().length;
-    }
-
-    public IRender getEngineDumpDelegate()
-    {
-        return new IRender()
-        {
-            public void render(IMarkupWriter writer, IRequestCycle cycle)
-            {
-                dumpSerializedEngine(writer);
-            }
-        };
-    }
-
-    private void dumpSerializedEngine(IMarkupWriter responseWriter)
-    {
-        CharArrayWriter writer = null;
-        BinaryDumpOutputStream bos = null;
-
-        try
-        {
-            // Because IReponseWriter doesn't implement the
-            // java.io.Writer interface, we have to buffer this
-            // stuff then pack it in all at once.  Kind of a waste!
-
-            writer = new CharArrayWriter();
-
-            bos = new BinaryDumpOutputStream(writer);
-            bos.setBytesPerLine(32);
-
-            bos.write(getSerializedEngine());
-            bos.close();
-
-            responseWriter.print(writer.toString());
-        }
-        catch (IOException ex)
-        {
-            // Ignore.
-        }
-        finally
-        {
-            if (bos != null)
-            {
-                try
-                {
-                    bos.close();
-                }
-                catch (IOException ex)
-                {
-                    // Ignore.
-                }
-            }
-
-            if (writer != null)
-            {
-                writer.reset();
-                writer.close();
-            }
-        }
-    }
-
-}
\ No newline at end of file
diff --git a/3.0.4/contrib/src/org/apache/tapestry/contrib/inspector/ShowEngine.jwc b/3.0.4/contrib/src/org/apache/tapestry/contrib/inspector/ShowEngine.jwc
deleted file mode 100644
index b181816..0000000
--- a/3.0.4/contrib/src/org/apache/tapestry/contrib/inspector/ShowEngine.jwc
+++ /dev/null
@@ -1,97 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
-   Copyright 2004 The Apache Software Foundation
-  
-   Licensed under the Apache License, Version 2.0 (the "License");
-   you may not use this file except in compliance with the License.
-   You may obtain a copy of the License at
-  
-       http://www.apache.org/licenses/LICENSE-2.0
-  
-   Unless required by applicable law or agreed to in writing, software
-   distributed under the License is distributed on an "AS IS" BASIS,
-   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-   See the License for the specific language governing permissions and
-   limitations under the License.
--->
-<!-- $Id$ -->
-<!DOCTYPE component-specification PUBLIC 
-  "-//Apache Software Foundation//Tapestry Specification 3.0//EN" 
-  "http://jakarta.apache.org/tapestry/dtd/Tapestry_3_0.dtd">
-	
-<component-specification class="org.apache.tapestry.contrib.inspector.ShowEngine" allow-body="no" allow-informal-parameters="no">
-
-  <component id="insertFrameworkVersion" type="Insert">
-  	<binding name="value" expression="@org.apache.tapestry.Tapestry@VERSION"/>
-  </component>
-  
-  <component id="insertApplicationName" type="Insert">
-    <binding name="value" expression="page.engine.specification.name"/>
-  </component>
-  
-  <component id="insertContextPath" type="Insert">
-    <binding name="value" expression="page.engine.contextPath"/>
-  </component>
-  
-  <component id="insertServletPath" type="Insert">
-    <binding name="value" expression="page.engine.servletPath"/>
-  </component>
-  
-  <component id="insertEngineClass" type="Insert">
-    <binding name="value" expression="engineClassName"/>
-  </component>
-  
-  <component id="insertLocale" type="Insert">
-    <binding name="value" expression="page.engine.locale.displayName"/>
-  </component>
-  
-  <component id="ifNoVisit" type="Conditional">
-    <binding name="condition" expression="! page.engine.hasVisit"/>
-  </component>
-  
-  <component id="insertVisit" type="Insert">
-    <binding name="value" expression="page.engine.visit"/>
-  </component>
-  
-  <component id="ifVisit" type="Conditional">
-    <binding name="condition" expression="page.engine.hasVisit"/>
-  </component>
-  
-  <component id="restart" type="ServiceLink">
-    <binding name="service" expression="@org.apache.tapestry.Tapestry@RESTART_SERVICE"/>
-  </component>
-  
-  <component id="restartButton" type="Rollover">
-    <binding name="image" expression="assets.restart"/>
-    <binding name="focus" expression="assets.restartFocus"/>
-  </component>
-  
-  <component id="reset" type="ServiceLink">
-    <binding name="service" expression="@org.apache.tapestry.Tapestry@RESET_SERVICE"/>
-    <binding name="disabled" expression="! page.engine.resetServiceEnabled"/>
-  </component>
-  
-  <component id="resetButton" type="Rollover">
-    <binding name="image" expression="assets.reset"/>
-    <binding name="focus" expression="assets.resetFocus"/>
-    <binding name="disabled" expression="assets.resetDisabled"/>
-  </component>
-  
-  <component id="insertByteCount" type="Insert">
-    <binding name="value" expression="engineByteCount"/>
-  </component>
-  
-  <component id="insertSerializedEngine" type="Delegator">
-    <binding name="delegate" expression="engineDumpDelegate"/>
-  </component>
-  
-  <component id="insertRequest" type="Delegator">
-    <binding name="delegate" expression="page.requestCycle.requestContext"/>
-  </component>
-  
-  <private-asset name="reset" resource-path="Reset_Np1.gif"/>
-  <private-asset name="resetFocus" resource-path="Reset_NRp2.gif"/>
-  <private-asset name="resetDisabled" resource-path="Reset_Np1_disabled.gif"/>
-  <private-asset name="restart" resource-path="Restart_Np1.gif"/>
-  <private-asset name="restartFocus" resource-path="Restart_NRp2.gif"/>
-</component-specification>
diff --git a/3.0.4/contrib/src/org/apache/tapestry/contrib/inspector/ShowProperties.html b/3.0.4/contrib/src/org/apache/tapestry/contrib/inspector/ShowProperties.html
deleted file mode 100644
index 1aa67d8..0000000
--- a/3.0.4/contrib/src/org/apache/tapestry/contrib/inspector/ShowProperties.html
+++ /dev/null
@@ -1,35 +0,0 @@
-<!-- $Id$ -->
-
-<span jwcid="ifNoProperties">
-<span class="message">Page contains no persistent properties.</span>
-</span>
-
-<span jwcid="ifHasProperties">
-<table class="inspector-data">
-	<tr class="heading">
-		<th>Component</th> <th>Property Name</th> <th>Value Class</th> <th>Value</th>
-	</tr>
-
-	<tr jwcid="e">
-		<td>
-			<a jwcid="selectComponent"><span jwcid="insertPath"/></a>
-		</td>
-		<td>
-			<span jwcid="insertPersistPropertyName"/>
-		</td>
-		<td>
-			<span jwcid="insertPersistValueClass"/>
-		</td>
-		<td>
-			<span jwcid="insertPersistValue"/>
-		</td>
-	</tr>
-
-</table>
-
-
-</span>
-
-
-
-	
diff --git a/3.0.4/contrib/src/org/apache/tapestry/contrib/inspector/ShowProperties.java b/3.0.4/contrib/src/org/apache/tapestry/contrib/inspector/ShowProperties.java
deleted file mode 100644
index 6b96c2c..0000000
--- a/3.0.4/contrib/src/org/apache/tapestry/contrib/inspector/ShowProperties.java
+++ /dev/null
@@ -1,142 +0,0 @@
-//  Copyright 2004 The Apache Software Foundation
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-package org.apache.tapestry.contrib.inspector;
-
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.List;
-
-import org.apache.tapestry.BaseComponent;
-import org.apache.tapestry.IEngine;
-import org.apache.tapestry.IPage;
-import org.apache.tapestry.engine.IPageRecorder;
-import org.apache.tapestry.event.PageEvent;
-import org.apache.tapestry.event.PageRenderListener;
-import org.apache.tapestry.record.IPageChange;
-
-/**
- *  Component of the {@link Inspector} page used to display
- *  the persisent properties of the page.
- *
- *  @version $Id$
- *  @author Howard Lewis Ship
- *
- **/
-
-public class ShowProperties extends BaseComponent implements PageRenderListener
-{
-    private List _properties;
-    private IPageChange _change;
-    private IPage _inspectedPage;
-
-    /**
-     *  Does nothing.
-     *
-     *  @since 1.0.5
-     *
-     **/
-
-    public void pageBeginRender(PageEvent event)
-    {
-    }
-
-    /**
-     *  @since 1.0.5
-     *
-     **/
-
-    public void pageEndRender(PageEvent event)
-    {
-        _properties = null;
-        _change = null;
-        _inspectedPage = null;
-    }
-
-    private void buildProperties()
-    {
-        Inspector inspector = (Inspector) getPage();
-
-        _inspectedPage = inspector.getInspectedPage();
-
-        IEngine engine = getPage().getEngine();
-        IPageRecorder recorder =
-            engine.getPageRecorder(_inspectedPage.getPageName(), inspector.getRequestCycle());
-
-        // No page recorder?  No properties.
-
-        if (recorder == null)
-        {
-            _properties = Collections.EMPTY_LIST;
-            return;
-        }
-
-        if (recorder.getHasChanges())
-            _properties = new ArrayList(recorder.getChanges());
-    }
-
-    /**
-     *  Returns a {@link List} of {@link IPageChange} objects.
-     *
-     *  <p>Sort order is not defined.
-     *
-     **/
-
-    public List getProperties()
-    {
-        if (_properties == null)
-            buildProperties();
-
-        return _properties;
-    }
-
-    public void setChange(IPageChange value)
-    {
-        _change = value;
-    }
-
-    public IPageChange getChange()
-    {
-        return _change;
-    }
-
-    /**
-     *  Returns the name of the value's class, if the value is non-null.
-     *
-     **/
-
-    public String getValueClassName()
-    {
-        Object value;
-
-        value = _change.getNewValue();
-
-        if (value == null)
-            return "<null>";
-
-        return convertClassToName(value.getClass());
-    }
-
-    private String convertClassToName(Class cl)
-    {
-        // TODO: This only handles one-dimensional arrays
-        // property.
-
-        if (cl.isArray())
-            return "array of " + cl.getComponentType().getName();
-
-        return cl.getName();
-    }
-
-}
\ No newline at end of file
diff --git a/3.0.4/contrib/src/org/apache/tapestry/contrib/inspector/ShowProperties.jwc b/3.0.4/contrib/src/org/apache/tapestry/contrib/inspector/ShowProperties.jwc
deleted file mode 100644
index 4bde6af..0000000
--- a/3.0.4/contrib/src/org/apache/tapestry/contrib/inspector/ShowProperties.jwc
+++ /dev/null
@@ -1,64 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
-   Copyright 2004 The Apache Software Foundation
-  
-   Licensed under the Apache License, Version 2.0 (the "License");
-   you may not use this file except in compliance with the License.
-   You may obtain a copy of the License at
-  
-       http://www.apache.org/licenses/LICENSE-2.0
-  
-   Unless required by applicable law or agreed to in writing, software
-   distributed under the License is distributed on an "AS IS" BASIS,
-   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-   See the License for the specific language governing permissions and
-   limitations under the License.
--->
-<!-- $Id$ -->
-<!DOCTYPE component-specification PUBLIC 
-  "-//Apache Software Foundation//Tapestry Specification 3.0//EN" 
-  "http://jakarta.apache.org/tapestry/dtd/Tapestry_3_0.dtd">
-	
-<component-specification class="org.apache.tapestry.contrib.inspector.ShowProperties">
-
-  <bean name="persistPropertyClass" class="org.apache.tapestry.bean.EvenOdd"/>
-  <bean name="propertyClass" class="org.apache.tapestry.bean.EvenOdd"/>
-  
-  <component id="ifNoProperties" type="Conditional">
-    <binding name="condition" expression="!properties"/>
-  </component>
-  
-  <component id="ifHasProperties" type="Conditional">
-    <binding name="condition" expression="properties"/>
-  </component>
-  
-  <component id="e" type="Foreach">
-    <binding name="source" expression="properties"/>
-    <binding name="value" expression="change"/>
-    <static-binding name="element">tr</static-binding>
-    <binding name="class" expression="beans.persistPropertyClass.next"/>
-  </component>
-  
-  <component id="selectComponent" type="DirectLink">
-    <binding name="listener" expression="page.listeners.selectComponent"/>
-    <binding name="parameters" expression="change.componentPath"/>
-    <binding name="disabled" expression="change.componentPath == null"/>
-  </component>
-  
-  <component id="insertPath" type="Insert">
-    <binding name="value" expression="change.componentPath"/>
-  </component>
-  
-  <component id="insertPersistPropertyName" type="Insert">
-    <binding name="value" expression="change.propertyName"/>
-  </component>
-  
-  <component id="insertPersistValueClass" type="Insert">
-    <binding name="value" expression="valueClassName"/>
-  </component>
-  
-  <component id="insertPersistValue" type="Insert">
-    <binding name="value" expression="change.newValue"/>
-  </component>
-  
-</component-specification>
diff --git a/3.0.4/contrib/src/org/apache/tapestry/contrib/inspector/ShowSpecification.html b/3.0.4/contrib/src/org/apache/tapestry/contrib/inspector/ShowSpecification.html
deleted file mode 100644
index 74bdccf..0000000
--- a/3.0.4/contrib/src/org/apache/tapestry/contrib/inspector/ShowSpecification.html
+++ /dev/null
@@ -1,161 +0,0 @@
-<!-- $Id$ -->
-
-<table>
-<tr valign=top>
-<td>
-
-<table class="inspector-data" width="100%">
-	<tr class="even">
-		<th>Specification Resource Location</th>
-		<td><span jwcid="@Insert" value="ognl:inspectedSpecification.specificationLocation"/>
-		<span jwcid="@ShowDescription" description="ognl:inspectedSpecification.description"/>
-		</td>
-	</tr>
-	
-	<tr class="odd">
-		<th>Java class</th>
-		<td><span jwcid="@Insert" value="ognl:inspectedComponent.getClass().getName()"/></td>
-	</tr>
-
-<span jwcid="@Conditional" condition="ognl:! inspectedSpecification.pageSpecification">
-
-	<tr class="even">
-		<th>Allow informal parameters</th>
-		<td><span jwcid="@Insert" value="ognl:inspectedSpecification.allowInformalParameters"/></td>
-	</tr>
-
-	<tr class="odd">
-		<th>Allow body</th>
-		<td><span jwcid="@Insert" value="ognl:inspectedSpecification.allowBody"/></td>
-	</tr>
-	
-</span>
-	
-</table>
-
-<span jwcid="@Conditional" condition="ognl:formalParameterNames">
-
-<table class="inspector-data" width="100%">
-	<tr class="heading">
-		<th colspan=4>Formal Parameters</th>
-	</tr>
-	<tr class="heading">
-		<th>Name</th> <th>Required</th> <th>Java type</th> <th>Binding</th>
-	</tr>
-
-	<tr jwcid="e_formal">
-		<td><span jwcid="@Insert" value="ognl:parameterName"/>
-		<span jwcid="@ShowDescription" description="ognl:parameterSpecification.description"/>
-		</td>
-		<td><span jwcid="@Insert" value="ognl:parameterSpecification.required"/></td>
-		<td><span jwcid="@Insert" value="ognl:parameterSpecification.type"/></td>
-		<td><span jwcid="@Insert" value="ognl:binding"/></td>
-	</tr>
-
-</table>
-</span>
-
-<span jwcid="@Conditional" condition="ognl:informalParameterNames">
-
-<table class="inspector-data" width="100%">
-	<tr class="heading">
-		<th colspan=2>Informal Parameters</th>
-	</tr>
-	<tr class="heading">
-		<th>Name</th> <th>Binding</th>
-	</tr>
-
-	<tr jwcid="e_informal">
-		<td><span jwcid="@Insert" value="ognl:parameterName"/></td>
-		<td><span jwcid="@Insert" value="ognl:binding"/></td>
-	</tr>
-
-</table>
-</span>
-
-<span jwcid="@Conditional" condition="ognl:assetNames">
-
-<table class="inspector-data"  width="100%">
-	<tr class="heading">
-		<th colspan=2>Assets</th>
-	</tr>
-	<tr class="heading">
-		<th>Name</th> <th>Asset</th>
-	</tr>
-
-	<tr jwcid="e_asset">
-		<td><span jwcid="@Insert" value="ognl:assetName"/></td>
-		<td><span jwcid="@Insert" value="ognl:asset"/></td>
-	</tr>
-
-
-</table>
-</span>
-
-<span jwcid="@Conditional" condition="ognl:sortedPropertyNames">
-
-<table class="inspector-data" width="100%">
-	<tr class="heading">
-		<th colspan=2>Properties</th>
-	</tr>
-	<tr class="heading">
-		<th>Name</th> <th>Property</th>
-	</tr>
-
-	<tr jwcid="e_property">
-		<th><span jwcid="@Insert" value="ognl:propertyName"/></th>
-		<td><span jwcid="@Insert" value="ognl:propertyValue"/></td>
-	</tr>
-
-</table>
-</span>
-
-<span jwcid="@Conditional" condition="ognl:beanNames">
-
-<table class="inspector-data" width="100%">
-	<tr class="heading">
-		<th colspan=3>Helper Beans</th>
-	</tr>
-	
-	<tr class="heading">
-		<th>Name</th> <th>Class</th> <th>Lifecycle</th>
-	</tr>
-	
-	<tr jwcid="e_bean">
-		<td><span jwcid="@Insert" value="ognl:beanName"/></td>
-		<td><span jwcid="@Insert" value="ognl:beanSpecification.className"/></td>
-		<td><span jwcid="@Insert" value="ognl:beanSpecification.lifecycle.name"/></td>
-	</tr>
-	
-</table>
-</span>
-
-</td>
-
-<td>
-<span jwcid="@Conditional" condition="ognl:sortedComponents">
-
-<table border="0" class="inspector-data">
-
-	<tr class="heading">
-		<th colspan=2>Embedded Components</th>
-	</tr>
-	<tr class="heading">
-		<th>Id</th> <th>Type</th>
-	</tr>
-
-	<tr jwcid="e_components">
-		<td>
-			<a jwcid="selectComponent"><span jwcid="@Insert" value="ognl:component.id"/></a>
-		</td>
-		<td>
-			<span jwcid="@Insert" value="ognl:componentType"/>
-		</td>
-	</tr>
-
-</table>
-</span>
-
-</td>
-</tr>
-</table>
diff --git a/3.0.4/contrib/src/org/apache/tapestry/contrib/inspector/ShowSpecification.java b/3.0.4/contrib/src/org/apache/tapestry/contrib/inspector/ShowSpecification.java
deleted file mode 100644
index 098a6fa..0000000
--- a/3.0.4/contrib/src/org/apache/tapestry/contrib/inspector/ShowSpecification.java
+++ /dev/null
@@ -1,366 +0,0 @@
-//  Copyright 2004 The Apache Software Foundation
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-package org.apache.tapestry.contrib.inspector;
-
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.Collections;
-import java.util.Comparator;
-import java.util.List;
-import java.util.Map;
-
-import org.apache.tapestry.BaseComponent;
-import org.apache.tapestry.IAsset;
-import org.apache.tapestry.IBinding;
-import org.apache.tapestry.IComponent;
-import org.apache.tapestry.event.PageEvent;
-import org.apache.tapestry.event.PageRenderListener;
-import org.apache.tapestry.spec.IBeanSpecification;
-import org.apache.tapestry.spec.IComponentSpecification;
-import org.apache.tapestry.spec.IContainedComponent;
-import org.apache.tapestry.spec.IParameterSpecification;
-
-/**
- *  Component of the {@link Inspector} page used to display
- *  the specification, parameters and bindings and assets of the inspected component.
- *
- *
- *  @version $Id$
- *  @author Howard Lewis Ship
- *
- **/
-
-public class ShowSpecification extends BaseComponent implements PageRenderListener
-{
-    private IComponent _inspectedComponent;
-    private IComponentSpecification _inspectedSpecification;
-    private String _parameterName;
-    private String _assetName;
-    private List _sortedComponents;
-    private IComponent _component;
-    private List _assetNames;
-    private List _formalParameterNames;
-    private List _informalParameterNames;
-    private List _sortedPropertyNames;
-    private String _propertyName;
-    private List _beanNames;
-    private String _beanName;
-    private IBeanSpecification _beanSpecification;
-
-    private static class ComponentComparitor implements Comparator
-    {
-        public int compare(Object left, Object right)
-        {
-            IComponent leftComponent;
-            String leftId;
-            IComponent rightComponent;
-            String rightId;
-
-            if (left == right)
-                return 0;
-
-            leftComponent = (IComponent) left;
-            rightComponent = (IComponent) right;
-
-            leftId = leftComponent.getId();
-            rightId = rightComponent.getId();
-
-            return leftId.compareTo(rightId);
-        }
-    }
-
-    /**
-     *  Clears all cached information about the component and such after
-     *  each render (including the rewind phase render used to process
-     *  the tab view).
-     *
-     *  @since 1.0.5
-     *
-     **/
-
-    public void pageEndRender(PageEvent event)
-    {
-        _inspectedComponent = null;
-        _inspectedSpecification = null;
-        _parameterName = null;
-        _assetName = null;
-        _sortedComponents = null;
-        _component = null;
-        _assetNames = null;
-        _formalParameterNames = null;
-        _informalParameterNames = null;
-        _sortedPropertyNames = null;
-        _propertyName = null;
-        _beanNames = null;
-        _beanName = null;
-        _beanSpecification = null;
-    }
-
-    /**
-     *  Gets the inspected component and specification from the {@link Inspector} page.
-     *
-     *  @since 1.0.5
-     **/
-
-    public void pageBeginRender(PageEvent event)
-    {
-        Inspector inspector = (Inspector) getPage();
-
-        _inspectedComponent = inspector.getInspectedComponent();
-        _inspectedSpecification = _inspectedComponent.getSpecification();
-    }
-
-    public IComponent getInspectedComponent()
-    {
-        return _inspectedComponent;
-    }
-
-    public IComponentSpecification getInspectedSpecification()
-    {
-        return _inspectedSpecification;
-    }
-
-    /**
-     *  Returns a sorted list of formal parameter names.
-     *
-     **/
-
-    public List getFormalParameterNames()
-    {
-        if (_formalParameterNames == null)
-            _formalParameterNames = sort(_inspectedSpecification.getParameterNames());
-
-        return _formalParameterNames;
-    }
-
-    /**
-     *  Returns a sorted list of informal parameter names.  This is
-     *  the list of all bindings, with the list of parameter names removed,
-     *  sorted.
-     *
-     **/
-
-    public List getInformalParameterNames()
-    {
-        if (_informalParameterNames != null)
-            return _informalParameterNames;
-
-        Collection names = _inspectedComponent.getBindingNames();
-        if (names != null && names.size() > 0)
-        {
-            _informalParameterNames = new ArrayList(names);
-
-            // Remove the names of any formal parameters.  This leaves
-            // just the names of informal parameters (informal parameters
-            // are any parameters/bindings that don't match a formal parameter
-            // name).
-
-            names = _inspectedSpecification.getParameterNames();
-            if (names != null)
-                _informalParameterNames.removeAll(names);
-
-            Collections.sort(_informalParameterNames);
-        }
-
-        return _informalParameterNames;
-    }
-
-    public String getParameterName()
-    {
-        return _parameterName;
-    }
-
-    public void setParameterName(String value)
-    {
-        _parameterName = value;
-    }
-
-    /**
-     *  Returns the {@link org.apache.tapestry.spec.ParameterSpecification} corresponding to
-     *  the value of the parameterName property.
-     *
-     **/
-
-    public IParameterSpecification getParameterSpecification()
-    {
-        return _inspectedSpecification.getParameter(_parameterName);
-    }
-
-    /**
-     *  Returns the {@link IBinding} corresponding to the value of
-     *  the parameterName property.
-     *
-     **/
-
-    public IBinding getBinding()
-    {
-        return _inspectedComponent.getBinding(_parameterName);
-    }
-
-    public void setAssetName(String value)
-    {
-        _assetName = value;
-    }
-
-    public String getAssetName()
-    {
-        return _assetName;
-    }
-
-    /**
-     *  Returns the {@link IAsset} corresponding to the value
-     *  of the assetName property.
-     *
-     **/
-
-    public IAsset getAsset()
-    {
-        return (IAsset) _inspectedComponent.getAssets().get(_assetName);
-    }
-
-    /**
-     *  Returns a sorted list of asset names, or null if the
-     *  component contains no assets.
-     *
-     **/
-
-    public List getAssetNames()
-    {
-        if (_assetNames == null)
-            _assetNames = sort(_inspectedComponent.getAssets().keySet());
-
-        return _assetNames;
-    }
-
-    public List getSortedComponents()
-    {
-        if (_sortedComponents != null)
-            return _sortedComponents;
-
-        Inspector inspector = (Inspector) getPage();
-        IComponent inspectedComponent = inspector.getInspectedComponent();
-
-        // Get a Map of the components and simply return null if there
-        // are none.
-
-        Map components = inspectedComponent.getComponents();
-
-        _sortedComponents = new ArrayList(components.values());
-
-        Collections.sort(_sortedComponents, new ComponentComparitor());
-
-        return _sortedComponents;
-    }
-
-    public void setComponent(IComponent value)
-    {
-        _component = value;
-    }
-
-    public IComponent getComponent()
-    {
-        return _component;
-    }
-
-    /**
-     *  Returns the type of the component, as specified in the container's
-     *  specification (i.e., the component alias if known).
-     *
-     **/
-
-    public String getComponentType()
-    {
-        IComponent container = _component.getContainer();
-
-        IComponentSpecification containerSpecification = container.getSpecification();
-
-        String id = _component.getId();
-        IContainedComponent contained = containerSpecification.getComponent(id);
-
-        // Temporary:  An implicit component will not be in the containing
-        // component's specification as a ContainedComponent.
-
-        if (contained == null)
-            return null;
-
-        return contained.getType();
-    }
-
-    /**
-     *  Returns a list of the properties for the component
-     *  (from its specification), or null if the component
-     *  has no properties.
-     *
-     **/
-
-    public List getSortedPropertyNames()
-    {
-        if (_sortedPropertyNames == null)
-            _sortedPropertyNames = sort(_inspectedSpecification.getPropertyNames());
-
-        return _sortedPropertyNames;
-    }
-
-    public void setPropertyName(String value)
-    {
-        _propertyName = value;
-    }
-
-    public String getPropertyName()
-    {
-        return _propertyName;
-    }
-
-    public String getPropertyValue()
-    {
-        return _inspectedSpecification.getProperty(_propertyName);
-    }
-
-    public List getBeanNames()
-    {
-        if (_beanNames == null)
-            _beanNames = sort(_inspectedSpecification.getBeanNames());
-
-        return _beanNames;
-    }
-
-    public void setBeanName(String value)
-    {
-        _beanName = value;
-        _beanSpecification = _inspectedSpecification.getBeanSpecification(_beanName);
-    }
-
-    public String getBeanName()
-    {
-        return _beanName;
-    }
-
-    public IBeanSpecification getBeanSpecification()
-    {
-        return _beanSpecification;
-    }
-
-    private List sort(Collection c)
-    {
-        if (c == null || c.size() == 0)
-            return null;
-
-        List result = new ArrayList(c);
-
-        Collections.sort(result);
-
-        return result;
-    }
-}
\ No newline at end of file
diff --git a/3.0.4/contrib/src/org/apache/tapestry/contrib/inspector/ShowSpecification.jwc b/3.0.4/contrib/src/org/apache/tapestry/contrib/inspector/ShowSpecification.jwc
deleted file mode 100644
index fa9c420..0000000
--- a/3.0.4/contrib/src/org/apache/tapestry/contrib/inspector/ShowSpecification.jwc
+++ /dev/null
@@ -1,80 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
-   Copyright 2004 The Apache Software Foundation
-  
-   Licensed under the Apache License, Version 2.0 (the "License");
-   you may not use this file except in compliance with the License.
-   You may obtain a copy of the License at
-  
-       http://www.apache.org/licenses/LICENSE-2.0
-  
-   Unless required by applicable law or agreed to in writing, software
-   distributed under the License is distributed on an "AS IS" BASIS,
-   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-   See the License for the specific language governing permissions and
-   limitations under the License.
--->
-<!-- $Id$ -->
-
-<!DOCTYPE component-specification PUBLIC 
-  "-//Apache Software Foundation//Tapestry Specification 3.0//EN" 
-  "http://jakarta.apache.org/tapestry/dtd/Tapestry_3_0.dtd" > 
-  
-<component-specification class="org.apache.tapestry.contrib.inspector.ShowSpecification">
-
-  <bean name="formalClass" class="org.apache.tapestry.bean.EvenOdd"/>           
-  <bean name="informalClass" class="org.apache.tapestry.bean.EvenOdd"/>
-  <bean name="assetClass" class="org.apache.tapestry.bean.EvenOdd"/>
-  <bean name="propertyClass" class="org.apache.tapestry.bean.EvenOdd"/>
-  <bean name="componentClass" class="org.apache.tapestry.bean.EvenOdd"/>
-  <bean name="beanClass" class="org.apache.tapestry.bean.EvenOdd"/>
-        
-  <component id="e_formal" type="Foreach">
-    <binding name="source" expression="formalParameterNames"/>
-    <binding name="value" expression="parameterName"/>
-    <static-binding name="element">tr</static-binding>
-    <binding name="class" expression="beans.formalClass.next"/>
-  </component>
-     
-  
-  <component id="e_informal" type="Foreach"> 
-    <binding name="source" expression="informalParameterNames"/>
-    <binding name="value" expression="parameterName"/>
-    <static-binding name="element">tr</static-binding>
-    <binding name="class" expression="beans.informalClass.next"/>
-  </component>
-
-  <component id="e_asset" type="Foreach">
-    <binding name="source" expression="assetNames"/>
-    <binding name="value" expression="assetName"/>
-    <static-binding name="element">tr</static-binding>
-    <binding name="class" expression="beans.assetClass.next"/>
-  </component>
-  
-  <component id="e_components" type="Foreach">
-    <binding name="source" expression="sortedComponents"/>
-    <binding name="value" expression="component"/>
-    <static-binding name="element">tr</static-binding>
-    <binding name="class" expression="beans.componentClass.next"/>
-  </component>
-
-  <component id="selectComponent" type="DirectLink">
-    <binding name="listener" expression="page.listeners.selectComponent"/>
-    <binding name="parameters" expression="component.idPath"/>
-  </component>
-
-  <component id="e_property" type="Foreach">
-    <binding name="source" expression="sortedPropertyNames"/>
-    <binding name="value" expression="propertyName"/>
-    <static-binding name="element">tr</static-binding>
-    <binding name="class" expression="beans.propertyClass.next"/>
-  </component>
-      
-  <component id="e_bean" type="Foreach">
-  	<binding name="source" expression="beanNames"/>
-  	<binding name="value" expression="beanName"/>
-  	<static-binding name="element">tr</static-binding>
-  	<binding name="class" expression="beans.beanClass.next"/>
-  </component>
-  	
-</component-specification>
diff --git a/3.0.4/contrib/src/org/apache/tapestry/contrib/inspector/ShowTemplate.html b/3.0.4/contrib/src/org/apache/tapestry/contrib/inspector/ShowTemplate.html
deleted file mode 100644
index 2673368..0000000
--- a/3.0.4/contrib/src/org/apache/tapestry/contrib/inspector/ShowTemplate.html
+++ /dev/null
@@ -1,15 +0,0 @@
-<!-- $Id$ -->
-
-<span jwcid="ifNoTemplate">
-<span class="message">Component does not have a template.
-</span>
-</span>
-
-<span jwcid="ifTemplate">
-<table class="template">
-	<tr>
-		<td><span jwcid="insertTemplate"/></td>
-	</tr>
-</table>
-
-</span>
diff --git a/3.0.4/contrib/src/org/apache/tapestry/contrib/inspector/ShowTemplate.java b/3.0.4/contrib/src/org/apache/tapestry/contrib/inspector/ShowTemplate.java
deleted file mode 100644
index 65a8c13..0000000
--- a/3.0.4/contrib/src/org/apache/tapestry/contrib/inspector/ShowTemplate.java
+++ /dev/null
@@ -1,333 +0,0 @@
-//  Copyright 2004 The Apache Software Foundation
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-package org.apache.tapestry.contrib.inspector;
-
-import java.util.Iterator;
-import java.util.Map;
-
-import org.apache.tapestry.BaseComponent;
-import org.apache.tapestry.IComponent;
-import org.apache.tapestry.IDirect;
-import org.apache.tapestry.IMarkupWriter;
-import org.apache.tapestry.IRender;
-import org.apache.tapestry.IRequestCycle;
-import org.apache.tapestry.Tapestry;
-import org.apache.tapestry.engine.IEngineService;
-import org.apache.tapestry.engine.ILink;
-import org.apache.tapestry.engine.ITemplateSource;
-import org.apache.tapestry.parse.CloseToken;
-import org.apache.tapestry.parse.ComponentTemplate;
-import org.apache.tapestry.parse.LocalizationToken;
-import org.apache.tapestry.parse.OpenToken;
-import org.apache.tapestry.parse.TemplateAttribute;
-import org.apache.tapestry.parse.TemplateToken;
-import org.apache.tapestry.parse.TextToken;
-import org.apache.tapestry.parse.TokenType;
-
-/**
- *  Component of the {@link Inspector} page used to display
- *  the ids and types of all embedded components.
- *
- *
- *  @version $Id$
- *  @author Howard Lewis Ship
- *
- **/
-
-public class ShowTemplate extends BaseComponent implements IDirect
-{
-
-    public boolean getHasTemplate()
-    {
-        Inspector inspector;
-
-        inspector = (Inspector) getPage();
-
-        // Components that inherit from BaseComponent have templates,
-        // others do not.
-
-        return inspector.getInspectedComponent() instanceof BaseComponent;
-    }
-
-    public IRender getTemplateDelegate()
-    {
-        return new IRender()
-        {
-            public void render(IMarkupWriter writer, IRequestCycle cycle)
-            {
-                writeTemplate(writer, cycle);
-            }
-        };
-    }
-
-    /**
-     *  Writes the HTML template for the component.  When &lt;jwc&gt; tags are
-     *  written, the id is made a link (that selects the named component).  We
-     *  use some magic to accomplish this, creating links as if we were a
-     *  {@link DirectLink} component, and attributing those links
-     *  to the captive {@link DirectLink} component embedded here.
-     *
-     **/
-
-    private void writeTemplate(IMarkupWriter writer, IRequestCycle cycle)
-    {
-        IComponent inspectedComponent = getInspectedComponent();
-        ComponentTemplate template = null;
-        ITemplateSource source = getPage().getEngine().getTemplateSource();
-
-        try
-        {
-            template = source.getTemplate(cycle, inspectedComponent);
-        }
-        catch (Exception ex)
-        {
-            return;
-        }
-
-        writer.begin("pre");
-
-        int count = template.getTokenCount();
-
-        for (int i = 0; i < count; i++)
-        {
-            TemplateToken token = template.getToken(i);
-            TokenType type = token.getType();
-
-            if (type == TokenType.TEXT)
-            {
-                write(writer, (TextToken) token);
-                continue;
-            }
-
-            if (type == TokenType.CLOSE)
-            {
-                write(writer, (CloseToken) token);
-
-                continue;
-            }
-
-            if (token.getType() == TokenType.LOCALIZATION)
-            {
-
-                write(writer, (LocalizationToken) token);
-                continue;
-            }
-
-            if (token.getType() == TokenType.OPEN)
-            {
-                boolean nextIsClose =
-                    (i + 1 < count) && (template.getToken(i + 1).getType() == TokenType.CLOSE);
-
-                write(writer, nextIsClose, (OpenToken) token);
-
-                if (nextIsClose)
-                    i++;
-
-                continue;
-            }
-
-            // That's all the types known at this time.
-        }
-
-        writer.end(); // <pre>        
-    }
-
-    /** @since 3.0 **/
-
-    private IComponent getInspectedComponent()
-    {
-        Inspector page = (Inspector) getPage();
-
-        return page.getInspectedComponent();
-    }
-
-    /** @since 3.0 **/
-
-    private void write(IMarkupWriter writer, TextToken token)
-    {
-        int start = token.getStartIndex();
-        int end = token.getEndIndex();
-
-        // Print the section of the template ... print() will
-        // escape and invalid characters as HTML entities.  Also,
-        // we show the full stretch of text, not the trimmed version.
-
-        writer.print(token.getTemplateData(), start, end - start + 1);
-    }
-
-    /** @since 3.0 **/
-
-    private void write(IMarkupWriter writer, CloseToken token)
-    {
-        writer.begin("span");
-        writer.attribute("class", "jwc-tag");
-
-        writer.print("</");
-        writer.print(token.getTag());
-        writer.print(">");
-
-        writer.end(); // <span>
-    }
-
-    /** @since 3.0 **/
-
-    private void write(IMarkupWriter writer, LocalizationToken token)
-    {
-        IComponent component = getInspectedComponent();
-
-        writer.begin("span");
-        writer.attribute("class", "jwc-tag");
-
-        writer.print("<span key=\"");
-        writer.print(token.getKey());
-        writer.print('"');
-
-        Map attributes = token.getAttributes();
-        if (attributes != null && !attributes.isEmpty())
-        {
-            Iterator it = attributes.entrySet().iterator();
-            while (it.hasNext())
-            {
-                Map.Entry entry = (Map.Entry) it.next();
-                String attributeName = (String) entry.getKey();
-                String attributeValue = (String) entry.getValue();
-
-                writer.print(' ');
-                writer.print(attributeName);
-                writer.print("=\"");
-                writer.print(attributeValue);
-                writer.print('"');
-
-            }
-        }
-
-        writer.print('>');
-        writer.begin("span");
-        writer.attribute("class", "localized-string");
-
-        writer.print(component.getMessages().getMessage(token.getKey()));
-        writer.end(); // <span>
-
-        writer.print("</span>");
-
-        writer.end(); // <span>
-    }
-
-    /** @since 3.0 **/
-
-    private void write(IMarkupWriter writer, boolean nextIsClose, OpenToken token)
-    {
-        IComponent component = getInspectedComponent();
-        IEngineService service = getPage().getEngine().getService(Tapestry.DIRECT_SERVICE);
-        String[] context = new String[1];
-
-        // Each id references a component embedded in the inspected component.
-        // Get that component.
-
-        String id = token.getId();
-        IComponent embedded = component.getComponent(id);
-        context[0] = embedded.getIdPath();
-
-        // Build a URL to select that component, as if by the captive
-        // component itself (it's a Direct).
-
-        ILink link = service.getLink(getPage().getRequestCycle(), this, context);
-
-        writer.begin("span");
-        writer.attribute("class", "jwc-tag");
-
-        writer.print("<");
-        writer.print(token.getTag());
-
-        writer.print(" jwcid=\"");
-
-        writer.begin("span");
-        writer.attribute("class", "jwc-id");
-
-        writer.begin("a");
-        writer.attribute("href", link.getURL());
-        writer.print(id);
-
-        writer.end(); // <a>
-        writer.end(); // <span>
-        writer.print('"');
-
-        Map attributes = token.getAttributesMap();
-
-        if (attributes != null)
-        {
-            Iterator ii = attributes.entrySet().iterator();
-
-            while (ii.hasNext())
-            {
-                Map.Entry e = (Map.Entry) ii.next();
-                
-                TemplateAttribute attribute = (TemplateAttribute)e.getValue();               
-                
-                writer.print(' ');
-                writer.print(e.getKey().toString());
-                writer.print("=\"");
-                
-                // TODO: Fix this to output something appropriate for each type
-                // of attribute (literal, expression, string).
-                
-                writer.print(attribute.getValue());
-                writer.print('"');
-            }
-        }
-
-        // Collapse an open & close down to a single tag.
-
-        if (nextIsClose)
-            writer.print('/');
-
-        writer.print('>');
-        writer.end(); // <span>
-    }
-
-    /**
-     *  Invoked when a component id is clicked.
-     *
-     **/
-
-    public void trigger(IRequestCycle cycle)
-    {
-        Inspector inspector = (Inspector) getPage();
-
-        Object[] parameters = cycle.getServiceParameters();
-
-        inspector.selectComponent((String) parameters[0]);
-
-        IComponent newComponent = inspector.getInspectedComponent();
-
-        // If the component is not a BaseComponent then it won't have
-        // a template, so switch to the specification view.
-
-        if (!(newComponent instanceof BaseComponent))
-            inspector.setView(View.SPECIFICATION);
-    }
-
-    /**
-     *  Always returns true.
-     * 
-     *  @since 2.3
-     * 
-     **/
-
-    public boolean isStateful()
-    {
-        return true;
-    }
-}
\ No newline at end of file
diff --git a/3.0.4/contrib/src/org/apache/tapestry/contrib/inspector/ShowTemplate.jwc b/3.0.4/contrib/src/org/apache/tapestry/contrib/inspector/ShowTemplate.jwc
deleted file mode 100644
index 266a467..0000000
--- a/3.0.4/contrib/src/org/apache/tapestry/contrib/inspector/ShowTemplate.jwc
+++ /dev/null
@@ -1,34 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
-   Copyright 2004 The Apache Software Foundation
-  
-   Licensed under the Apache License, Version 2.0 (the "License");
-   you may not use this file except in compliance with the License.
-   You may obtain a copy of the License at
-  
-       http://www.apache.org/licenses/LICENSE-2.0
-  
-   Unless required by applicable law or agreed to in writing, software
-   distributed under the License is distributed on an "AS IS" BASIS,
-   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-   See the License for the specific language governing permissions and
-   limitations under the License.
--->
-<!-- $Id$ -->
-<!DOCTYPE component-specification PUBLIC 
-  "-//Apache Software Foundation//Tapestry Specification 3.0//EN" 
-  "http://jakarta.apache.org/tapestry/dtd/Tapestry_3_0.dtd">
-	
-<component-specification class="org.apache.tapestry.contrib.inspector.ShowTemplate">
-  <component id="ifNoTemplate" type="Conditional">
-    <binding name="condition" expression="! hasTemplate"/>
-  </component>
-  
-  <component id="ifTemplate" type="Conditional">
-    <binding name="condition" expression="hasTemplate"/>
-  </component>
-  
-  <component id="insertTemplate" type="Delegator">
-    <binding name="delegate" expression="templateDelegate"/>
-  </component>
-</component-specification>
diff --git a/3.0.4/contrib/src/org/apache/tapestry/contrib/inspector/Specification_HRp4.gif b/3.0.4/contrib/src/org/apache/tapestry/contrib/inspector/Specification_HRp4.gif
deleted file mode 100644
index 7b695d0..0000000
--- a/3.0.4/contrib/src/org/apache/tapestry/contrib/inspector/Specification_HRp4.gif
+++ /dev/null
Binary files differ
diff --git a/3.0.4/contrib/src/org/apache/tapestry/contrib/inspector/Specification_Hp3.gif b/3.0.4/contrib/src/org/apache/tapestry/contrib/inspector/Specification_Hp3.gif
deleted file mode 100644
index 33062cb..0000000
--- a/3.0.4/contrib/src/org/apache/tapestry/contrib/inspector/Specification_Hp3.gif
+++ /dev/null
Binary files differ
diff --git a/3.0.4/contrib/src/org/apache/tapestry/contrib/inspector/Specification_NBanner.gif b/3.0.4/contrib/src/org/apache/tapestry/contrib/inspector/Specification_NBanner.gif
deleted file mode 100644
index 896f81b..0000000
--- a/3.0.4/contrib/src/org/apache/tapestry/contrib/inspector/Specification_NBanner.gif
+++ /dev/null
Binary files differ
diff --git a/3.0.4/contrib/src/org/apache/tapestry/contrib/inspector/Specification_NRp2.gif b/3.0.4/contrib/src/org/apache/tapestry/contrib/inspector/Specification_NRp2.gif
deleted file mode 100644
index 6700d10..0000000
--- a/3.0.4/contrib/src/org/apache/tapestry/contrib/inspector/Specification_NRp2.gif
+++ /dev/null
Binary files differ
diff --git a/3.0.4/contrib/src/org/apache/tapestry/contrib/inspector/Specification_Np1.gif b/3.0.4/contrib/src/org/apache/tapestry/contrib/inspector/Specification_Np1.gif
deleted file mode 100644
index 5f8b7db..0000000
--- a/3.0.4/contrib/src/org/apache/tapestry/contrib/inspector/Specification_Np1.gif
+++ /dev/null
Binary files differ
diff --git a/3.0.4/contrib/src/org/apache/tapestry/contrib/inspector/Template_HRp4.gif b/3.0.4/contrib/src/org/apache/tapestry/contrib/inspector/Template_HRp4.gif
deleted file mode 100644
index 16e1792..0000000
--- a/3.0.4/contrib/src/org/apache/tapestry/contrib/inspector/Template_HRp4.gif
+++ /dev/null
Binary files differ
diff --git a/3.0.4/contrib/src/org/apache/tapestry/contrib/inspector/Template_Hp3.gif b/3.0.4/contrib/src/org/apache/tapestry/contrib/inspector/Template_Hp3.gif
deleted file mode 100644
index 2bc30ee..0000000
--- a/3.0.4/contrib/src/org/apache/tapestry/contrib/inspector/Template_Hp3.gif
+++ /dev/null
Binary files differ
diff --git a/3.0.4/contrib/src/org/apache/tapestry/contrib/inspector/Template_NBanner.gif b/3.0.4/contrib/src/org/apache/tapestry/contrib/inspector/Template_NBanner.gif
deleted file mode 100644
index e250138..0000000
--- a/3.0.4/contrib/src/org/apache/tapestry/contrib/inspector/Template_NBanner.gif
+++ /dev/null
Binary files differ
diff --git a/3.0.4/contrib/src/org/apache/tapestry/contrib/inspector/Template_NRp2.gif b/3.0.4/contrib/src/org/apache/tapestry/contrib/inspector/Template_NRp2.gif
deleted file mode 100644
index b7e2175..0000000
--- a/3.0.4/contrib/src/org/apache/tapestry/contrib/inspector/Template_NRp2.gif
+++ /dev/null
Binary files differ
diff --git a/3.0.4/contrib/src/org/apache/tapestry/contrib/inspector/Template_Np1.gif b/3.0.4/contrib/src/org/apache/tapestry/contrib/inspector/Template_Np1.gif
deleted file mode 100644
index a83fb37..0000000
--- a/3.0.4/contrib/src/org/apache/tapestry/contrib/inspector/Template_Np1.gif
+++ /dev/null
Binary files differ
diff --git a/3.0.4/contrib/src/org/apache/tapestry/contrib/inspector/View.java b/3.0.4/contrib/src/org/apache/tapestry/contrib/inspector/View.java
deleted file mode 100644
index 6aac890..0000000
--- a/3.0.4/contrib/src/org/apache/tapestry/contrib/inspector/View.java
+++ /dev/null
@@ -1,68 +0,0 @@
-//  Copyright 2004 The Apache Software Foundation
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-package org.apache.tapestry.contrib.inspector;
-
-import org.apache.commons.lang.enum.Enum;
-
-/**
- *  Identifies different views for the inspector.
- *
- *  @version $Id$
- *  @author Howard Lewis Ship
- *
- **/
-
-public class View extends Enum
-{
-    /**
-     *  View that displays the basic specification information, plus
-     *  formal and informal parameters (and related bindings), and 
-     *  assets.
-     *
-     **/
-
-    public static final View SPECIFICATION = new View("SPECIFICATION");
-
-    /**
-     *  View that displays the HTML template for the component, if one
-     *  exists.
-     *
-     **/
-
-    public static final View TEMPLATE = new View("TEMPLATE");
-
-    /**
-     *  View that shows the persistent properties of the page containing
-     *  the inspected component.
-     *
-     **/
-
-    public static final View PROPERTIES = new View("PROPERTIES");
-
-    /**
-     *  View that shows information about the 
-     *  {@link org.apache.tapestry.IEngine}.
-     *
-     **/
-
-    public static final View ENGINE = new View("ENGINE");
-
-
-    private View(String name)
-    {
-        super(name);
-    }
-
-}
\ No newline at end of file
diff --git a/3.0.4/contrib/src/org/apache/tapestry/contrib/inspector/ViewTabs.html b/3.0.4/contrib/src/org/apache/tapestry/contrib/inspector/ViewTabs.html
deleted file mode 100644
index 6d3a970..0000000
--- a/3.0.4/contrib/src/org/apache/tapestry/contrib/inspector/ViewTabs.html
+++ /dev/null
@@ -1,20 +0,0 @@
-<!-- $Id$ -->
-
-<table border=0 cellpadding=0 cellspacing=2>
-	<tr>
-		<td>
-<span jwcid="@Foreach" source="ognl:views" value="ognl:view">
-			<a jwcid="select@ActionLink" listener="ognl:listeners.selectTab"><img 
-				jwcid="@Rollover" image="ognl:viewImage" focus="ognl:focusImage"
-				width="120" height="19"/></a>
-</span>
-		</td>
-	</tr>
-	<tr>
-		<td><img jwcid="@Image" image="ognl:bannerImage"/></td>
-	</tr>
-	<tr>
-		<td><span jwcid="@RenderBody"/></td>
-	</tr>
-</table>
-
diff --git a/3.0.4/contrib/src/org/apache/tapestry/contrib/inspector/ViewTabs.java b/3.0.4/contrib/src/org/apache/tapestry/contrib/inspector/ViewTabs.java
deleted file mode 100644
index 3251d35..0000000
--- a/3.0.4/contrib/src/org/apache/tapestry/contrib/inspector/ViewTabs.java
+++ /dev/null
@@ -1,92 +0,0 @@
-//  Copyright 2004 The Apache Software Foundation
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-package org.apache.tapestry.contrib.inspector;
-
-import org.apache.tapestry.BaseComponent;
-import org.apache.tapestry.IAsset;
-import org.apache.tapestry.IRequestCycle;
-
-/**
- *  Component of the {@link Inspector} page used to select the view.
- *
- *
- *  @version $Id$
- *  @author Howard Lewis Ship
- *
- **/
-
-public abstract class ViewTabs extends BaseComponent
-{
-    private static View[] _views =
-        {
-            View.SPECIFICATION,
-            View.TEMPLATE,
-            View.PROPERTIES,
-            View.ENGINE };
-
-     public View[] getViews()
-    {
-        return _views;
-    }
-
-    public abstract void setView(View value);
-
-    public abstract View getView();
-
-    private IAsset getImageForView(boolean focus)
-    {
-        Inspector inspector = (Inspector) getPage();
-		View view = getView();
-		
-        boolean selected = (view == inspector.getView());
-
-        StringBuffer buffer = new StringBuffer(view.getName());
-
-        if (selected)
-            buffer.append("_selected");
-
-        if (focus)
-            buffer.append("_focus");
-
-        String key = buffer.toString();
-
-        return (IAsset) getAssets().get(key);
-    }
-
-    public IAsset getViewImage()
-    {
-        return getImageForView(false);
-    }
-
-    public IAsset getFocusImage()
-    {
-        return getImageForView(true);
-    }
-
-    public IAsset getBannerImage()
-    {
-         Inspector inspector = (Inspector) getPage();
-        View selectedView = inspector.getView();
-        String key = selectedView.getName() + "_banner";
-
-        return (IAsset) getAssets().get(key);
-    }
-
-    public void selectTab(IRequestCycle cycle)
-    {
-        Inspector inspector = (Inspector) getPage();
-        inspector.setView(getView());
-    }
-}
\ No newline at end of file
diff --git a/3.0.4/contrib/src/org/apache/tapestry/contrib/inspector/ViewTabs.jwc b/3.0.4/contrib/src/org/apache/tapestry/contrib/inspector/ViewTabs.jwc
deleted file mode 100644
index 1e03bad..0000000
--- a/3.0.4/contrib/src/org/apache/tapestry/contrib/inspector/ViewTabs.jwc
+++ /dev/null
@@ -1,46 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
-   Copyright 2004 The Apache Software Foundation
-  
-   Licensed under the Apache License, Version 2.0 (the "License");
-   you may not use this file except in compliance with the License.
-   You may obtain a copy of the License at
-  
-       http://www.apache.org/licenses/LICENSE-2.0
-  
-   Unless required by applicable law or agreed to in writing, software
-   distributed under the License is distributed on an "AS IS" BASIS,
-   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-   See the License for the specific language governing permissions and
-   limitations under the License.
--->
-<!-- $Id$ -->
-<!DOCTYPE component-specification PUBLIC 
-  "-//Apache Software Foundation//Tapestry Specification 3.0//EN" 
-  "http://jakarta.apache.org/tapestry/dtd/Tapestry_3_0.dtd">
-	
-<component-specification class="org.apache.tapestry.contrib.inspector.ViewTabs">
-  
-  <property-specification name="view" type="org.apache.tapestry.contrib.inspector.View"/>
-  
-  <private-asset name="SPECIFICATION" resource-path="Specification_Np1.gif"/>
-  <private-asset name="SPECIFICATION_selected" resource-path="Specification_Hp3.gif"/>
-  <private-asset name="SPECIFICATION_focus" resource-path="Specification_NRp2.gif"/>
-  <private-asset name="SPECIFICATION_selected_focus" resource-path="Specification_HRp4.gif"/>
-  <private-asset name="SPECIFICATION_banner" resource-path="Specification_NBanner.gif"/>
-  <private-asset name="TEMPLATE" resource-path="Template_Np1.gif"/>
-  <private-asset name="TEMPLATE_selected" resource-path="Template_Hp3.gif"/>
-  <private-asset name="TEMPLATE_focus" resource-path="Template_NRp2.gif"/>
-  <private-asset name="TEMPLATE_selected_focus" resource-path="Template_HRp4.gif"/>
-  <private-asset name="TEMPLATE_banner" resource-path="Template_NBanner.gif"/>
-  <private-asset name="PROPERTIES" resource-path="Properties_Np1.gif"/>
-  <private-asset name="PROPERTIES_selected" resource-path="Properties_Hp3.gif"/>
-  <private-asset name="PROPERTIES_focus" resource-path="Properties_NRp2.gif"/>
-  <private-asset name="PROPERTIES_selected_focus" resource-path="Properties_HRp4.gif"/>
-  <private-asset name="PROPERTIES_banner" resource-path="Properties_NBanner.gif"/>
-  <private-asset name="ENGINE" resource-path="Engine_Np1.gif"/>
-  <private-asset name="ENGINE_selected" resource-path="Engine_Hp3.gif"/>
-  <private-asset name="ENGINE_focus" resource-path="Engine_NRp2.gif"/>
-  <private-asset name="ENGINE_selected_focus" resource-path="Engine_HRp4.gif"/>
-  <private-asset name="ENGINE_banner" resource-path="Engine_NBanner.gif"/>
-</component-specification>
diff --git a/3.0.4/contrib/src/org/apache/tapestry/contrib/inspector/info.gif b/3.0.4/contrib/src/org/apache/tapestry/contrib/inspector/info.gif
deleted file mode 100644
index be3d1d1..0000000
--- a/3.0.4/contrib/src/org/apache/tapestry/contrib/inspector/info.gif
+++ /dev/null
Binary files differ
diff --git a/3.0.4/contrib/src/org/apache/tapestry/contrib/inspector/inspector-rollover.gif b/3.0.4/contrib/src/org/apache/tapestry/contrib/inspector/inspector-rollover.gif
deleted file mode 100644
index df0d3ef..0000000
--- a/3.0.4/contrib/src/org/apache/tapestry/contrib/inspector/inspector-rollover.gif
+++ /dev/null
Binary files differ
diff --git a/3.0.4/contrib/src/org/apache/tapestry/contrib/inspector/package.html b/3.0.4/contrib/src/org/apache/tapestry/contrib/inspector/package.html
deleted file mode 100644
index 7610fdb..0000000
--- a/3.0.4/contrib/src/org/apache/tapestry/contrib/inspector/package.html
+++ /dev/null
@@ -1,17 +0,0 @@
-<!doctype html public "-//W3C//DTD HTML 4.0 Transitional//EN">
-<!-- $Id$ -->
-<html>
-<head>
-<title>Tapestry: Web Application Framework</title>
-</head>
-<body>
-
-<p>Implementation of the Tapestry <em>Inspector</em>, a specialized page
-used to dynamically introspect the construction of an application while
-it runs.  The {@link org.apache.tapestry.contrib.inspector.InspectorButton} component
-creates an icon on the page that raises the Inspector in a seperate window.
-
-@author Howard Lewis Ship <a href="mailto:hlship@apache.org">hlship@apache.org</a>
-
-</body>
-</html>
diff --git a/3.0.4/contrib/src/org/apache/tapestry/contrib/inspector/tapestry-logo.gif b/3.0.4/contrib/src/org/apache/tapestry/contrib/inspector/tapestry-logo.gif
deleted file mode 100644
index 82ad636..0000000
--- a/3.0.4/contrib/src/org/apache/tapestry/contrib/inspector/tapestry-logo.gif
+++ /dev/null
Binary files differ
diff --git a/3.0.4/contrib/src/org/apache/tapestry/contrib/jdbc/BooleanParameter.java b/3.0.4/contrib/src/org/apache/tapestry/contrib/jdbc/BooleanParameter.java
deleted file mode 100644
index 80fc31d..0000000
--- a/3.0.4/contrib/src/org/apache/tapestry/contrib/jdbc/BooleanParameter.java
+++ /dev/null
@@ -1,57 +0,0 @@
-//  Copyright 2004 The Apache Software Foundation
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-package org.apache.tapestry.contrib.jdbc;
-
-import java.sql.PreparedStatement;
-import java.sql.SQLException;
-
-/**
- *  Wrapper around a boolean parameter.
- *
- *
- *  @author Howard Lewis Ship
- *  @version $Id$
- *  @since 2.3
- *
- **/
-
-public class BooleanParameter implements IParameter
-{
-    private boolean _value;
-
-    public static final BooleanParameter TRUE = new BooleanParameter(true);
-
-    public static final BooleanParameter FALSE = new BooleanParameter(false);
-
-    private BooleanParameter(boolean value)
-    {
-        _value = value;
-    }
-
-    public void set(PreparedStatement statement, int index) throws SQLException
-    {
-        statement.setBoolean(index, _value);
-    }
-
-    public String toString()
-    {
-        StringBuffer buffer = new StringBuffer("Boolean<");
-        buffer.append(_value);
-        buffer.append('>');
-
-        return buffer.toString();
-    }
-
-}
diff --git a/3.0.4/contrib/src/org/apache/tapestry/contrib/jdbc/DoubleParameter.java b/3.0.4/contrib/src/org/apache/tapestry/contrib/jdbc/DoubleParameter.java
deleted file mode 100644
index e9f6d65..0000000
--- a/3.0.4/contrib/src/org/apache/tapestry/contrib/jdbc/DoubleParameter.java
+++ /dev/null
@@ -1,52 +0,0 @@
-//  Copyright 2004 The Apache Software Foundation
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-package org.apache.tapestry.contrib.jdbc;
-
-import java.sql.PreparedStatement;
-import java.sql.SQLException;
-
-/**
- *  A wrapper around a double parameter.
- *
- *
- *  @author Howard Lewis Ship
- *  @version $Id$
- *  @since 2.3
- * 
- **/
-
-public class DoubleParameter implements IParameter
-{
-    private double _value;
-
-    public DoubleParameter(double value)
-    {
-        _value = value;
-    }
-
-    public void set(PreparedStatement statement, int index) throws SQLException
-    {
-        statement.setDouble(index, _value);
-    }
-
-    public String toString()
-    {
-        StringBuffer buffer = new StringBuffer("Double<");
-        buffer.append(_value);
-        buffer.append('>');
-
-        return buffer.toString();
-    }
-}
diff --git a/3.0.4/contrib/src/org/apache/tapestry/contrib/jdbc/FloatParameter.java b/3.0.4/contrib/src/org/apache/tapestry/contrib/jdbc/FloatParameter.java
deleted file mode 100644
index b2eb348..0000000
--- a/3.0.4/contrib/src/org/apache/tapestry/contrib/jdbc/FloatParameter.java
+++ /dev/null
@@ -1,52 +0,0 @@
-//  Copyright 2004 The Apache Software Foundation
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-package org.apache.tapestry.contrib.jdbc;
-
-import java.sql.PreparedStatement;
-import java.sql.SQLException;
-
-/**
- *  A wrapper around a float parameter.
- *
- *
- *  @author Howard Lewis Ship
- *  @version $Id$
- *  @since 2.3
- * 
- **/
-
-public class FloatParameter implements IParameter
-{
-    private float _value;
-
-    public FloatParameter(float value)
-    {
-        _value = value;
-    }
-
-    public void set(PreparedStatement statement, int index) throws SQLException
-    {
-        statement.setFloat(index, _value);
-    }
-
-    public String toString()
-    {
-        StringBuffer buffer = new StringBuffer("Float<");
-        buffer.append(_value);
-        buffer.append('>');
-
-        return buffer.toString();
-    }
-}
diff --git a/3.0.4/contrib/src/org/apache/tapestry/contrib/jdbc/IParameter.java b/3.0.4/contrib/src/org/apache/tapestry/contrib/jdbc/IParameter.java
deleted file mode 100644
index 2032a00..0000000
--- a/3.0.4/contrib/src/org/apache/tapestry/contrib/jdbc/IParameter.java
+++ /dev/null
@@ -1,41 +0,0 @@
-//  Copyright 2004 The Apache Software Foundation
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-package org.apache.tapestry.contrib.jdbc;
-
-import java.sql.PreparedStatement;
-import java.sql.SQLException;
-
-/**
- *  Represents a parameter within a dynamically generated SQL statement.
- *
- *
- *  @author Howard Lewis Ship
- *  @version $Id$
- *  @since 2.3
- *  @see org.apache.tapestry.contrib.jdbc.ParameterizedStatement
- * 
- **/
-
-public interface IParameter
-{
-    /**
-     *  Invokes the appropriate setXXX() method on the 
-     *  {@link java.sql.PreparedStatement}.
-     * 
-     **/
-    
-    public void set(PreparedStatement statement, int index)
-    throws SQLException;
-}
diff --git a/3.0.4/contrib/src/org/apache/tapestry/contrib/jdbc/IStatement.java b/3.0.4/contrib/src/org/apache/tapestry/contrib/jdbc/IStatement.java
deleted file mode 100644
index c9f2544..0000000
--- a/3.0.4/contrib/src/org/apache/tapestry/contrib/jdbc/IStatement.java
+++ /dev/null
@@ -1,70 +0,0 @@
-//  Copyright 2004 The Apache Software Foundation
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-package org.apache.tapestry.contrib.jdbc;
-
-import java.sql.ResultSet;
-import java.sql.SQLException;
-import java.sql.Statement;
-
-/**
- *  A wrapper around {@link java.sql.Statement} or 
- *  {@link java.sql.PreparedStatement} which hides the differences
- *  between the two.  
- *
- *  @version $Id$
- *  @author Howard Lewis Ship
- *  @see org.apache.tapestry.contrib.jdbc.StatementAssembly#createStatement(Connection)
- * 
- **/
-
-public interface IStatement
-{
-    /**
-     * Returns the SQL associated with this statement.
-     *
-     **/
-
-    public String getSQL();
-
-    /**
-     *  Returns the underlying {@link java.sql.Statement} 
-     *  (or {@link java.sql.PreparedStatement}).
-     *
-     **/
-
-    public Statement getStatement();
-
-    /**
-     *  Closes the underlying statement, and nulls the reference to it.
-     *
-     **/
-
-    public void close() throws SQLException;
-
-    /**
-     *  Executes the statement as a query, returning a {@link ResultSet}.
-     *
-     **/
-
-    public ResultSet executeQuery() throws SQLException;
-
-    /**
-     *  Executes the statement as an update, returning the number of rows
-     *  affected.
-     *
-     **/
-
-    public int executeUpdate() throws SQLException;
-}
\ No newline at end of file
diff --git a/3.0.4/contrib/src/org/apache/tapestry/contrib/jdbc/IntegerParameter.java b/3.0.4/contrib/src/org/apache/tapestry/contrib/jdbc/IntegerParameter.java
deleted file mode 100644
index 9148201..0000000
--- a/3.0.4/contrib/src/org/apache/tapestry/contrib/jdbc/IntegerParameter.java
+++ /dev/null
@@ -1,52 +0,0 @@
-//  Copyright 2004 The Apache Software Foundation
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-package org.apache.tapestry.contrib.jdbc;
-
-import java.sql.PreparedStatement;
-import java.sql.SQLException;
-
-/**
- *  A wrapper around an integer parameter.
- *
- *
- *  @author Howard Lewis Ship
- *  @version $Id$
- *  @since 2.3
- * 
- **/
-
-public class IntegerParameter implements IParameter
-{
-    private int _value;
-
-    public IntegerParameter(int value)
-    {
-        _value = value;
-    }
-
-    public void set(PreparedStatement statement, int index) throws SQLException
-    {
-        statement.setInt(index, _value);
-    }
-
-    public String toString()
-    {
-        StringBuffer buffer = new StringBuffer("Integer<");
-        buffer.append(_value);
-        buffer.append('>');
-
-        return buffer.toString();
-    }
-}
diff --git a/3.0.4/contrib/src/org/apache/tapestry/contrib/jdbc/LongParameter.java b/3.0.4/contrib/src/org/apache/tapestry/contrib/jdbc/LongParameter.java
deleted file mode 100644
index 847e8a0..0000000
--- a/3.0.4/contrib/src/org/apache/tapestry/contrib/jdbc/LongParameter.java
+++ /dev/null
@@ -1,52 +0,0 @@
-//  Copyright 2004 The Apache Software Foundation
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-package org.apache.tapestry.contrib.jdbc;
-
-import java.sql.PreparedStatement;
-import java.sql.SQLException;
-
-/**
- *  Wrapper around long parameter.
- *
- *
- *  @author Howard Lewis Ship
- *  @version $Id$
- *  @since 2.3
- * 
- **/
-
-public class LongParameter implements IParameter
-{
-    private long _value;
-
-    public LongParameter(long value)
-    {
-        _value = value;
-    }
-
-    public void set(PreparedStatement statement, int index) throws SQLException
-    {
-        statement.setLong(index, _value);
-    }
-
-    public String toString()
-    {
-        StringBuffer buffer = new StringBuffer("Long<");
-        buffer.append(_value);
-        buffer.append('>');
-
-        return buffer.toString();
-    }
-}
diff --git a/3.0.4/contrib/src/org/apache/tapestry/contrib/jdbc/ObjectParameter.java b/3.0.4/contrib/src/org/apache/tapestry/contrib/jdbc/ObjectParameter.java
deleted file mode 100644
index 25be80f..0000000
--- a/3.0.4/contrib/src/org/apache/tapestry/contrib/jdbc/ObjectParameter.java
+++ /dev/null
@@ -1,52 +0,0 @@
-//  Copyright 2004 The Apache Software Foundation
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-package org.apache.tapestry.contrib.jdbc;
-
-import java.sql.PreparedStatement;
-import java.sql.SQLException;
-
-/**
- *  An arbitrary object parameter.
- *
- *
- *  @author Howard Lewis Ship
- *  @version $Id$
- *  @since 2.3
- * 
- **/
-
-public class ObjectParameter implements IParameter
-{
-    private Object _value;
-
-    public ObjectParameter(Object value)
-    {
-        _value = value;
-    }
-
-    public void set(PreparedStatement statement, int index) throws SQLException
-    {
-        statement.setObject(index, _value);
-    }
-
-    public String toString()
-    {
-        StringBuffer buffer = new StringBuffer("Object<");
-        buffer.append(_value);
-        buffer.append('>');
-
-        return buffer.toString();
-    }
-}
diff --git a/3.0.4/contrib/src/org/apache/tapestry/contrib/jdbc/ParameterizedStatement.java b/3.0.4/contrib/src/org/apache/tapestry/contrib/jdbc/ParameterizedStatement.java
deleted file mode 100644
index 3d37cca..0000000
--- a/3.0.4/contrib/src/org/apache/tapestry/contrib/jdbc/ParameterizedStatement.java
+++ /dev/null
@@ -1,152 +0,0 @@
-//  Copyright 2004 The Apache Software Foundation
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-package org.apache.tapestry.contrib.jdbc;
-
-import java.sql.Connection;
-import java.sql.PreparedStatement;
-import java.sql.ResultSet;
-import java.sql.SQLException;
-import java.sql.Statement;
-import java.util.List;
-
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
-
-/**
- *  A wrapper around {@link PreparedStatement}.
- *
- *  @version $Id$
- *  @author Howard Lewis Ship
- * 
- **/
-
-public class ParameterizedStatement implements IStatement
-{
-    private static final Log LOG = LogFactory.getLog(ParameterizedStatement.class);
-
-    private String _SQL;
-    private PreparedStatement _statement;
-    private IParameter[] _parameters;
-
-    /**
-     *  Create a new instance; the parameters list is copied.
-     * 
-     *  @param SQL the SQL to execute (see {@link Connection#prepareStatement(java.lang.String)})
-     *  @param connection the JDBC connection to use
-     *  @param parameters list of {@link IParameter}
-     * 
-     **/
-    
-    public ParameterizedStatement(String SQL, Connection connection, List parameters) throws SQLException
-    {
-        _SQL = SQL;
-
-        _statement = connection.prepareStatement(SQL);
-
-        _parameters = (IParameter[]) parameters.toArray(new IParameter[parameters.size()]);
-
-        for (int i = 0; i < _parameters.length; i++)
-        {
-            // JDBC numbers things from 1, not 0.
-
-            _parameters[i].set(_statement, i + 1);
-        }
-    }
-
-    /**
-     * Returns the SQL associated with this statement.
-     *
-     **/
-
-    public String getSQL()
-    {
-        return _SQL;
-    }
-
-    /**
-     *  Returns the underlying or {@link PreparedStatement}.
-     *
-     **/
-
-    public Statement getStatement()
-    {
-        return _statement;
-    }
-
-    /**
-     *  Closes the underlying statement, and nulls the reference to it.
-     *
-     **/
-
-    public void close() throws SQLException
-    {
-        _statement.close();
-
-        _statement = null;
-        _SQL = null;
-    }
-
-    /**
-     *  Executes the statement as a query, returning a {@link ResultSet}.
-     *
-     **/
-
-    public ResultSet executeQuery() throws SQLException
-    {
-        if (LOG.isDebugEnabled())
-            LOG.debug("Executing query: " + this);
-
-        return _statement.executeQuery();
-    }
-
-    /**
-     *  Executes the statement as an update, returning the number of rows
-     *  affected.
-     *
-     **/
-
-    public int executeUpdate() throws SQLException
-    {
-        if (LOG.isDebugEnabled())
-            LOG.debug("Executing update: " + this);
-
-        return _statement.executeUpdate();
-    }
-
-    public String toString()
-    {
-        StringBuffer buffer = new StringBuffer("ParameterizedStatement@");
-        buffer.append(Integer.toHexString(hashCode()));
-        buffer.append("[SQL=\n<");
-        buffer.append(_SQL);
-        buffer.append("\n>");
-
-        for (int i = 0; i < _parameters.length; i++)
-        {
-            IParameter parameter = _parameters[i];
-
-            buffer.append(" ?");
-            buffer.append(i + 1);
-            buffer.append('=');
-
-            buffer.append(parameter);
-        }
-
-        buffer.append(']');
-
-        return buffer.toString();
-    }
-
-}
\ No newline at end of file
diff --git a/3.0.4/contrib/src/org/apache/tapestry/contrib/jdbc/ShortParameter.java b/3.0.4/contrib/src/org/apache/tapestry/contrib/jdbc/ShortParameter.java
deleted file mode 100644
index 31cfea7..0000000
--- a/3.0.4/contrib/src/org/apache/tapestry/contrib/jdbc/ShortParameter.java
+++ /dev/null
@@ -1,53 +0,0 @@
-//  Copyright 2004 The Apache Software Foundation
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-package org.apache.tapestry.contrib.jdbc;
-
-import java.sql.PreparedStatement;
-import java.sql.SQLException;
-
-/**
- *  A wrapper around a short parameter.  
- *
- *
- *  @author Howard Lewis Ship
- *  @version $Id$
- *  @since 2.3
- * 
- **/
-
-public class ShortParameter implements IParameter
-{
-    private short _value;
-
-    public ShortParameter(short value)
-    {
-        _value = value;
-    }
-
-    public void set(PreparedStatement statement, int index) throws SQLException
-    {
-        statement.setShort(index, _value);
-    }
-
-    public String toString()
-    {
-        StringBuffer buffer = new StringBuffer("Short<");
-        buffer.append(_value);
-        buffer.append('>');
-
-        return buffer.toString();
-    }
-
-}
diff --git a/3.0.4/contrib/src/org/apache/tapestry/contrib/jdbc/SimpleStatement.java b/3.0.4/contrib/src/org/apache/tapestry/contrib/jdbc/SimpleStatement.java
deleted file mode 100644
index 16df20f..0000000
--- a/3.0.4/contrib/src/org/apache/tapestry/contrib/jdbc/SimpleStatement.java
+++ /dev/null
@@ -1,127 +0,0 @@
-//  Copyright 2004 The Apache Software Foundation
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-package org.apache.tapestry.contrib.jdbc;
-
-import java.sql.Connection;
-import java.sql.ResultSet;
-import java.sql.SQLException;
-import java.sql.Statement;
-
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
-
-/**
- *  A wrapper around {@link Statement}.
- *
- *  @version $Id$
- *  @author Howard Lewis Ship
- *
- **/
-
-public class SimpleStatement implements IStatement
-{
-    private static final Log LOG = LogFactory.getLog(SimpleStatement.class);
-
-    private String _sql;
-    private Statement _statement;
-
-    public SimpleStatement(String SQL, Connection connection) throws SQLException
-    {
-        _sql = SQL;
-        _statement = connection.createStatement();
-    }
-
-    public SimpleStatement(String SQL, Connection connection, int resultSetType, int resultSetConcurrency)
-        throws SQLException
-    {
-        _sql = SQL;
-        _statement = connection.createStatement(resultSetType, resultSetConcurrency);
-    }
-
-    /**
-     * Returns the SQL associated with this statement.
-     *
-     **/
-
-    public String getSQL()
-    {
-        return _sql;
-    }
-
-    /**
-     *  Returns the underlying {@link Statement}.
-     *
-     **/
-
-    public Statement getStatement()
-    {
-        return _statement;
-    }
-
-    /**
-     *  Closes the underlying statement, and nulls the reference to it.
-     *
-     **/
-
-    public void close() throws SQLException
-    {
-        _statement.close();
-
-        _statement = null;
-        _sql = null;
-    }
-
-    /**
-     *  Executes the statement as a query, returning a {@link ResultSet}.
-     *
-     **/
-
-    public ResultSet executeQuery() throws SQLException
-    {
-        if (LOG.isDebugEnabled())
-            LOG.debug("Executing query: " + this);
-
-        return _statement.executeQuery(_sql);
-    }
-
-    /**
-     *  Executes the statement as an update, returning the number of rows
-     *  affected.
-     *
-     **/
-
-    public int executeUpdate() throws SQLException
-    {
-        if (LOG.isDebugEnabled())
-            LOG.debug("Executing update: " + this);
-
-        return _statement.executeUpdate(_sql);
-    }
-
-    public String toString()
-    {
-        StringBuffer buffer;
-
-        buffer = new StringBuffer("SimpleStatement@");
-        buffer.append(Integer.toHexString(hashCode()));
-
-        buffer.append("[SQL=<\n");
-        buffer.append(_sql);
-        buffer.append("\n>]");
-
-        return buffer.toString();
-    }
-
-}
\ No newline at end of file
diff --git a/3.0.4/contrib/src/org/apache/tapestry/contrib/jdbc/StatementAssembly.java b/3.0.4/contrib/src/org/apache/tapestry/contrib/jdbc/StatementAssembly.java
deleted file mode 100644
index 112e740..0000000
--- a/3.0.4/contrib/src/org/apache/tapestry/contrib/jdbc/StatementAssembly.java
+++ /dev/null
@@ -1,480 +0,0 @@
-//  Copyright 2004 The Apache Software Foundation
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-package org.apache.tapestry.contrib.jdbc;
-
-import java.sql.Connection;
-import java.sql.SQLException;
-import java.sql.Timestamp;
-import java.util.ArrayList;
-import java.util.Calendar;
-import java.util.Date;
-import java.util.GregorianCalendar;
-import java.util.List;
-
-/**
- *  Class for creating and executing JDBC statements.  Allows statements to be assembled
- *  incrementally (like a {@link StringBuffer}), but also tracks parameters, shielding
- *  the developer from the differences between constructing and 
- *  using a JDBC 
- *  {@link java.sql.Statement} and 
- *  a JDBC {@link java.sql.PreparedStatement}.  This class is somewhat skewed towards
- *  Oracle, which works more efficiently with prepared staments than
- *  simple SQL.
- * 
- *  <p>In addition, implements {@link #toString()} in a useful way (you can see the
- *  SQL and parameters), which is invaluable when debugging.
- * 
- *  <p>{@link #addParameter(int)} (and all overloaded versions of it for scalar types)
- *  adds a "?" to the statement and records the parameter value.
- * 
- *  <p>{@link #addParameter(Integer)} (and all overloaded version of it for wrapper
- *  types) does the same ... unless the value is null, in which case "NULL" is
- *  inserted into the statement.
- * 
- *  <p>{@link #addParameterList(int[], String)} (and all overloaded versions of it)
- *  simply invokes the appropriate {@link #addParameter(int)}, adding the
- *  separator in between parameters.
- *
- *  @version $Id$
- *  @author Howard Lewis Ship
- *
- **/
-
-public class StatementAssembly
-{
-    private StringBuffer _buffer = new StringBuffer();
-
-    private static final String NULL = "NULL";
-
-    public static final String SEP = ", ";
-
-    /**